我々が毎月適用しているWindows OSの更新プログラムは、発見された脆弱性を狙って攻撃するソフトウェアからOSを守るため、穴(脆弱性)をふさいだファイルに置き換えるものだ。他方で、未修正の脆弱性が存在する場合、更新プログラムがリリースされるまで、攻撃から身を守る手立ては限られてしまう。未修正の脆弱性を悪用した攻撃は「ゼロデイ攻撃」と呼ばれ、最近ではInternet Explorerが抱えていた未修正の脆弱性を突いたゼロデイ攻撃が発生し、大きなインパクトを与えた(この脆弱性は10月の月例アップデートで対処済み)。

■一太郎と日本ユーザーを狙ったゼロデイ攻撃が発生していた - シマンテック
■Microsoft OfficeやWindows Vistaに脆弱性 - 標的型のゼロデイ攻撃も確認
■IEゼロデイ脆弱性を発見したラックの「水飲み場型攻撃」説明会 - 犯人が不運だった理由とは?
■NTTデータ先端技術、ゼロデイ攻撃が発生しているIEの脆弱性を検証 - Microsoftは10月9日に修正プログラムを公開予定

セキュリティに敏感な方なら「EMET」という単語を聞いたことがあるだろう。「Enhanced Mitigation Experience Toolkit」の頭文字を取った同ツールは、Microsoftが提供しているWindows用の脆弱性緩和ツールだ。

EMETは、DEP(Data Execution Prevention:データ実行防止)やASLR(Address space layout randomization:メモリアドレス空間のランダム配置)といったセキュリティ技術が未導入のソフトウェアに対し、脆弱性を緩和する処置を施す。一見すると難しく見えてしまうが、ユーザーはEMETを導入し、セキュリティホールとなり得るソフトウェアを指定することで、そのソフトウェアを狙った悪用コードの実行を抑制することが可能。それだけに、エンドユーザーほど試して欲しいツールの1つなのだ。

「セキュリティ更新プログラム」はソフトウェアの脆弱性そのものを解消。対してEMETは、未修正の脆弱性を突く攻撃を受けても、攻撃者による任意コードの実行を阻止する。この「任意コード」とは、バックドアだったりトロイの木馬だったりと、悪意を持ったものと思ってまず間違いない。この図は、MicrosoftのTechNet Blogs(日本のセキュリティチーム)より

EMETはセキュリティホールをふさぐ機能は備えていない。繰り返すが、「悪意を持つコードの実行防止」が主たる機能である。そのため、攻撃を受けた場合はアプリケーションが稼働しているプロセスを強制終了することで、同コードの実行を抑制する仕組みだ。あくまでもセキュリティ修正を行う更新プログラム公開までの"つなぎ"であり、修正前の脆弱性を狙ったゼロディ攻撃を緩和するツールのため、EMETをインストールすれば万全、という訳ではないことをあらかじめ承知して欲しい。

さて、執筆時点の最新版「EMET 4.1」は、Microsoft Download Centerから入手可能だ。インストール時には.NET Framework 4.0が必要となるので、ダウンロードページから事前に導入することをおすすめする(図01~04)。

図01 Internet Explorerなどでダウンロードページにアクセスし、「Download」をクリックする

図02 ダウンロードの選択肢が現れたら「EMET Setup.msi」をチェックして、「Next」ボタンをクリック

図03 Internet Explorerの設定によってはポップアップブロックが働くので、ひとまず「一度のみ許可」をクリック

図04 これでダウンロードが可能になるので、通知バーの「実行」ボタンをクリックする

EMETがサポートするOSは、クライアント向けはWindows XP(SP3以降) / Windows Vista(SP1以降) / Windows 7全バージョン / Windows 8。サーバー向けはWindows Server 2003(SP1以降) / Windows Server 2008全バージョン / Windows Server 2008 R2全バージョン / Windows Server 2012。最新版となるWindows 8.1、およびWindows Server 2012 R2には対応していないので注意して欲しい(追記 : 追って、Windows 8、Windows 8.1、Windows Server 2012 R2も正式にサポートされた)。

インストールの途中には、EMETの動作設定をどのように行うか選択をうながされる。推奨設定は、Internet ExplorerやWordPad、Microsoft Office、Adobe Acrobat/ Reader、そしてJava向けの保護追加だ。ネットワークアプリケーションが使用する証明書の信頼ルール制御も加わる。すべてのレポート機能を有効にし、以前インストールしていたEMET関連の設定が上書きされる。初めてEMETを利用する場合、メジャーバージョンアップした場合とも、この推奨設定を選択するのが一番確実だ(図05)。

図05 途中で設定ウィザードが起動する。通常は「Use Recommended Settings」-「Finish」ボタンとクリック

インストーラーを終了させると、エージェントとなるEMETのプロセスは常駐するが、操作を行うGUIツールはプログラムメニューに登録されるため、手動で起動しなければならない。ご覧の通りメッセージは基本的に英語だが、マルチランゲージに対応しているため、稼働中のプロセス名が持つ日本語はそのまま表示される(図06~07)。

図06 EMETを起動するには、プログラムメニューなどからショートカットファイルのアイコンをクリックする

図07 これがEMETのGUI画面。稼働中のプロセスがリストアップされる

EMETの具体的な使い方

インストール時に推奨設定を選択すると、前述した通り複数のアプリケーションが、脆弱性緩和対象として登録されている。任意のアプリケーションを新たに追加するには、EMETのメイン画面で「Apps」ボタンをクリックすると現れる「Application Configuration」を使う。「Add Aplication」ボタンをクリックし、追加したいアプリケーションの実行ファイルを選択すればよい(図08~11)。

図08 「Apps」ボタンをクリックすると現れる「Application Configuration」の画面。ここから「Add Application」ボタンをクリックする

図09 コモンダイアログで実行形式ファイルを選択し、「開く」ボタンをクリックする

図10 これで指定したアプリケーションが脆弱性緩和対象となる

図11 指定したアプリケーションを起動すると、EMETの監視対象を意味するマークが付く

EMETはゼロディ攻撃の抑止だけでなく、証明書チェックがバージョン4.0から加わった。これは、近年増加の傾向を見せる不正証明書を利用し、意図しないWebサイトへの誘導などに用いられる攻撃を抑止するというものだ。通常は初期状態のまま運用すべきだが、社内や個人的な運用で特定の証明書を許可する場合は、「Trust」ボタンで呼び出す「Certificate Trust Configuration」から設定する。信頼するドメイン名を指定し、関連付けるルール(証明書)を選択すればよい(図12)。

図12 「Trust」ボタンで設定可能になる「Certificate Trust Configuration」の画面。事前に確認した証明書信頼チェーンでドメイン名を確認し、証明書をピン留めする

使いこなすまでの"慣れ"が必要なEMETだが、ゼロディ攻撃を未然に防ぐ環境を作り出すために、有用なツールであることは間違いない。例えば2014年4月9日に延長サポートが終了するWindows XPを、何らかの理由で「あと数カ月は使い続けたい」といった場面にも使えるだろう(Windows 7やWindows 8.1への移行が必須なのは言うまでもない)。ただしくどいようだが、EMETはあくまで「脆弱性緩和」ツールだ。Microsoftは定期的にセキュリティホールをふさぐ更新プログラムをリリースしているので、すみやかな適用を心がけたい。

今回の執筆時点では、EMETの前バージョンとなる「4.0」の日本語版ユーザーガイドがWeb上で公開されているので、こちらのPDFファイルを併用しながら、EMETによるセキュリティ強化に取り組んで欲しい。

阿久津良和(Cactus)