インテル セキュリティは、2017年3月22日に発表されたWindowsデバッグ機能に関する「DoubleAgentによるゼロデイ脆弱性」の影響を調査してきました。
このインジェクション手法では、管理者権限を必要とするMicrosoft Windowsのデバッグ機能が悪用されます。オンザフライによるデバッグはMicrosoft Windowsの実行ファイルを対象に実行されるよう設計されており、アンチウィルス製品全般やマカフィー製品のみを対象とするものではありません。
IFEO(Image File Execution Options)を使った手法は、私たちが信頼して使用しているソフトウェアとハードウェア向けのセキュリティ関連技術を調査・評価する手法の一つとして長年利用されてきました。例えば、Windowsのプロセスデバッグレジストリキーを使う同様の手法は、少なくともここ数年にわたって公に議論の対象となってきました。
このブログではIFEO攻撃の正当性についてお伝えするものではなく、またWindowsデバイスを悪用するさまざまな手法におけるIFEO攻撃の優位性を論じるものでもありません。そして、攻撃側が何らかの手段によりWindowsデバイスの管理者権限を取得する際に、どのような攻撃手法を選択するかについて分析するものでもありません。
このブログでは、このような種類のインジェクション攻撃に対してインテル セキュリティのエンドポイント向けソリューションが持つ回復力(resilience)を示し、このような攻撃による被害を軽減、あるいは無効化するためにユーザーが利用可能な手段をリストアップしています。加えて、このような攻撃があった場合にそれを検知するためのインテル セキュリティのソリューションの機能も紹介しています。
インテル セキュリティのソフトウェアは、そのベースとなるOSに基本的に依存せざるを得ません。IFEO攻撃などOSのメカニズムを通じてソフトウェアの完全性を毀損する可能性のある手法が存在する場合、インテル セキュリティのソフトウェアがそれを検出、保護する仕組みを提供しなければなりません。IFEO攻撃を例に取ると、インテル セキュリティの最新の個人向けおよび企業向け製品には、攻撃側からインジェクトされたバイナリの実行を防止する機能が搭載されています。
また、インテル セキュリティのエンドポイント保護ソリューション自体と、それらエンドポイント保護ソリューションが実行するプロセスを保護するために、複数のレイヤーによる保護が採用されています。
最新のMcAfee Endpoint Security Solution(ENS)10.5において、インテル セキュリティは以下の3種のメカニズムを提供しています。
- #1 - IFEOレジストリキーの作成を防止する自己保護ルール
- #2 - 信頼性の低いプロセスによるプロセスインジェクションを防止する自己保護ルール
- #3 - モジュール(DLL)を、インジェクションなど読み込み方法を問わず、読み込む前にそれが信頼できるソースから有効に署名されていることを確認するモジュールサニタイゼーション(モジュールの無害化)
プロセスインジェクションの自己保護ルール(#2)とモジュールサニタイゼーション(#3)の詳細についてはこちらのナレッジベース(英文)をご覧ください。
モジュールサニタイゼーション(#3)はMcAfee ENSでデフォルトで実行されます。
レジストリの自己保護ルール(#1)は、どのマカフィー製品がインストールされているかによって複数の形態があります。製品出荷時のデフォルトのルールでは、IFEOキーが作成されないようにすることで、コアとなるマカフィーサービスを保護します。現在、出荷時のルールではこのコアサービスの保護に焦点があてられているため、ENSを含め、マカフィーのAnti-Malware Core(AMCore)を使う全製品について、すべての製品バイナリを保護できるよう現在アップデートを進めています。また、VirusScan Core(VSCore)を搭載した製品の場合は、ルールを手動で追加できます。
アップデート版の自己保護レジストリルール(#1)では、マカフィーのバイナリをすべて保護することに加え、悪意あるIFEOキーを別の場所で作ってからその名称を変更する(Rename Technique)といった手法にも対応します。
IFEOインジェクションの標的対象によっては、攻撃を防止する仕組みも異なることがあります。ターゲットが自己保護レジストリルールで保護されている場合、その攻撃の影響は軽減されます。ターゲットが自己保護レジストリルールで保護されていない場合には、インジェクションは発生しますが、マカフィー製品のモジュールサニタイゼーション機能が適用されている場合は読み込みが阻止され、インジェクトされたプロセスに対する信頼性が無効化されます。
ENSで想定される最も悪いシナリオに遭遇した場合、レジストリ項目が作成され、インジェクションが発生したとしても、悪意あるDLLの読み込みが拒否されるためプロセスは起動に失敗します。マカフィーのENSプロセスでは悪意あるモジュールの実行を許可しません。
マカフィー製品はまた、マカフィー以外のプロセスに対する同様な攻撃に対して包括的な保護を提供します。ENSの場合、ユーザーはIFEOの下での[program].exeキー作成をすべて防止するための「.EXEまたはその他の実行可能な拡張子をハイジャックする」ルールを強制実行できます。また、マカフィーのDynamic Application Containment(DAC)により、IFEOキー作成が含まれたプロセスを制限します。
重要なこととして、攻撃側はIFEOキーの操作に先立ってまずWindowsシステムに侵入しなければなりません。ユーザーのアカウントに管理者権限が与えられていない場合、攻撃側がこの権限を取得するにはさらにいくつかのステップが必要となります。これらのステップのそれぞれについては非常に多数の手法が存在します。
McAfee VirusScan Enterprise(VSE)とENSはいずれも、攻撃側がWindowsへの侵入に使用する手法を特定および防止し、また攻撃側が権限をシステム管理者にまで引き上げることを防止するよう設計されています。ユーザーはMcAfee DATファイルを常に最新バージョンにアップデートし、最新バージョンのマカフィー製品を使用するとともに、マイクロソフトがセキュリティアップデートを発表したときには直ちにそれを導入することをお勧めします。Windowsかそれ以外のOSかを問わず、侵入経路の大半は、利用可能なパッチが適用されていなかったことが原因となっています。
インテル セキュリティは、人々が日々使用するハードウェアとソフトウェアを標的とした、これらの手法に対応するための研究を継続しています。これはビジネスで利用するシステムへの信頼感を提供するうえで、また一般家庭もそれらのシステムを利用するようになってきている今日では不可欠の取り組みです。
※本ページの内容は 2017年3月24日更新のMcAfee Blog の抄訳です。
原文: Technical McAfee Detail On DoubleAgent
著者: Raj Samani(VP, CTO for EMEA, Intel Security)