アプリケーションのホワイトリストは、未知のソフトウェアがPC上で実行されないようにする対策として有効な手段です。米国国立標準技術研究所(NIST: National Institute of Standards and Technology)からのアプリケーションホワイトリストに対しての推奨内容は「明確な基準の元、ホストで実行可能なアプリケーションとコンポーネント(ライブラリなど)のリスト」です。ブラックリストだと事前に悪意のあるソフトウェアの特徴を把握する必要があるので、即時性・有効性・未知の脅威に対する保護の点でどうしても劣ります。
逆にホワイトリストだと許可したアプリケーションしか実行できないので、あくまで許可リストにないアプリケーションは一切実行できません。デフォルト禁止かつ最少権限許可のルールとなり、アンチウイルスソフトウェアやIDSのブラックリスト方式より厳格に保護してさらに強い安全性を実現しているので、SANS InstituteやNISTからベストな保護策の1つとして推奨されています。実例としては、重要インフラにアプリケーションホワイトリストを導入することが最も基本的な完全措置と言えます。
ホワイトリスト制御のメリット
攻撃される範囲を減少させる
ホワイトリストのアプリケーションしか実行できないので、悪意のあるプログラムの攻撃もすべて制限されます。インターネットからダウンロードした不明なプログラムに含まれるウイルスやバックドアは最初からブロックされます。
保護の即時性を上げる
セキュリティ対策は常に更新して、保守する必要があります。OSやアンチウイルスソフトウェアやオフィスソフトウェアでさえ継続的にセキュリティパッチを当てる必要があります。しかしセキュリティホールの発見から実際にパッチを当てるまではどうしてもタイムラグが生じます。ホワイトリスト制御であればこの穴を埋められます。
未許可のアクセスを防止
ホワイトリストのアプリケーションしか実行できないので、内部リソースへのアクセスを防止してPCへのP2Pソフトウェアなど業務に関連のないソフトウェア自体もインストールをブロックできます。
未知の悪意あるプログラムをブロック
旧来のアンチウイルスソフトウェアと違って、署名や特徴・行為などを事前に把握する必要がないので、「未知」の攻撃でも対処できます。
基本攻撃とダウンロード実行をブロック
ホワイトリスト形式は基本的な攻擊自体をほぼブロックします。SANSやGartner等の研究でも大多数の攻撃(80-90%)は簡單なアプリケーションホワイトリスト制御で阻止できると述べられています。
攻撃側のコストを増大させ、ターゲットを変更させる
ホワイトリストの保護を突破するにはツール追加など方法でプログラムを偽装するなどの必要があるので、自ずとハードルとコストがあがります。難易度が上がるとターゲットを変更する攻撃者の数は決して少なくありません。
インシデント時の証拠情報収集
アプリケーションホワイトリストは当然実行禁止・許可・監視ログを取得できるので、未許可の実行はそのまま攻撃履歴として記録されます。初期の攻撃準備さえ記録・ブロックするので、以降の可能な攻撃も予見しやすくなり、さらに詳細な証跡と履歴によってインシデント対応に有効な情報を提供できます。
ホワイトリスト制御の欠点と制限
ホワイトリスト制御における最大の難点は、適切かつリアルタイムの保守にあります。本番環境での変化は複雑で、日々OSなどのパッチ適用やアプリケーションアップデート、ドライバのアップデートが発生します。ホワイトリストで制御してしまうとどうしても業務に影響してしまいます。
- 信頼プログラムの認可管理
これはアプリケーションホワイトリスト管理における主なハードルになります。解決案は2つで、1つは管理者やユーザに権限を付与して手動によるアプリケーションの確認とホワイトリスト追加実施してもらいます。もう1つはサードパーティが認証したデータベースを利用して信頼プログラムの基準とします。 - ホワイトリスト内容の更新管理
Hotfixやパッチ管理のホワイトリスト管理もまた高いハードルになります。識別情報(ハッシュや署名)を登録してもアップデートやパッチ適用後に変わることが多く、結局また制御されてしまいます。この場合は信頼管理の仕組みを調整する必要があります。例えばWindows Updateやユーザによるアップデートまたはパッチ適用を信頼して、条件に応じて自動でホワイトリストに追加する仕組みで対応できます。 - ベンダーの認証偽造
現在の技術でもアプリケーション電子署名認証が有効かをチェックできますが、そもそも認証の偽造が横行して窃取した認証を使用する悪意あるプログラムのケースも多く、認証だけを基準にすると悪意あるプログラムを通してしまう状況が出てきます。 - DLL ホワイトリストによる性能低下
アプリケーションホワイトリストがDLL(動的ライブラリ)にまで及ぶと、DLLを使用するアプリケーション性能が低下する恐れがあります。DLLのホワイトリストは追加のセキュリティ強化になり得ますがが、性能とのトレードオフを考慮するとかなり難しい選択になるでしょう。
結論
アプリケーションホワイトリストはゼロトラストに対する有効なソリューションになりつつあります。指定アプリケーションしか実行できない制御はセキュリティ更新までの間や未知のセキュリティリスクにも対応できます。しかし業務への影響を考慮すると、一般PCよりもインフラ機器や固定作業のサーバ、独立動作機器などでの導入が適していると思われます。

