EMET 4.0 ぱっとレビュー
Microsoftの脆弱性緩和技術 EMET (Enhanced Mitigation Experience Toolkit)を WindowsXP に適用してみたらどうなるかという話です。
Microsoft の日本語の情報 http://support.microsoft.com/kb/2458544/ja
ダウンロードするとユーザガイドもついてきますが、英語です。なお、EMET は単体で動作するアプリケーションで、クラサバ構造ではありません。
まず、.NetFramework 4.0 が必要なので、先にインストールしておきましょう。次に、EMET setup.msi を実行するとウィザードが出てくる画面は英語ですが、特に難しいことは書いてません。
ここは、2013年夏に公開された 4.0 からの新機能、おすすめ設定を使うことにしましょう。(上の画面はインストールをやりなおしている画面。初回設定時は下段の選択肢は「全部手動で設定する」になっています)
インストール後の設定は、プログラムメニューからEMETを呼び出します。
見てのとおり、画面は英語です。中学生レベルで十分読める内容ですが、読む気がするかどうかというと…。一般的なユーザがこれを tweak するのはちょっとハードルが高いなぁ。
WindowsXPで使える機能は DEP と 電子証明書の厳密なチェックです。SEHOP や ASLR は使えません。
ではDEPの設定から。configuration パネルの apps をクリックしましょう。
ここはポリシー設定なので、SEHOPやASLRもデフォルトですべてチェックが入っています。
大体、ウイルスやマルウェアを仕込まれる標的になりそうな、有名どころのアプリケーションが並んでいます。これらに対してどういう項目でチェックをするか、個別に設定ができます。もちろん、追加や削除が可能です。
(余談:これだけのソフトにこれだけのフックを仕掛けたら、Win7がなおのこと重たくなりそう…。それ以前に、WinAPIにチェック用のフックをこんなにつけたら、そりゃ重たいだろうよ)
show full path ボタンを押すと
ドライブ名の差異などに対応できるように設定されています。が、たとえば exe 全部といった指定はできません。ワイルドカードが使えるのはあくまで path だけで、ファイル名には使えないからです。
ついでに上のリボンにあるその他のオプションについて触れておくと、
Default Action では、プログラムの実行をとめずにイベントだけ記録するオプションがあります。システム管理者が動作テストするには当然必要になるオプションです。
設定項目の3つは日本語の記述が見当たらないので、wikipedia情報によれば
- Deep Hooks: パラメータチェックを公開APIだけでなく、そこから呼び出されるWindowsの内部関数でも行う
- Anti Detours: API のフック時にベクタテーブル書き換えをチェックする
- Banned Functions: ユーザランドからは正当に使用されるべきでないAPIのチェック
なんだそうです。まあ、デフォルトでいいんじゃないでしょうか。
では、もう1つの機能。電子証明書の"certificate pinning"と言われる機能に行きたいと思います。
メイン画面から「Trust」をクリックします
ここで、有名どころ(≒偽装サイトが作られやすいサイト)のWebサイトと、そこで使われているサーバ証明書のroot証明機関を結びつけるテーブルが表示されます。
pin rule は次のタブを開くと確認できます。
各認証局と証明書の詳細をここで設定できます。
これは、2011年夏にオランダの認証局DigiNotarがクラックされ、不正な方法で(見た目)正当な中間CA証明書が発行されてしまい、その証明書を使ってgmailなど有名サイトの偽サイトにHTTPSアクセスさせ、パスワードなどを奪取する大規模なサイバー攻撃があったことの教訓です。Google chrome にはこの pinning 機能があり、偽サイトであることを見破ったのが大きく評価されました。
http://isc.sans.org/diary/DigiNotar+breach+-+the+story+so+far/11500
こういった事例はいわゆるハッカーによる攻撃だけでなく、認証局の誤操作でも起こりえます。
参考:今年1月の事例 http://internet.watch.impress.co.jp/docs/news/20130107_580795.html
この問題は、いわゆるソフトウェアの脆弱性を突いた不正なコード実行と同じく、ゼロデイで行われるときに危険度が高まります。一般的に、ソフトウェアの脆弱性はパッチを適用するまで、このケースではCRLが行き渡るまでがリスクの高い時間帯です。例示したDigiNotarの証明書も現在は信用できない証明書として登録されています。
※Windowsの場合、「ルート証明書の更新プログラム」というタイトルでパッチが公開される。
さて、このソフトの最大の問題点はこれです。
せっかく検知したという情報を通知するのがこれしかありません。つまりローカルにしか記録が残らないのです。
実はSMS/SCCMにもクライアントのイベントログを蓄積する機能はありません。基本的には MOM/SCOM の機能になりますし、エージェントのインストールもおそらく避けれないでしょう…。MOM/SCOM はクラサバ構成なのでサーバ必須ですし、イベントログを収集するとなるとクライアント台数にもよりますがストレージ容量も心配。大量のXPを抱えている管理者の助けになるかどうかはちょっと微妙です。