ほとんどの人は、Microsoft Officeドキュメントを使用しています。作業文書やeレシート、あるいは新しいアパートの賃貸契約書など、Officeドキュメントは私たちにとって便利なものであり、電子メールの添付ファイルとして受け取ったOfficeドキュメントを私たちがつい開いてしまうのはそのせいでもあります。攻撃者は通常、多くの人がほとんどのドキュメントを、たとえそれが信頼できないソースからのものであっても開くことを知った上で、システムに侵害するための攻撃でOfficeドキュメントファイルを使用します。
この脅威に関するダイジェストでは、Windowsエンドポイントを攻撃して侵害するためにOfficeドキュメントを侵害して悪用する方法を5つ示します。その中には、以前投稿したものと、今回初めて投稿するものが含まれています。
マクロ
マクロは、攻撃者がOfficeドキュメントを武器化する最も単純な方法です。Officeアプリケーションは、VBA (Visual Basic for Applications)スクリプトを実行できる組み込みスクリプト エンジンを搭載しています。VBAスクリプトは、ユーザーが何も操作しなくても(ユーザーがマクロを有効にしていると仮定)、ドキュメントが開いたときに直ちに実行でき、システム上で悪意のあるコードを実行できます。ユーザーがマクロを有効にしていない場合はポップアップ ウィンドウが表示されて、クリックしてマクロを有効にするかどうかをユーザーに確認します。このポップアップは、Microsoft社が、マクロが引き起こすセキュリティ リスクを抑制するために追加したさまざまなセキュリティ メカニズムの1つです。Microsoft社はさらに、ファイル拡張子を強制的に変更します(マクロを含む新しいドキュメントには.docxではなく.docmが使用されます)。このような対策にもかかわらず、依然としてユーザーはこれらのファイルを開いてコンテンツを有効にしてしまいます。そのため、Emotetのような広範囲にわたって単純な方法でランサムウェアを拡散する攻撃とSofacyキャンペーンのような高度な攻撃の両方が、一般的な攻撃ベクトルとしてマクロを使い続けることができるのです。
図1.コンテンツを有効にする前と後のSofacyドキュメント
この例を見てわかるように、攻撃者はソーシャル エンジニアリングを使用して、ドキュメント全体を表示するためにコンテンツを有効にするようにユーザーを説得し、Microsoft社によって追加されたセキュリティ メカニズムを無効にする操作をユーザーに行わせようとします。Sofacyの例では、攻撃者は単純にフォントの色を白にしているだけなので、ユーザーがマクロを有効にする前でもテキストは表示されているのですが、はっきりと見えないだけです。
埋め込みFlashファイル
マクロのような組み込み機能のほかに、OfficeドキュメントにはAdobe Flashファイルなどの外部オブジェクトを埋め込むこともできます。これらのオブジェクトは、適切なソフトウェアに渡されて処理されるので、そのソフトウェアの持つ脆弱性を悪用できます。たとえば、OfficeドキュメントのAdobe Flashコンテンツにその脆弱性を埋め込んで悪用することができます。攻撃者がこのような攻撃ベクトルを利用した例として、CVE-2018-4878があります。これは、Excelドキュメントに悪意のあるSWFファイルを埋め込むことによって悪用されたAdobe Flash Playerゼロデイです。これらのタイプの攻撃では、悪意のあるExcelに、Flashの脆弱性をトリガーして埋め込みのシェルコードを実行できるAdobe Flashコンテンツが埋め込まれています。
Microsoft数式エディタ
OfficeドキュメントにAdobe Flashファイルを埋め込むのと同様の方法で、ドキュメントに数式を埋め込むことができます。この数式は、Microsoft数式エディタ(数式を簡単に記述できるプログラム)によって解析されます。
図2. Microsoft数式エディタ
前述の例と同様に、悪意のあるOfficeドキュメントを利用して、数式エディタの脆弱性を悪用できます。この例がつい最近見つかっています。CVE-2017-11882が実際に悪用され、CVE-2018-0802などの悪用の先鞭をつけました。どちらも数式エディタの欠陥を悪用するもので、ユーザーがOfficeドキュメントを開くことによって、攻撃者がリモート コードを実行できるようになります。まだ実際に悪用された事例は見つかっていませんが、Unit 42の研究者は、Microsoft数式エディタのCVE-2018-0807やCVE-2018-0798などを同様に悪用する方法を特定しています。
Microsoft数式エディタはそれ自身のプロセス(eqnedt32.exe)として動作するので、EMETやWindows Defender Exploit GuardなどのMicrosoft Office固有の保護は、デフォルトでは効果がありません。なぜなら、それらが保護するのはMicrosoft Officeプロセス(winword.exeなど)のみだからです。
OLEオブジェクトとHTAハンドラ
OLEオブジェクトとHTAハンドラは、Officeドキュメントがそのコンテンツに他のドキュメントを含めるために参照を行うメカニズムです。これらを次のように使用して、エンドポイントを侵害できます。
- Microsoft Wordドキュメントに、OLE2埋め込みリンク オブジェクトが埋め込まれています。
- このドキュメントを開くと、Wordプロセス(winword.exe)がリモート サーバに、悪意のあるスクリプトを含むHTAファイルを取得するHTTPリクエストを送信します。
- exeは次にCOMオブジェクトを通じてapplication/htaのファイル ハンドラを検索します。これにより、Microsoft HTAアプリケーション(mshta.exe)がロードされ、悪意のあるスクリプトを実行します。
この機能は、2017年9月にMicrosoft社がパッチを適用したMicrosoft Office/WordPadリモート コード実行(RCE)の脆弱性CVE-2017-0199を悪用する際に利用され、さらにOilRigキャンペーンのような複数のキャンペーンで使用されています。
図3.RTFファイルは、通常のWordドキュメントとまったく同じように見えます。
攻撃者は、前述のOLEとHTAの悪用に加えて、MSHTMLを使用して"text/html" MIMEタイプのOLEオブジェクトも実行できます。これは、RTFドキュメントがInternet Explorerと同じ攻撃対象領域を露出していることを意味します。
攻撃者は、CVE-2018-8174として知られるこの論理的な脆弱性を利用して、任意のHTML/JavaScript/VBScriptを実行できます。この方法で実行されるコードは、Internet Explorerから実行される他のコードと同様に、「サンドボックス化」(新しいプロセスを実行できない、ファイル システムに書き込めないなどの制限がある)されますが、この欠陥を使用することで、他の脆弱性(VBScriptエンジンのメモリ破損UAF脆弱性など)を利用してWordアプリケーション(winword.exe)のコンテキストで任意のコードを実行し、システムを制御できます。
結論
ドキュメントベースの攻撃は、ここ10年以上にわたって一般的に使用されている攻撃ベクトルですが、最近その使用頻度が増え、複雑さが増しています。これは、ブラウザ開発者の強化策によってブラウザ エクスプロイトを利用するのが難しくなった結果であると考えられます。理由はどうあれ、組織にとっては、これらの一般的な手法に対する防御方法を知っておくことが重要です。
防御
パロアルトネットワークスのTraps Advanced Endpoint Protectionは、マルウェアやエクスプロイトといった脅威から保護するために、次に示すさまざまな脅威防御策を提供します。
- マクロ検査 - Trapsは、WildFire脅威インテリジェンス クラウドとローカルの機械学習ベースの機能の両方を利用して、すべてのOfficeドキュメントについて悪意のあるマクロの存在を検査することで、悪意のあるファイルをユーザーが開かないようにすることができます。
- エクスプロイト防御 - Trapsの広範なエクスプロイト防御機能により、攻撃を受けたエンドポイントで悪意のあるシェルコードを実行できないようにエクスプロイトを防御できます。
- TrapsはデフォルトでOfficeアプリケーションを監視して、悪意のあるフローによって正規の組み込みプロセスが利用されないようにします。