Windows 10で強化された攻撃の緩和技術をご存じでしょうか?今回は、Windows 10で実際に提供されている緩和策と、2017年4月に提供を開始したCreators Updateにて提供される新機能を紹介していきます。

システム緩和策

代表的な攻撃の緩和策としては、コード ページ以外でのコード実行を不可能とすることで不正なコード実行を防止するData Execution Prevention (DEP)や、モジュールが読み込まれるメモリアドレスをランダム化することにより攻撃を困難にするAddress Space Layout Randomization (ASLR)などが、古くから知られ、追加の実装として取り入れることが可能でした。Windows 10では、これらを規定の緩和策として多く取り入れることで、特にカーネルメモリ空間における攻撃阻止を図っています。また、緩和策を適用可能なメモリ空間を拡大することで、これらの緩和策がさらに回避され攻撃につながることを防止しています。

Windows 7 と Windows 10のシステム緩和策比較表

こうした緩和策の既定化、適用空間の拡大により、Windows 10では実際に修正が行われている脆弱性に対して、悪用コードの実行可能件数が減少しています。

2015年、2016年に修正された Windowsの脆弱性の悪用あり、もしくは悪用コードの可能性高の件数

アプリケーション緩和策

攻撃者はWindowsシステムだけではなく、Windows上にインストールされているアプリケーションや、プラグインの脆弱性を狙って攻撃を行う場合もあります。アプリケーションなどは、互換性の問題からアップデートが遅れるケースも多くあり、対策が困難な環境も多くあります。Windowsでは、ユーザーモード空間で稼働するアプリやプラグインにある脆弱性をついた攻撃も検出・ブロックするよう、アプリが稼働するメモリ空間にて攻撃緩和策を組み込むことができます。

Windows 10利用可能な緩和策(アプリケーション)

緩和策をアプリケーションに組み込んでいく方法としては、まずアプリを開発時に実装する方法があります。

悪意のあるDLLのロード防止、コードページガード、子プロセス作成防止などは、コーディングの際に組み込んでいくことが可能です。そのほか、スタック オーバフロー検出、データ実行防止(DEP)、アドレス レイアウト ランダム化(ASLR)などは、コンパイル時にオプションとして取り入れることで組み込むことができます。なお、Visual Studio 2010 以降を利用している場合は、コンパイル時に既定で組み込まれるように設定されています。

Windows 10を対象としたアプリにおいては、新たに制御フローガード(CFG)の緩和策が利用可能になっています。コードのすべての間接的な呼び出しを分析しヘッダーの追加の構造に格納し、ランタイム セキュリティチェックを実施することで、攻撃者による不正な呼び出しを防止することができます。Visual Studio 2015 Update 2以降から利用でき、現時点ではオプショナルの設定となっているため、設定を変更するか、/guard:cfオプションを利用する必要があります。

詳細参照:「SetProcessMitigationPolicy function

Win32Projectプロパティページ

アプリケーションのコードの改修が困難な場合は、開発時ではなく、アプリ実行時に緩和策を実行するようにWindows側で設定することも可能です。設定は、Powershell、またはレジストリで行うことができます。2017年4月に公開したCreators Update以降では、Microsoft Enhanced Mitigation Tool(EMET)の設定をインポート可能とされていたXML形式のプロファイルにより管理をできるようにするなど、組織での管理も柔軟に行えるようになりました。

Powershell 設定例
・ モジュールの読み込み
 - Install-Module -Name ProcessMitigations
・ 特定のプロセスに設定を適用する
 - Set-ProcessMitigation -Name -Enable
・ 設定をXMLに出力する
 - Get-ProcessMitigation -RegistryConfigFilePath settings.xml
・ XMLから設定を適用する
 - SET-ProcessMitigation -PolicyFilePath settings.xml

詳細参照:「ProcessMitigations Module

Fall Creators updateでは?

これまでEMETで提供されていたいくつかの緩和策は、Windows 10に移行予定となっています。現状はEMETとWindows10を併用し、最新の緩和策を適用することを推奨していますが、今後登場する予定のFall Creators Updateでは、Exploit Protector機能として、EMETで提供していたテクノロジーを完全に追加し、さらに緩和策を拡大する予定です。ぜひご期待ください。

著者紹介

垣内 由梨香
マイクロソフト株式会社 セキュリティ レスポンス チーム セキュリティ プログラム マネージャー

マイクロソフト株式会社に入社以来、Active Directory, Network, 証明書および暗号化を専門としたWindows エンジニアを経て現職。セキュリティの意識向上活動、インシデント対応に従事。CRYPTREC委員。