Windows 10のエクスプロイト対策、3つの重要機能とは:メモリベースの攻撃を防ぐ
MicrosoftはWindows 10の「Windows Defender Exploit Guard」で、「アドレス空間レイアウトのランダム化(ASLR)」など、メモリベースの攻撃を防ぐ3つの重要な機能を提供している。
Windows 10は、内蔵メモリを操作してシステムの制御を取得しようとするメモリベースのエクスプロイト(脆弱性攻撃プログラム)を含むさまざまな種類の攻撃からデバイスを保護する侵入防止機能を備えている。
「Windows 10 Fall Creators Update」で、メモリベースの攻撃への対策として導入された機能は、「Windows Defender Exploit Guard」の「Exploit Protection(エクスプロイト保護)」機能に含まれている。Windows Defender Exploit Guardは、Windows 10 Fall Creators Updateでリリースされた新しいホスト侵入防止機能セットだ。Exploit Protection機能には、「Enhanced Mitigation Experience Toolkit(EMET)」の機能の多くが取り入れられている。Microsoftは間もなくEMETのサポートを終了するからだ。
併せて読みたいお薦め記事
Windows 10のセキュリティ対策
- 「Windows 10」のMicrosoft純正セキュリティ機能4選
- 「Windows Defender」は今やウイルス対策だけじゃない 新たな3大機能をチェック
- Windows 10のセキュリティ対策、標準ツール「Windows Defender」以外にすべきことは?
Windows 10を賢く使う
Microsoftは、EMETの保護機能を改善してこれらの対策機能を用意し、それらをグループポリシーオブジェクトで構成できるようにした。管理者は「プロセス軽減策オプション」というグループポリシー設定により、メモリベースの攻撃(バッファオーバーランを悪用して悪意あるコードをメモリに注入しようとするマルウェアのような攻撃)に対するシステムの反応を制御できる。
Exploit Protection機能で利用できるこうしたプロセス軽減策オプションでは、以下の3つのカテゴリーの設定を制御できる。
- データ実行防止(DEP:Data Execution Prevention)
- アドレス空間レイアウトのランダム化(ASLR:Address Space Layout Randomization)
- 構造化例外処理の上書き保護(SEHOP:Structured Exception Handling Overwrite Protection)
管理者はさまざまな方法でこれらのExploit Protectionのオプションをカスタマイズできる。例えば、個々のコンピュータでこれらの設定を構成し、構成をXMLファイルとしてエクスポートし、グループポリシーを使って、そのファイルの設定を他のコンピュータに配布できる。また、PowerShellを使って、接続されたデスクトップの設定を直接構成することもできる。
データ実行防止(DEP)
一部のメモリベースのマルウェアは、悪意あるコードをアプリケーションのメモリに挿入しようとする。そのコードが後で実行されるのを期待してのことだ。こうした攻撃を追跡するのは難しい。システムが再起動すると、証拠が残らないからだ。DEP設定は、マルウェアが使用可能なメモリの範囲を小さくすることで、こうしたリスクに対処する。
DEPは、データの保存専用に割り当てられたメモリ領域で実行可能ファイルが実行されるのを防止する。これは、新しいCPUで使用可能なNo eXecute(NX)ビットを使って、メモリブロックを読み取り専用とマークすることで実現される。マルウェアがアプリケーションの脆弱性を悪用し、悪意あるコードの挿入に成功しても、そのコードはこれらのブロックでは実行できない。
Windows 10は現在、DEP関連の2つの設定のみをサポートしている。その1つは、DEPが有効かどうかを制御する。デフォルトでは有効化されている。
もう1つの設定は、「Active Template Library(ATL)サンク」に関するものだ。これは1つ目の設定のサブ設定であり、DEP/ATLサンクエミュレーションが有効かどうかを規定する。有効の場合、システムは、ATLサンク層で発生するNXフォールトをインターセプトする。ATLは、IT部門が小規模なComponent Object Model(COM)オブジェクトを作成するのに使えるテンプレートベースのC++クラスのセットだ。サンクは、サブルーティンに追加の計算を注入するための小さなコードセグメントを指す。
アドレス空間レイアウトのランダム化(ASLR)
Copyright © ITmedia, Inc. All Rights Reserved.