アプリケーション ホスティング サービス用のかなり単純なセキュリティ サンドボックスを構築したいと考えています。主な目標は次のとおりです。
- サンドボックス内で実行されているアプリケーションは、実行可能ファイルが実行されているディレクトリ以外のシステムには何もインストールできません。
- 一般的なシステムへのアクセスは拒否されます (レジストリ アクセスなど)。
- 指定されたディレクトリ外のファイル システム (読み取り専用であっても) へのアクセスは、明示的に拒否されます。これはサンドボックス内で実行される .NET アプリケーションになるので、ランタイムやコアの依存関係が偶発的に拒否されるかどうかはわかりません。
私が現在持っている計画は、次の方法で System.DirectoryServices 名前空間を使用して .NET でサンドボックスを構築することです。
- 起動されたインスタンスごとに新しい半永久的なユーザー アカウントを作成する
- システムへの幅広いアクセスを拒否するために、ユーザーのゲストクラスから派生させます
- 次に、アプリケーションを実行する必要がある有限数のディレクトリへの読み取りおよび書き込みアクセスを明確に許可します。
この計画の特定の欠陥に気付く人はいますか? また、ユーザー アカウントのセキュリティは、上記の要件を安全に満たすのに十分ですか? 現在、これを処理するために商用ソフトウェアを使用しています (サンドボックス化により包括的です)。しかし、それは私たちのビジネスにとって十分に自動化できないため、コア自動化ソフトウェアに組み込むことを望んでいます.