2009年01月13日 07時30分 UPDATE
特集/連載

デスクトップのセキュリティホワイトリストによるマルウェア対策

マルウェアとの戦いに勝利する唯一の方法は、それをシステム上で動作させないことだ。ホワイトリストは、システム上で動作させるアプリケーションを管理する強力な手段だ。

[Michael Cobb,TechTarget]

 Windows Vistaを使っている人々が最もよく口にする不満の1つが、セキュリティ機能の1つである「ユーザーアカウントコントロール(UAC)」が煩わしいということだ。UACは、信頼できるアプリケーションだけが高いシステム権限を得られるようにするためにMicrosoftが導入したセキュリティメカニズムであり、マルウェアによってOSが危険にさらされるのを防ぐのがその目的だ。ユーザーアカウントに管理者権限が割り当てられていても、そのユーザーが実行しているアプリケーションに同じ権限が割り当てられるわけではない。

 UACをめぐる不満は主として、ソフトウェアをインストールする際に何度も表示される警告と同意ダイアログボックスに関するものだ。セキュリティというのは常に、パフォーマンスおよび使い勝手とトレードオフの関係にあり、セキュリティ機能によって作業の中断が生じるのは避けられない。残念なことに、多くのユーザーがUACのポップアップ警告に対して、「はい」あるいは「いいえ」をクリックする意味を理解しないのも避けられない現実だ。

ホワイトリストによるアプリケーション管理

 しかしデスクトップのセキュリティ対策は不可欠であり、マルウェアとの戦いに勝利する唯一の方法は、それをシステム上で動作させないようにすることだ。アプリケーションホワイトリストは、どのアプリケーションがクライアントマシン上で動作できるかを指定するものであり、UACもホワイトリストの一種だといえる。ホワイトリストは、システム上で動作することが許されるプログラムをコントロールするための強力な手段だ。

 しかし、ユーザーがどのプログラムをインストールして実行できるかをシステム管理者がコントロールしている管理された環境にあっても、全社的なホワイトリストを管理するのは難しい場合もある。最初のホワイトリストを作成するには、ユーザーの業務内容および業務の遂行に必要なアプリケーションを詳細に検討する必要がある。また、ビジネスプロセスとアプリケーションがますます複雑化しているため、リストのメンテナンスには大変な労力が必要となる。加えて、職務の分掌を求めなければならないこともある。これは、不適切な組み合わせのアプリケーションアクセス権限を従業員に与えないようにするためだ。最新のスマートフォンに対応した新しい自動同期化プログラムを使いたいというCEOの要求を拒否するのも容易なことではない。

 また、ユーザーに自分のホワイトリストを管理するよう求めるというのも、不完全なソリューションだ。不満や知識不足、そしてソーシャルエンジニアリング手法を用いた高度なマルウェア攻撃などのせいで、多くのユーザーが不適切なソフトウェアをインストールしてしまうだろう。アプリケーションのホワイトリストで成果を達成するには、経営陣の支持を取り付けるだけでなく、ユーザーが新しいアプリケーションの導入を簡単かつ迅速に申請できるような手段も必要だ。そのためには、認可権限を部門レベルに委譲したり、ホワイトリストに含まれないアプリケーションでも、暫定的に実行を許可するといったことも検討する必要があるだろう。

 信頼できるソースに認可アプリケーションホワイトリストの作成を任せるというのも1つの方法だ。これは既に、アンチウイルスソフトの分野ではある程度実施されている。例えば、マルウェア対策ベンダーのSymantecでは、無害なアプリケーションをまとめた「信頼アプリケーションリスト」を利用している。この種のリストは、レジストリクリーナーやスパイウェア除去プログラムが、特定のアプリケーションを残しておいても大丈夫か、それとも削除する必要があるのかを判断するのにも利用される。より厳格な方策としては、信頼できるリポジトリからダウンロードしたデジタル署名付きのソフトウェアだけをインストールすることをシステムに許可するという手段もある。

ホワイトリストの真価とは

 しかしホワイトリストは、脆弱性のあるプログラムに対処することはできない。ホワイトリスト環境内でも、例えば、通常のバッファオーバーフロー攻撃によって悪質な実行可能ファイルを実行させることができる。プログラムに脆弱性があっても、システムはホワイトリストに含まれているプログラムがコードを実行していると判断するからだ。多くのホワイトリスト製品のもう1つの欠点は、きめ細かなコントロールができないことだ。単純な「はい」か「いいえ」という判断ではプログラムの実行を許可するか許可しないかのどちらかしかないが、現実には特定のプログラムを使用するユーザーの一部については、特定の機能だけにアクセスできるようにした方が適切な場合もあるだろう。

 ホワイトリストの真価は、システム上で動作するアプリケーションをコントロールすることにあるが、ほかの技術によってホワイトリストを補強する必要がある。例えば、Cisco Systemsのデスクトップホスト用侵入防止技術「Security Agent」は、アプリケーションホワイトリスト機能を備えるだけでなく、アプリケーションがアクセスできるシステムリソース(ファイルやネットワークなど)をコントロールすることもできる。

 OSに組み込むソフトウェア制限ポリシーを開発しているベンダーもある。例えば、Microsoftでは、重要なデータをランダムに配置するAddress Space Layout Randomization(ASLR)技術、そして実行禁止メモリ領域のコード実行を禁止するData Execution Prevention技術を推進している。これらのメカニズムは、アプリケーションの脆弱性に起因する被害を抑えられる。Microsoftでは、アプリケーションホワイトリストはセキュリティ戦略の重要な要素と考えているようだ。同社の企業向けウイルス/スパイウェア防止技術「Forefront Client Security」にも、近くホワイトリスト機能が搭載されるといううわさだ。

 どんなセキュリティ対策でもそうだが、防御層を多重化することは有効な手段であり、アプリケーションホワイトリスト技術を1つの防御層として広範に活用することが望ましい。管理の労力は伴うが、企業は自社のセキュリティ戦略でアプリケーションホワイトリストが重要な役割を果たす可能性を検討すべきだ。

本稿筆者のマイケル・コッブ氏は、データセキュリティおよび解析に関するトレーニングやサポートを提供するITコンサルティング会社、Cobweb Applicationsの創業者兼マネージングディレクター。CISSP-ISSAP(公認情報システムセキュリティプロフェッショナル―情報システムセキュリティアーキテクチャプロフェッショナル)の資格を持つ。共著書として『IIS Security』があり、主要なIT出版物に多くの技術記事を寄稿している。

この記事を読んだ人にお薦めのホワイトペーパー

この記事を読んだ人にお薦めの関連記事