Windows WMF 0-day exploit

最近話題のhttp://amatanoyo.blog16.fc2.com/blog-entry-132.htmlというやつ。regsvr32 -u %windir%\system32\shimgvw.dllして、アンチウィルスソフトを最新版にしておけばさぁ安心…というわけではなさそう。
要するに

  • そもそも発見されて間もないのでアンチウィルスソフトによっては対応していない物もある。
  • 対策していないと、Web閲覧やメール閲覧しただけで悪意のある者の好きなようにごにょごにょされる。
  • regsvr32 -u %windir%\system32\shimgvw.dllしてもExplorerがshimgvw.dllを使わなくなる*1だけなので、shimgvw.dllを使うほかのアプリケーションがマズいファイルを開いたらそれだけでアウト。例えばGoogleデスクトップや、IrfanViewなんかがそれにあたるらしい。
  • JaneもそうらしいんだけどうちのJaneViewDoeではBinaryDataとして表示されるだけで特に何も…。Doeだからかな?
  • Athron64とかで使えるDEPによってBufferOverflowは阻止できる。自分で確認した。
  • 「shimgvw.dllを削除かリネームしときゃいいんじゃね?('A`)」はダメ。Windowsのファイルをシステムの復元やSFP*2によってすぐに復元される。それを無効にするのはアリ。だけど、レジストリ弄らないといけないから素人さんには薦められることじゃない。
  • そもそもアンチウィルスソフトの中にはデフォルトで画像をスキャンしないようになっているものがある(というかどうしても動作が重くなるだろうし常駐型のはほとんどそうなんじゃないのかな?)ので、その場合当然WMFが引っかからない。
  • 加えてWindows(InternetExplorer?)の仕様として拡張子やMIME/TYPEではなくファイルの先頭を見て実態を判断するらしく、拡張子wmfをjpgにすることで偽装可能。したがってアンチウィルスソフトを最新の状態にしていてもshimgvw.dllが扱える「実態」ものを「拡張子にかかわらず」全部をスキャンしなければ…といっても、shimgvw.dllが何を扱えるのかも分からないのですべてのファイルをスキャンしなければ事実上意味が無い。何のアプリケーションが何のファイルをshimgvw.dllに渡しているか分からないから。
  • アンチウィルスソフトがマズいコードに対応しても、当然亜種が出る可能性はある。
  • 月例パッチまでまだ間がある。

関係ある人はregsvr32 -u %windir%\system32\shimgvw.dllをする、IEを使わない、画像・アーカイブはどこからもDLしない、ってのが最低条件かな。あとはアンチウィルスソフトですべてのファイルを検査するように設定しておくとか、SFPを無効にしてshimgvw.dllを削除しておくとか。

*1:縮小表示をしなくなったり、Windowsの画像とFAXビューワを利用できなくする、etc

*2:System File Protection : Windowsのファイルを自動的に復元する機能