アルバート・アインシュタインは、「複雑さから、シンプルさを見つける」と言いましたが、シンプルさは常に複雑さのパズルに関連しているようです。この声明はSensepostが最近公開したMicrosoft の Dynamic Data Exchange(DDE)プロトコルの脆弱性のエクスプロイト(不正利用)にも当てはまります。エクスプロイト自体はとても単純で、初心者のユーザーでも作成や複製が簡単にできてしまいます。そのような脅威から無防備なユーザーを保護しようとすると、複雑さが増します。
シンプルさ(シンプリシティ)
Dynamic Data Exchange(DDE)プロトコルは、あるアプリケーションから別のアプリケーションへのデータの共有を可能にする Windows の機能です。DDEAUTO を使用すると、悪意のある人が、不正利用を実現するコードを自動的に実行することが可能になります。
悪意のあるサンプルを作成する単純な方法は、2 段階のプロセスです:
- Press CRTL-F9 を押すとフィールド識別子を作成できます
- DDEAUTO [実行可能ファイルのパス] [arguments] と入力します
とても簡単だと思いませんか? 次に、サンプルを生成するためにキーボードストロークが少々必要な場合に、この簡単なトリックが防御側の視点からどのように複雑になるかについて詳しく説明しましょう。
複雑さ
単純な 2 ステッププロセスを実行した後、結果ファイルを Open XML フォーマット(* .DOCX)、Compound File Binary フォーマット - Word 97-2003 フォーマット(* .DOC)、あるいは Rich Textフォーマット(* .RTF)として保存するかを選択できます。これは、偽陽性(False Positive)と判断されないようにするために、各ファイルフォーマットを処理するための複数のシグネチャを作成する必要があるため、防御者である我々にとっては厄介なところです。
Office Open XML フ ォーマ ッ ト では 、<w:fldChar w:fldCharType="begin"/> と それに続 くDDEAUTO の後に、常にエクスプロイトコードを見つけることができます。
図 1 - PowerShell スクリプトを実行する XML ベースのフォーマットでの DDE コードの実行
RTF フォーマットでは、コードは "{\field{\*\fldinst" から始まります。"
図 2 - RTF ファイルで PowerShell スクリプトを実行している DDE コードの実行
古い Compound File Binary Format(CFBF)では、常に二つのびっくりマーク "!!"で始まります。または 0x13 に続いて DDEAUTO が続きます。
図 3 - CFBF で PowerShell スクリプトを実行している DDE コードの実行
注目すべき 1 つの重要な視点は、現場でのいくつかのサンプルが"DDEAUTO"代わりに"DDE"使用しているということです。もう 1 つの大きな懸念事項は、CVE-2017-8759 RTF エ クスプロイトの脅威アクターによって使用された文字列セグメンテーションを使用する難読化で す。
このセグメンテーション手法は、XML ベースのフォーマットにも適用されています。
複雑さを増すために、影響を受けるのは MS Word だけでなく MS Outlook の場合もあります。リッチテキストフォーマットを使用して電子メールメッセージまたは会議出席依頼を作成すると、MSWord の DDEAUTO エクスプロイトコードを電子メール本文にコピー&ペーストして、基本的に* .MSG ファイルとして送信または保存できます。
図 6 - カレンダー/会議をリッチテキストフォーマットで招待する
しかし待ってください、もっとあります! この脆弱性を利用して主要な脅威アクターたちがプレイをし始めました。最近、Necurs ボットネットはあらゆる場所で電子メールゲートウェイに対する大規模な攻撃を先導してきました。
図 7 – Necurs スパムボットで使用される電子メールテンプレート
Necurs 主導の電子メールキャンペーンには、悪意のある DDE エクスプロイトコードが付加された Open Office Word 文書が添付されています。
図 8 - 添付された DOC ファイルの Document.XML
次に、PowerShell スクリプトを実行する抽出された DDEAUTO を示します。
これは、最終的に Locky のトランスポンメールファイルをダウンロードする別の PowerShell スクリプトをダウンロードします。
図 10 - リストされた URL からバイナリファイルをダウンロードする PowerShell スクリプト
どのように自分自身を守ればよいですか?
明らかに、私たちは製品の保護の範囲に焦点を当てています。しかし、時には最も単純な解決策は私たちの日常生活の選択から来ており、誰もが 「いいえ」 と言うことを学ぶべきです。DDE についてのきちんとしたこととは、ユーザーにプロンプトを提供することです。とても簡単です! 「いいえ」をクリックしてください!
しかし、人々には「はい」と言う傾向があるし、その後に戻るという贅沢をしない可能性があります。幸いなことに DDE では、「いいえ」と言う 2 度目のチャンスがあるので、そのチャンスを使いましょう。
図 12 - 2 番目の DDE プロンプト
結論
この攻撃の容易さと、さまざまなファイルフォーマットの処理の複雑さ、影響を受けるアプリケーションの数、組み込まれる可能性のある難読化などが、DDE の悪用が攻撃者が好む娯楽になることを意味しています。Necurs ボットネットが大量の迷惑メールキャンペーンを巻き起こし ているという事実は、これを目の当たりにしています。近い将来、これ以上のことが見込まれています。