セキュリティ対策の要点解説

第 4 回 危ないファイルも実行できなければ大丈夫 ~ Access Control List ~

公開日: 2006年4月26日

マイクロソフト株式会社 セキュリティ レスポンス チーム 小野寺 匠 著

前回は、アプリケーションの実行を管理者の意思で制御するためのポリシーを取り上げましたが、実際に実施の検討前に、Active Directoryを・・・という声が聞こえてきそうです。今回も、アプリケーションの実行を制御する方法をとりあげますが、ポリシーを基にするのではなく、アクセス制御リスト (ACL: Access Control List) を使った方法を取り上げます。組織内の PC 利用を考えた場合、ユーザーが持ち込んだアプリケーションは実行されない方が、管理者としてはうれしいわけです。

そこで、Windows アプリケーションを実行するのに必要なアクセス権について考えてみます。Windows では、何かの操作をする場合、「誰が」「何を」しても良いのかを確認します。この「誰が」「何を」の一覧が、ACL と呼ばれる情報です。ACL 内の一つ一つの項目は ACE (Access Control Entry) と呼ばれ、普段以下のような形で見ることができます。

図 1

図 1 の下の部分を見ると、「読み取りと実行」の許可にチェックがついているのがわかると思います。これは、Users グループに属するユーザーがファイル/フォルダの読み取りまたは実行 (開く) が許可されていることを表しています。

ですから、「読み取りと実行」の許可のチェックを外すと、アプリケーションの実行ができなくなり、図 2 のようなエラーが表示されます。

図 2

さて、一応これで、アプリケーションの実行を ACL で制御するという目的は達したわけですが、実際に運用するには問題があります。ひとつに、色々なユーザーに対してアクセス権を設定していく内に、「実行」のアクセス権が与えられてしまう (設定漏れ) 可能性があります。次に、単純に、「読み取りと実行」の許可のチェックを外してしまうと、少々特殊なアクセス権の設定を行っているフォルダ階層で、下層のフォルダにアクセスできない場合があります。(通常は、「走査チェックのバイパス」特権がすべてのユーザーに与えられていますので問題になりません。)

では、どのように設定するのが適切なのか。それには、[セキュリティ] の設定ダイアログから、[詳細設定] を選択し、図 3 のダイアログを表示します。

図 3

ここで、[追加] をクリックし、 Everyone を追加します。そして、図 4 のように、適用先を「ファイルのみ」にし、「フォルダのスキャン/ファイルの実行」の拒否にチェックをつけます。

図 4

ACL では、"拒否"が"許可"よりも優先されるため、Everyone (匿名を含むすべてのユーザー) に対して、ファイル (アプリケーション) の実行を拒否 (禁止) します。そして、適用先に「ファイルのみ」を選択しているので、フォルダには影響を与えず、ファイルのみに「実行の拒否」を適用できます。この設定により、先に上げた問題を回避しつつ、アプリケーションの実行を禁止することが可能です。

この設定を、デスクトップや、マイドキュメント、外部からファイルを受け取るためのフォルダや、ファイル サーバー全体 (アプリケーション インストール用を除く) 等に対して設定することで、不意のアプリケーション実行による危険性を抑制することができます。なお、ドキュメント ファイルは、引き続きダブルクリックで開くことができます。たとえば、*.doc ファイルの場合、実行されるのは、Program Files フォルダ等にインストールされた、*.doc に関連付けられたアプリケーションであるため影響を受けません。

ACL の効果を最大限に高めるために、実行権限のあるフォルダへ、ユーザーがファイルを追加できないようにすることも忘れずに行う必要があります。

次回は、外部からの侵入対策について取り上げてみます。

この記事は、マイクロソフト セキュリティ ニュースレターで配信しました。

ページのトップへ

バックナンバー

ページのトップへ