EMETを利用してEMETを無効化する手法、FireEyeが解説 13
ストーリー by headless
emet-mori 部門より
emet-mori 部門より
Microsoftの脆弱性緩和ツール EMET (Enhanced Mitigation Experience Toolkit) の機能を利用してEMETを無効化する手法について、FireEyeが詳細を解説している(FireEye Blogsの記事、
The Registerの記事、
WinBetaの記事)。
EMETでは保護するすべてのプロセスに emet.dll または emet64.dll を注入し、Windows APIの呼び出しをフックすることで重要なAPIを呼び出すコードの分析を行う。ただし、EMETの内部には注入したDLLをプロセスからアンロードするためのコードが含まれている。このコードにはDllMainから到達可能であり、ROP(Return Oriented Programming)ガジェットを用いて適切な引数を渡すことによりEMETを完全に無効化できるとのこと。
ブログ記事の後半では、過去にMicrosoftが対策を行ったEMETのバイパス/無効化手法が紹介されているが、今回の手法は過去のいずれの手法よりも簡単に実行可能であり、テストしたバージョン(4.1/5.1/5.2/5.2.0.1)のEMETすべてに有効だったという。なお、この問題はEMET 5.5で対策済みとなっている。
EMETでは保護するすべてのプロセスに emet.dll または emet64.dll を注入し、Windows APIの呼び出しをフックすることで重要なAPIを呼び出すコードの分析を行う。ただし、EMETの内部には注入したDLLをプロセスからアンロードするためのコードが含まれている。このコードにはDllMainから到達可能であり、ROP(Return Oriented Programming)ガジェットを用いて適切な引数を渡すことによりEMETを完全に無効化できるとのこと。
ブログ記事の後半では、過去にMicrosoftが対策を行ったEMETのバイパス/無効化手法が紹介されているが、今回の手法は過去のいずれの手法よりも簡単に実行可能であり、テストしたバージョン(4.1/5.1/5.2/5.2.0.1)のEMETすべてに有効だったという。なお、この問題はEMET 5.5で対策済みとなっている。
律儀 (スコア:2)
何故、わざわざフック解除の処理を入れたのか。
Re:律儀 (スコア:3, 参考になる)
たしかにそう感じるけど入れないとemet/kernel32/ntdll以外のDLLのDLL_PROCESS_DETACH内からkernel32のAPI呼び出したら既にアンロードされているかもしれないemet.dllのフック関数に飛んで死ぬぜ
Re:律儀 (スコア:2)
ありがとう。
/(^o^)\
中二病っぽい (スコア:1)
お前の能力を使ってお前の能力を回避する!
とか、中二病っぽいなw
Re: (スコア:0)
自分がね
Re: (スコア:0)
別に君のことを中二病と言ったわけじゃないのに…
EMETはWindows Updateで更新されないのね (スコア:0)
自分のを確認したらバージョン4のままだった。危ない危ない。
これって更新対象でいいんじゃないかな。
Re: (スコア:0)
部下が上司の人事を考えるのかい?
おkそこを見張れ (スコア:0)
emetをアンロードするようなプロセスはクビだ
Re: (スコア:0)
ということにしたいのですね :P
Re: (スコア:0)
見たけどどこがおかしいんだろう
アンチにはおかしく見えるのか?
Re: (スコア:0)
さてここで「Windows 10でEMETを使う必要はない」のストーリーを御覧ください。
Windows 10による保護はEMETと同等、あるいはそれ以上とされており、今回の脆弱性もEMETに限った話になっていますね。
実際OSに内蔵されている保護はアンロードできないのは当然ではあります。
そう考えると、Windows 10は強制的な保護で確実にセキュリティを保てる素晴らしいOSと言えるのではないでしょうか。
# まあ私はDebianを使いますがね。