Overview
アプリケーション制御(Application Control)とは、エンドポイント上で実行を許可するアプリケーションやスクリプトを明示的に管理・制限するセキュリティ技術です。組織が承認したソフトウェアのみの実行を許可するホワイトリスト(許可リスト)方式と、既知の悪意あるソフトウェアの実行をブロックするブラックリスト(拒否リスト)方式の2つのアプローチがあり、より高いセキュリティを実現するにはホワイトリスト方式が推奨されます。
従来のアンチウイルスソフトウェアがシグネチャベースで既知のマルウェアを検知するのに対し、アプリケーション制御は「許可されたプログラム以外はすべてブロックする」というゼロトラストの原則に基づいています。これにより、未知のマルウェアやゼロデイ攻撃、ファイルレスマルウェア、Living off the Land(環境寄生型)攻撃など、従来の検知技術をすり抜ける高度な脅威に対しても効果的な防御を提供します。
Windows環境ではWindows Defender Application Control(WDAC)やAppLocker、macOS環境ではGatekeeperおよびApp Management、Linux環境ではSELinuxやAppArmorなどが代表的なアプリケーション制御機能として利用されています。エンタープライズ向けには、Carbon Black App Control(旧Bit9)やIvanti Application Controlなどのサードパーティ製ソリューションも広く採用されています。
Details
ホワイトリスト方式とブラックリスト方式
ホワイトリスト(許可リスト)方式は、明示的に許可されたアプリケーションのみ実行を許可し、それ以外のすべてのプログラムをブロックするアプローチです。未知の実行ファイルは自動的にブロックされるため、新種のマルウェアやゼロデイ攻撃に対して非常に高い防御力を持ちます。ただし、初期導入時の許可リスト作成や、ソフトウェアアップデート時のリスト更新など、運用負荷が高いという課題があります。
ブラックリスト(拒否リスト)方式は、既知の悪意あるプログラムや承認されていないソフトウェアの実行を禁止するアプローチです。従来のアンチウイルスに近い概念で運用が容易ですが、リストに登録されていない未知のマルウェアは防御できないため、ホワイトリスト方式と比較してセキュリティレベルは低くなります。多くの組織では、これら両方のアプローチを組み合わせたハイブリッド方式を採用しています。
アプリケーション識別の方法
アプリケーション制御では、プログラムの識別にいくつかの方法が使用されます。ファイルハッシュは、実行ファイルのSHA-256ハッシュ値を照合する最も厳密な方法です。ファイルが1バイトでも変更されるとハッシュ値が変わるため、改ざんされたプログラムの実行を確実に防止できますが、ソフトウェアの更新のたびにハッシュ値を再登録する必要があります。
デジタル署名(コード署名)は、ソフトウェアベンダーの電子証明書で署名されたプログラムを信頼する方法です。ベンダー単位で許可できるため管理が容易ですが、正規の証明書が盗用された場合や、署名されたソフトウェアに脆弱性が含まれる場合には対応できません。ファイルパスルールは、特定のディレクトリ(例:Program Files配下)にインストールされたプログラムを許可する方法で、管理は最も容易ですが、攻撃者が許可されたパスにマルウェアを配置するリスクがあります。
Windows Defender Application Control(WDAC)
WDACは、Windows 10以降で利用可能なカーネルレベルのアプリケーション制御機能です。AppLockerの後継として位置づけられ、カーネルモードドライバーの制御、Microsoftの推奨ブロックルール、Intelligent Security Graphとの連携など、より高度な機能を提供します。
WDACポリシーは、XML形式で定義され、グループポリシーやMicrosoft Intuneを通じて配布できます。監査モード(Audit Mode)では、ポリシー違反を記録するだけで実際のブロックは行わないため、本番適用前に影響範囲を評価できます。段階的に監査モードから強制モード(Enforcement Mode)に移行することで、業務への影響を最小限に抑えながら導入を進められます。
スクリプト制御とマクロ制御
現代のサイバー攻撃では、実行ファイルだけでなく、PowerShell、VBScript、JavaScript、Pythonなどのスクリプト言語や、Microsoft OfficeのVBAマクロが攻撃の初期段階で多用されています。アプリケーション制御の範囲をスクリプトにも拡張し、署名済みスクリプトのみの実行を許可する、Constrained Language Modeの強制、マクロの無効化などの対策が重要です。
Microsoftは2022年以降、インターネットからダウンロードされたOfficeファイルのVBAマクロをデフォルトでブロックするポリシーを導入しました。この変更により、マクロを利用したフィッシング攻撃の成功率が大幅に低下しましたが、攻撃者はLNKファイルやISOファイルなどの代替手段にシフトしており、包括的なアプリケーション制御の必要性が高まっています。
Living off the Land攻撃への対策
Living off the Land(LotL / 環境寄生型)攻撃は、OSに標準搭載されている正規のツール(PowerShell、WMI、certutil、mshta、regsvr32など)を悪用して攻撃を行う手法です。これらのツールは正規のソフトウェアであるため、従来のホワイトリストでは許可されてしまい、アンチウイルスでも検知が困難です。
この攻撃に対しては、WDACのManaged Installer機能やAppLockerのスクリプトルールを活用して、正規ツールの実行コンテキストを制限する必要があります。例えば、PowerShellの実行を管理者権限のみに制限する、certutilのダウンロード機能を無効化する、mshtaやregsvr32の実行を完全にブロックするなどの対策が有効です。
Security Measures
- 01ホワイトリスト方式の段階的導入:まず監査モードで許可すべきアプリケーションを洗い出し、業務に必要なソフトウェアの許可リストを作成してください。段階的に強制モードに移行し、ユーザーグループ単位で展開範囲を拡大することで、業務への影響を最小限に抑えながらセキュリティを強化できます。
- 02コード署名による信頼性の検証:自社開発のアプリケーションやスクリプトにはコード署名を適用し、署名されたプログラムのみの実行を許可するポリシーを設定してください。コード署名証明書の管理を厳格化し、秘密鍵の漏洩や不正使用を防止する体制を構築しましょう。
- 03スクリプト実行の制限:PowerShellのConstrained Language Mode、VBAマクロのデフォルト無効化、WSH(Windows Script Host)の無効化など、スクリプト実行環境を制限するポリシーを適用してください。業務で必要なスクリプトは署名付きに限定し、未署名スクリプトの実行をブロックしましょう。
- 04LOLBin(Living off the Land Binaries)の制御:攻撃に悪用されやすいOS標準ツール(certutil、mshta、regsvr32、wscript、cscriptなど)の実行を、業務上不要な場合はブロックまたは制限してください。Microsoftが公開する推奨ブロックルールを定期的に更新し、WDACポリシーに反映しましょう。
- 05ポリシーの定期的な見直しと更新:ソフトウェアの導入・更新・廃止に合わせて、許可リストと拒否リストを定期的に見直してください。長期間使用されていないアプリケーションの許可を取り消し、新規導入するソフトウェアの審査プロセスを整備しましょう。
- 06EDRとの連携による検知と対応の強化:アプリケーション制御をEDR(Endpoint Detection and Response)と連携させ、ブロックされた実行試行のアラートを収集・分析してください。繰り返しブロックされる不審な実行試行は、攻撃の兆候である可能性があるため、インシデント対応チームにエスカレーションする体制を構築しましょう。
Incidents
📋 SolarWinds Orion サプライチェーン攻撃(2020年)
2020年に発覚したSolarWinds Orionへのサプライチェーン攻撃では、正規のソフトウェアアップデートにバックドア(SUNBURST)が混入されました。SolarWinds Orionは多くの政府機関や大企業で使用されている正規のIT管理ソフトウェアであり、コード署名も正当なものであったため、従来のアプリケーション制御では検知できませんでした。
この攻撃は、ホワイトリストに登録された正規ソフトウェアそのものが攻撃の踏み台になるリスクを明確に示しました。対策として、アプリケーション制御にソフトウェアの振る舞い分析(EDR)を組み合わせ、正規プログラムであっても異常な動作を検知する多層的なアプローチの重要性が再認識されました。
📋 Emotetマルウェアによるマクロ悪用攻撃(2019-2022年)
Emotetは、主にメール添付のMicrosoft Office文書に埋め込まれたVBAマクロを通じて感染を広げるマルウェアで、2019年から2022年にかけて日本を含む世界中で猛威を振るいました。ユーザーが文書を開いてマクロの実行を許可すると、PowerShellが起動してC2サーバーからペイロードをダウンロードし、さらなるマルウェアの感染やランサムウェアの展開に利用されました。
Emotetの被害が拡大した要因の一つは、多くの組織でOfficeマクロの実行が制限されておらず、アプリケーション制御が不十分であったことです。この経験を踏まえ、Microsoftはインターネット経由で取得したファイルのマクロをデフォルトでブロックする方針を打ち出し、組織のセキュリティポリシーとしてもマクロの厳格な制御が標準的な対策となりました。
📋 カセヤVSAを悪用したREvilランサムウェア攻撃(2021年)
2021年7月、MSP(マネージドサービスプロバイダー)向けIT管理ソフトウェア「Kaseya VSA」の脆弱性を悪用し、REvilランサムウェアが約1,500社に配布される大規模なサプライチェーン攻撃が発生しました。攻撃者はKaseya VSAの管理機能を悪用して、MSPの顧客企業のエンドポイントにランサムウェアを直接配布しました。
この攻撃では、IT管理ツールという信頼された経路を通じてマルウェアが配布されたため、許可リストに登録された管理ツール経由の攻撃を防ぐことの難しさが浮き彫りになりました。対策として、管理ツール自体のセキュリティ強化、管理ツール経由の配布物に対する追加の検証、特権アクセスの最小化が推奨されています。