現在、Windowsマシンのセキュリティを強化することを考えています。
この強化の一環として、私は最小特権の原則を検討し、2つの異なるユーザーアカウントを使用してこれをWindowsに適用したいと思います。
今私は自分自身に尋ねました:
2つの異なるアカウントを使用すると、(単一の管理者)ユーザーアカウント+ UACを実行するのではなく、実際にセキュリティが向上しますか?
短い答え
日常のアクティビティを実行するために制限付きアカウントを使用し、昇格された特権を必要とするタスクを実行するための管理者特権を持つ別のアカウントを持っている.
長い答え
ユーザーアクセス制御は セキュリティ境界とは見なされません マイクロソフトによるものです。その理由は、Microsoft Vista以降の設計により、プロセスは起動時に限られた特権トークンのみを保持し、デフォルトの状態でUACによって保護されている昇格された特権を明示的に必要とするためです。ご覧のとおり、プロセスが昇格された特権を要求しない限り、UACは機能しません。これは、マルウェアが、昇格された特権を必要とせずに、ユーザーアカウントがアクセスできるすべてのものにアクセスできることを意味します。ユーザーのデータは、NT AUTHORITY\SYSTEM特権を取得するよりもはるかに重要です。
説明が必要なもう1つのことは、UACの「常に通知」設定です。一般に、デフォルトの状態のUAC、つまり「プログラムがコンピューターに変更を加えようとしたときにのみ通知する」は、さまざまな方法で回避できると理解されています。 Metasploitなどの悪用フレームワークには、専用の modules があり、UAC同意ダイアログなしでプロセスがサイレントに昇格されるデフォルト状態でUACバイパスを実現します。ただし、Always Notify設定についても同様です。たとえば、概説された手法 here を見てみましょう。テクニックの簡単な要約は、対話的に昇格を要求する代わりに、ログインしたユーザーを使用してプロセスをタスクスケジューラに登録することです。 Microsoftの用語では、S4U(ユーザー向けサービス)と呼ばれます。タスクは実行時に特権の昇格のユーザーからの同意を必要とせずに昇格された特権を持ち、UACが常に通知である最高のセキュリティ設定に設定されている場合でも同様です。
結論
ユーザーが管理者権限を持っていない場合、UACは多くの点で有益です。昇格された特権が必要になるたびに、ユーザーはUACプロンプトによって管理者ユーザーのパスワードを要求される個別の制限付きユーザーアカウントを持っています。ユーザーが既に管理者特権を持っている場合、UACはほとんど役に立ちません。