サンドボックス化されたアプリケーションをローカルユーザーとして実行しています。いくつかの作業フォルダーといくつかのシステムDLLを除いて、このユーザーがシステムを保護するためのほぼすべてのファイルシステム権限を拒否したいと思います(以下では、このファイルとディレクトリのセットをX
と呼びます)。
サンドボックスユーザーはどのグループにも属していません。だから、それは許可を持っているべきではありませんよね?間違っています。すべての「認証済みユーザー」はローカルの「ユーザー」グループのメンバーであり、そのグループはほとんどすべてにアクセスできます。
拒否ACLエントリをallファイルとディレクトリに再帰的に追加し、それらをX
から手動で削除することを考えました。しかし、これは過剰に思えます。
また、「Users」グループから「AuthenticatedUsers」を削除することも考えました。しかし、私は意図しない副作用を恐れています。他のものがこれに依存している可能性があります。これは正しいです?
これを行うためのより良い方法はありますか? (非常に)信頼できないアカウントのファイルシステムのアクセス許可をどのように制限しますか?
覚えておくべきいくつかの事柄:
そのユーザーに対して トラバースチェックをバイパスする を無効にします。
明示的な許可は、継承された拒否よりも優先されます。
私はnotAuthenticatedUsersまたはUsersセキュリティグループを変更することをお勧めしません。
ドライブのルートにあるそのユーザーに「TraverseFolder」以外のエクササイズを拒否し、ユーザーが読み取れるようにする明示的な許可を付与します。一般的に、認証されたユーザーをユーザーから削除することはお勧めできません。
これがこれに取り組む正しい方法だとは思いません。
実際に行うべきことは、所有している機密データにACLを設定することです(たとえば、ユーザーがこのコンピューターにホームフォルダーを持っている場合は、そのユーザーと管理者だけがアクセスを許可されるようにACLを変更する必要があります)。
結局、私は「過剰な」解決策を採用しました。
icacls c:\* /T /C /deny MyComputer\SandboxUser:(OI)(CI)F
これにより、すべてのファイルとディレクトリに拒否エントリが追加されます。次に、 Process Monitor を使用して、アプリケーションを実行するために手動で変更する必要のあるアクセス許可を確認しました。
システムにログインできるようにしたい非常に信頼できないユーザーでも、特定のシステムファイルへの読み取りアクセスが必要になることに注意してください。ここであなたの懸念は何ですか?ユーザーがシステムファイルなどを削除できるのではないかと心配している場合は、標準のユーザーアカウントで必要なセキュリティを確保できます。本当に心配な場合は、Guestsグループのメンバーにしてください。
本当に心配なら本当にシステムにもっと制限のあるセキュリティテンプレートを適用することを検討してください(またはWindows7の場合はセキュリティ構成Wizard/2008以降)。ただし、これにより他のユーザーが問題を引き起こす可能性があることに注意してください。