Microsoft社より公開されている、脆弱性の悪用リスク緩和のためのツールが「EMET(Enhanced Mitigation Experience Toolkit)」です。
環境などの制限により、ユーザーによっては必ずしもセキュリティ・パッチをインストールすることができるとは限りません。
そのため、脆弱性への対策ツールは非常に有効です。
しかし、全脅威に対して有効というものではなく、既存の脆弱性に対する緩和策です。
サードパーティの製品をあわせて導入することは必須と言えるでしょう。
EMETがサポートする緩和策
2017年5月現在のバージョンでは、以下の緩和策をサポートしています。
- データ実行防止(DEP)
プログラムが実行不可であるメモリ領域から、マルウェアなどの不正プログラムや悪性コードの実行を防ぐ。
- Attack Surface Reduction(ASR)
対象ソフトウェアによる、特定ライブラリやプラグインの読み込みを制限する。
- Export Address Table Filtering(EAF+)
従来のEAFを強化したもの。
EAFは、kernel32.dll、ntdll・dll、kernelbase.dllのEAT(Export Address Table)へのアクセスが適切に行われているかチェックすることで不正操作を制限する。
EAF+は加えて、スタックメモリとスタックレジスタのチェックを行う。
- Nullページアロケーション
メモリ領域においてNullページをあらかじめ割り当て、ユーザーモードにおけるNullページへの逆参照を制限することで悪性コードの実行リスクを緩和する。
- ヒープスプレーアロケーション
ヒープスプレーを悪用したエクスプロイトを緩和する。
ヒープスプレーとは、攻撃者が悪性コードの実行確率を上げるために、シェルコードのコピーをヒープ領域上に設置することで行う攻撃手法。
- Structured Exception Handling Overwrite Protection(SEHOP)
SEHのリスト構造の終端に例外ハンドラを置くことで、バッファオーバーフロー発生時の例外処理の際の脆弱性を緩和する。
- 強制Address Space Layout Randomization(ASLR)
データ領域の位置をランダムに配置することで、攻撃者が標的アドレスを予測しづらくする。
- ボトムアップASLR
メモリアドレスのランダム化により脆弱性を緩和する。
- ロードライブラリチェック
ロードライブラリ関数はUNCパス(例:¥¥コンピュータ名¥¥フォルダー名¥¥ファイル名)を与えるとWindowsファイル共有を経由して他のPCに設置されているDLLを呼び込むことができる。
ロードライブラリチェックは、この仕組みの悪用を監視することで悪意あるDLLの呼び込みを防止する。
- メモリ保護チェック
メモリのスタック領域が実行可能な状態に変更され、悪性コードが実行されることを禁止する。
- 呼び出しチェック
プログラムより重要な関数が呼び出された場合、「RET」ではなくコール命令を介して呼び出されたかを確かめることで脆弱性を緩和する。
- 実行フロー・シミュレーション
クリティカル関数の呼び出しを受け、シミュレーションすることで該当機能がROPのテクニックが使われているかどうかをチェックする。
- スタックピボットReturn Oriented Programming(ROP)
スタックの変更を検出するために利用される。
EMETのインストール
EMETは、以下のURLからダウンロードすることができます。
- ツール名:EMET(Enhanced Mitigation Experience TooIkit)
- 使用目的:脆弱性の緩和
- 入手方法:https://www.microsoft.com/en-us/download/details.aspx?id=50766
ダウンロードした「EMETSetup.msi」をダブルクリックすることで、インストールが始まります。
基本的には、「Next」をクリックするだけです。
途中「EMET Configuration Wizard」と書かれた設定画面が表示されます。
設定は後でできる(後述する)ため、ここでは「Use Recommended Settings」を選択します。
緩和策の設定
EMETを起動すると、GUIが表示されます。
特に理由がなければ、全ての対策を有効化して良いでしょう。
次に、Configurationの「Apps」をクリックし、各アプリケーションに対する設定を行います。
ここで表示されるリストにないアプリケーションにおいては、追加することを推奨します。
特にウェブブラウザやビューワー関連については注意が必要でしょう。
アプリケーションの追加は、「AddAppliCation」から行うことができます。