EMETで検出された脆弱性

FireEyeの専門家は、EMETツール[1、2、3、4、5、6、7]に重大なセキュリティ上の欠陥を発見しました 。これにより、組み込み機能を使用してプロセス保護メカニズムを簡単に無効にできます。 この脆弱性は、EMETの以前のバージョン、つまり現在の5.5より前のバージョンに存在します。 これらのバージョンのユーザーは、EMETを最新バージョンにアップグレードすることをお勧めします。







EMET自体は、保護されたプロセスのシステムライブラリのAPI関数からインターセプトを削除するための内部メカニズムをサポートしています。 この関数は、プロセス保護を迅速に無効にする必要がある場合に使用されます。動的ライブラリemet.dllが実装を担当します。 完全な保護シャットダウンは、アンロードコードDLL_PROCESS_DETACHを使用してDllMainハンドラーによって実装されます。 emet.dllはkernel32!GetModuleHandleW関数をインターセプトせず、その動作を制御しないという事実により、シェルコードがGetModuleHandleWを呼び出してメモリ内のDLLロードアドレスを取得し、 DllMainを呼び出してこの値を渡し、定数を関数にアンロードします。



実際、この脆弱性を悪用するには次の呼び出しで十分です。



BOOL WINAPI DllMain(GetModuleHandleW( "EMET.dll")、DLL_PROCESS_DETACH、NULL);



DllMain関数はライブラリへのエントリポイントであり、他のエントリポイントと同様に、DLLはプロセスにロードされ、プロセスからアンロードされるときにさまざまなイベントを処理します。 最初の引数はライブラリロードのベースアドレス、2番目はイベント、3番目は使用されません。



この脆弱性のデモンストレーションとして、FireEyeの専門家はCVE-2012-1876の脆弱性に対する古いRCEエクスプロイトを利用し、上記の呼び出しを使用してプロセス保護を無効にするシェルコードを追加しました。 このエクスプロイトは、ROPテクニックを使用してDEPをバイパスします。 EMETを無効にすると、エクスプロイトはその機能を安全に実行できます。



US-CERTは、Microsoft Enhanced Mitigation Experience Toolkit(EMET)バージョン5.5以前の脆弱性を認識しています。 この脆弱性を悪用すると、リモートの攻撃者がEMETをバイパスまたは無効にして、影響を受けるシステムを制御する可能性があります。



US-CERTでは、ユーザーと管理者がMicrosoft Security TechCenter(リンクは外部)にアクセスし、EMETバージョン5.5にアップグレードすることをお勧めします。 追加情報については、FireEye脅威調査ブログをご覧ください(リンクは外部です)


www.us-cert.gov/ncas/current-activity/2016/02/23/Microsoft-Releases-Update-EMET



All Articles