昨日のことです(2009年2月24日現在)、日本にいる当社のエンジニアが何人かの顧客から不審なデータ送信が届いていることに気付きました。これらすべてには、不審な Microsoft Office Excel 2007 スプレッドシートが含まれていました。分析を進めた結果、これらのファイルは Excel の脆弱性を利用して、ファイルシステム上にバイナリを保存して実行できることがわかりました。
この種の動作は珍しくありませんが、分析が進むにつれて、この脆弱性はこれまで見たことのないものだということが明らかになりました。この脆弱性は、古い Excel バイナリの .xls 形式に存在し、新しい .xlsx 形式には存在しないことが判明しました。この悪質なスプレッドシートを開くと、脆弱性が悪用されます。これによりシェルコードが実行され、前述した悪質なバイナリと別の有効な Excel 文書という 2 つのファイルがシステムに保存されます。シェルコードは保存されたファイルを実行して、有効な Excel 文書を開き、Excel がクラッシュしたことを隠ぺいします。これによって影響を受けたスプレッドシートを開いても、疑いが持たれにくくなっています。
このような攻撃の背後にいる人たちは、他の何らかの技術を使って、検出されにくくしています。たとえば、スプレッドシートに埋め込まれたバイナリに対する脆弱な暗号化を利用しているのです。ペイロードを復号化してみると、MZ ヘッダーがわかりにくくなっていて、簡単な分析を回避できるようになっています。使われるトリックの 1 つに、MZ を ZM、PE を EP へと文字を切り替えるというものがあります。次のスクリーンショットは、“This program cannot be executed in DOS mode.” というありふれた文がどうなるかを示したものです。
これは非常に基本的ですが、これによってある種の検出が回避されてしまいます。当社のテストにより、この悪用は Excel 2007 用に作成され、Excel 2007 で動作することがわかりましたが、以前のバージョンの Excel もこの悪用によって生成される例外をうまく処理できません。その結果、古いバージョンの Excel でもこの問題が悪用される可能性があります。
当社は、ユーザー環境で見つけたこの悪質なスプレッドシートファイルの検出を追加しました。これは、 Trojan.Mdropper.AC として検出されます。スプレッドシートによって保存される悪質なバイナリは、「トロイの木馬」「として検出されます。この問題による危険から守るために、定義ファイルが最新であることを確認してください。
背後にある動機は、まだ判明していません。当社は、この脅威を現在も監視中で、詳細は随時報告します。当社は この問題については発見されて以降 Microsoft 社と緊密に連携して作業しています。Microsoft 社はこれが新しい脆弱性であることを確認しています。詳細は、http://go.microsoft.com/fwlink/?LinkID=143568 の Security Advisory (英文)を参照してください。
この記事は Security Response Blog(英語)にて掲載された内容を日本向けに編集された記事です。
本文はこちら(英語)