2017年11月は、比較的静かな月かなと思ったら、「お」と思わせる脆弱性が修正されておりました。
今月は、11月に修正されたMicrosoft Officeの脆弱性CVE-2017-11882について紹介します。
Microsoft Office 数式エディタのスタックオーバーフロー脆弱性~CVE-2017-11882
11月15日の定期アップデートの中で、Microsoft Officeの数式エディタの脆弱性に対する修正プログラムがリリースされました。脆弱性の概要は、以下のURLから参照可能です。
- CVE-2017-11882 | Microsoft Office のメモリ破損の脆弱性
- https://portal.msrc.microsoft.com/ja-jp/security-guidance/advisory/CVE-2017-11882
この脆弱性、細工された文書ファイルを開かせることで、任意のコマンドを実行するというものです。基本的にこの類の脆弱性は、攻撃者が準備した、細工されたファイルを開かせることで、攻撃者が望むコマンドを実行させるため、マイクロソフトによる悪用可能性も低く見積もられていました。
しかし、11月下旬になってPoCがあちこちでリリースされはじめ、大変容易に悪用可能となる条件が整ってしまっています。多く使われている脆弱性検査ツールであるMetasploitで利用可能な、本脆弱性に対応したモジュールは、2017年11月22日 5:32(日本時間)に最終更新されており、コマンドのたたき方さえ分かっている人ならば、細工された文書ファイルを作成可能な状況になっています。
ばらまき型攻撃メールで悪用されるもの~悪意あるURL、Officeのマクロ、脆弱性
筆者が見る限り、ばらまき型攻撃メールでよく見られるのは「悪意あるURL」を記述したもの、悪意あるOfficeのマクロを含む文書ファイルを添付したものですが、久々にOfficeの脆弱性を使った細工された文書ファイルを添付したものが見られた感があります。
悪意あるURLは「いかなければいい」、Officeのマクロは「有効にしなければいい」ということで、細工された文書ファイル対策は「脆弱性をふさぐようアップデートすればいい」なのですが、いずれのケースも「ユーザに注意喚起する」だけでは、おそらく被害は減りません。特に今回の脆弱性は、マクロの実行有無に関係なく、「脆弱性が残る環境で文書開いたらアウト」なものなので、「ばらまき型攻撃メールについてきた文書ならば、マクロ有効にしなければOK」というようにはなりません。
発見者による脆弱性のデモ~最新版Windowsと最新版Officeの組み合わせでも起こる
本脆弱性は、発見者により脆弱性解説サイトが作成されています。
以下のURLが脆弱性解説サイトです。
- Skeleton in the closet. MS Office vulnerability you didn’t know about
- https://embedi.com/blog/skeleton-closet-ms-office-vulnerability-you-didnt-know-about
以下の3種類の環境で、修正プログラムリリース直前のアップデートが行われた状態でのデモを確認できます。
- Windows 7 Professional + Microsoft Office Professional Plus 2010
- Windows 8.1 Enterprise + Office Professional Plus 2013
- Windows 10 Pro + Office Professional 2016
PoCの探し方~何も考えずに「CVE番号」でGoogle検索するだけで見つかる
今回の脆弱性に対応したPoCは、非常に探すのが簡単です。Googleで、今回の脆弱性に振られたCVE番号「CVE-2017-11882」を検索するだけで、わさわさと見つかります。
留意しなければならないのは、PoCが簡単に見つかるからといって、脆弱性を使って悪さをしたら何らかの罪に問われる可能性が高いという点です。あくまで自身の管理下にある環境で、脆弱性を確認した影響が外に及ばないなど安全な状態を確認した上で、脆弱性の確認/対処を検討するなど正当な目的の研究調査のために実施するようにしてください。
今回はあえて掲載した画面には含めてませんが、検証レポート、Microsoftの脆弱性情報のページの下にはすぐに、Metasploitのモジュールになっているもの、Pythonスクリプトになっているものを中心としたPoCが、検索結果に出力されます。
ざっと見た限り、すぐに確認に利用できそうなPoCが1ページ目にして複数確認できました。
今回の脆弱性に限らず、攻撃者が容易に利用できそうな(もしくは利用している)脆弱性については、PoCが早期に出回りますので、リリース後早期のアップデートが肝要です。
eqnedt32.exeの存在確認~whereコマンドを使おう
「見たことない」という方は、コマンドプロンプトを起動してwhereコマンドでeqnedt32.exeの所在を確認してみてください(もちろん、explorerで探してもいいです)。たとえば以下のコマンドで、Cドライブ全体をスキャンしてeqnedt32.exeがいるかどうかを確認できます。
筆者の環境では、以下のようなパスにeqnedt32.exeがいることを確認できました。
ためしにこのプログラムを起動して、バージョン情報を確認すると、以下のように表示されます。
表示される年が非常に前なので、「もしや直ってないのでは?」と恐れるわけですが、念のためファイルのタイムスタンプを確認したら、以下のようになっておりました。更新は適用されていますが、バージョン情報には反映されていないという解釈でよさそうです(タイムスタンプの日付が修正ファイルリリースの日付とずれているのは、筆者の都合で当該コンピュータを使用していなかったためです)。
脆弱性の影響を緩和するための策~数式エディター3.0を無効にする
何らかの理由で修正プログラムをすぐには適用できない場合、数式エディター3.0を無効にする方法が挙げられます。例えば、以下のサポート情報では、レジストリを編集することで数式エディタ3.0を無効にしています。
- 数式エディター 3.0 を無効にする方法
- https://support.microsoft.com/ja-jp/help/4055535/how-to-disable-equation-editor-3-0
EMETを有効にする方法もあるが、効果があるのはWindows 7の一部のASLR設定のみ
本脆弱性は、システム全体でASLRを有効にすることにより、影響を緩和することが可能とされています。
しかしその設定が可能なのはWindows 7版のEMETを用いた場合であり、Windows 8以降のEMETおよび、Windows 10 Fall Creators Updateで導入されたWindows Defender Exploit Guard(EMETの機能を持ちます)では有効にできません。
また、このためにEMETを導入するにも、EMET自体のサポート終了が近づいているため、新規導入のための検証を行うのもなかなか勇気がいります。
このような事情のため、やはりアップデートを行うのが一番確実です。
EMETによる対処を行うのはWindows 7限定であり、かつEMET最新版のサポート終了が近づいていることを考えると、限定的な対処方法と考えます。