SofacyがDealersChoiceを使用してヨーロッパの政府機関を攻撃

By

Category: Unit 42

Tags: , ,

This post is also available in: English (英語)

概要

2016年10月、Unit 42は、Sofacy脅威グループによって使用されたFlashエクスプロイト フレームワークの分析を初めて公開しました。このフレームワークはDealersChoiceと呼ばれています。この攻撃は、ファイルに埋め込まれている、またはコマンド&コントロール(C&C)サーバーによって直接提供される、悪意のあるFlashオブジェクトを追加でロードできるAdobe Flashのオブジェクトを含んだMicrosoft Wordの配信ドキュメントから構成されていました。Sofacyは、2016年の秋に繰り返しDealersChoiceを使用しました。これについて私たちは、2016年12月にも特集し、Sofacyの大規模キャンペーンについて説明しました。

3月12日と3月14日、SofacyグループがDealersChoiceの更新された亜種を使用してヨーロッパの政府機関を攻撃したことに私たちは気付きました。更新されたDealersChoiceドキュメントは、同様のプロセスを使用して悪意のあるFlashオブジェクトをC2サーバーから取得しましたが、Flashオブジェクトの内部メカニズムには私たちが分析した元のサンプルと比べて大きく異なるメカニズムが含まれていました。

相違点の1つは極めて巧みな回避手法で、私たちが知る限り、その使用が確認されたことはありませんでした。過去にDealersChoiceサンプルが繰り返し使用された際には、Flashオブジェクトはすぐに悪意のあるタスクをロードし、それを起動していました。3月の攻撃では、ユーザーが配信ドキュメントのコンテンツ全体をスクロールし、Flashオブジェクトが埋め込まれている特定のページを表示した場合のみFlashオブジェクトがロードされます。また、DealersChoiceは、エンドシステムのエクスプロイトに成功するためにアクティブなC2サーバーとの複数回のやり取りを必要とします。

エクスプロイトに成功するためのプロセス全体は以下のとおりです。

  1. ユーザーは、電子メールに添付されたMicrosoft Wordのファイルを開く必要があります。
  2. ユーザーは、ドキュメントの3ページ目にスクロールする必要があります。そうすると、DealersChoiceのFlashオブジェクトが実行されます。
  3. Flashオブジェクトは、アクティブなC2サーバーに接続し、エクスプロイトコードが含まれている追加のFlashオブジェクトをダウンロードする必要があります。
  4. 最初のFlashオブジェクトは、同じC2サーバーに接続し、2次ペイロードをダウンロードする必要があります。
  5. 感染ホストは脆弱なバージョンのFlashがインストールされている必要があります。

攻撃

この更新された亜種のDealersChoiceが関与している攻撃はヨーロッパの政府機関を標的にしていました。この攻撃は、「Defence & Security 2018 Conference Agenda.docx」というファイル名の添付ファイルが添付されている「Defence & Security 2018 Conference Agenda」という件名のスピア フィッシング メールを使用していました。この添付ドキュメントには、「"Underwater Defence & Security 2018 Conference" here」というWebサイトからSofacyグループが直接コピーしたと思われる会議の予定表が含まれています。

添付された「Defence & Security 2018 Conference Agenda.docx」ファイルを開いても、システムをエクスプロイトする悪意のあるコードはすぐには実行されません。ただし、ユーザーはドキュメントの3ページ目にスクロールする必要があります。そうすると、ユーザーのシステムをエクスプロイトして悪意のあるペイロードをインストールしようとするActionScriptを含むFlashオブジェクトがロードされます。この配信ドキュメント内に埋め込まれたFlashオブジェクトがDealersChoiceと呼ばれるエクスプロイト ツールの亜種です。このことによって、Sofacyグループは、標的の個人が興味を持ち、内容を熟読することを確信していることが示唆されます。

私たちはドキュメントを分析し、ユーザが3ページ目にスクロールしたときのみ悪意のあるFlashオブジェクトが実行される理由を特定しました。document.xmlファイルによると、DealersChoiceのローダーSWFは配信ドキュメント内の「covert-shores-small.png」画像ファイルの後に存在しています。この画像ファイルは、ドキュメントの3ページ目に存在しているため、このSWFファイルを実行するには、ユーザーはドキュメントのこの3ページ目にスクロールダウンする必要があります。図1に示すように、ドキュメント内の極小さい黒いボックスとしてFlashオブジェクトを表示しているため、ユーザーはこのページにFlashオブジェクトがあることに気付かないかもしれません。ドキュメントが悪意のあるアクティビティを示す前に人による操作が必要であり、サンドボックスに対抗するための興味深い技法です。

 

図1 配信文書に小さい黒いボックスとして現れるFlashオブジェクト

更新されたDealersChoice

このDealersChoice Flashオブジェクトは、以前の亜種とよく似たプロセスを共有していますが、Sofacy攻撃者は内部コードに少々変更を加えているようです。また、攻撃者は、次の説明付きでGitHubから無料で入手可能な「f4player」と呼ばれるオープン ソース ビデオ プレイヤーのActionScriptを使用したようです。

f4Player is an open source flash (AS3) video player and library project.It is so small that it is only 10kb (with skin file) and totally free under GPL license. (f4Playerはオープン ソース フラッシュ(AS3)ビデオ プレイヤーおよびライブラリ プロジェクトです。たった10kb (スキン ファイル付き)と非常に小さく、GPLライセンスの下で完全無料です)

Sofacyの開発者は、f4playerのActionScriptを変更し、埋め込みFlashオブジェクトをロードするための追加のコードを含めました。以下のコード スニッパーでわかるとおり、追加には、埋め込みFlashオブジェクトを復号化するためのコードと、復号化されたオブジェクトを再生する新たに追加された関数(「skinEvent2」)を呼び出すイベント ハンドラーが含まれています。

上記のコードによって、DealersChoiceは2番目のSWFオブジェクトをロードできます。具体的には、C2 URLとして「hxxp://ndpmedia24[.]com/0pq6m4f.m3u8」を含む引数を指定してそれをロードします。

埋め込みSWFは、渡されたC2 URLからドメインを抽出し、それを使用してサーバーの「crossdomain.xml」ファイルを取得するためのURLを作成します。これは、C2ドメインの追加のFlashオブジェクトをロードするためのアクセス権を取得するためです。ActionScriptはイベント リスナーに依存しており、正常にHTTP要求がC2サーバーに発行された後に、イベント「Event.COMPLETE」がトリガされると特定の関数を呼び出します。イベント ハンドラーは次の名前で関数を呼び出します。名前には、関数を呼び出す順序を表す増分する数字が含まれています。

  • onload1
  • onload2
  • onload3
  • onload5

作成されたこれらのイベント ハンドラーを使用して、ActionScriptは、flash.system.Capabilities.serverStringプロパティからシステム データを収集することから開始し(元のDealersChoice.Bサンプルの場合と同様)、システム データをパラメータとして指定したHTTP GETを、最初にロードされたときに埋め込みSWFに引数として渡されたC2 URLへ発行します。このHTTP要求が完了すると、イベント リスナーは「onload1」関数を呼び出します。

「onload1」関数は、正規表現を使用して、C2 URLへの要求からの応答データを解析します。以下のコード スニペットによると、正規表現は、「/」の後と「/sec」の前の16進文字列、および「/hls/」と「/tracks」の間の任意の文字列を検索しているようです。

正規表現から、C2サーバーが、HTTP Live Steaming (HLS)トラフィックに似せるためのコンテンツで応答していることがわかります。HLSは、HTTPを使用してストリーミング用のオーディオおよびビデオ ファイルを配信するプロトコルです。HLSを使用すると同時に、f4playerからのActionScriptコードを使用することで、トラフィックが正規に見えるようにしています。正規表現の一致の結果を格納している変数は、C2サーバーとさらにやり取りするために、ActionScript内で使用されます。以下は、これらの変数とそれらの目的のリストです。

変数 目的
r1 ダウンロードしたSWFファイルの復号化キーとして使用されます。これは、16バイトの16進文字列です。
r2 未使用。
r3 onload1関数内のHTTP要求内でURLとして使用されます。具体的には、システムをエクスプロイトするための悪意のあるSWFファイルを取得するためのURLとして使用されます。
r4 onload2関数内のHTTP要求内でURLとして使用されます。具体的には、システムのエクスプロイトに成功したのちに実行するペイロードを取得するためのURLとして使用されます。

その後、「onload1」関数が、「r3」変数にURLとして格納された値を使用して、C2ドメインにHTTP GET要求を送信します。このHTTP要求が完了すると、イベント リスナーは「onload2」関数を呼び出します。

「onload2」関数は、「onload1」関数で発行されたHTTP要求から受け取った応答を復号します。これは、サブ関数を呼び出して内容を復号することで行われます。このとき、「r1」変数に格納された値がキーとして使用されます。内容を復号するサブ関数は、最初の4バイトをスキップします。これは、ダウンロードされた内容の最初の4バイトが平文であることを意味します(合法に見せるため「FWS」ヘッダーや「CWS」ヘッダーを想定)。

内容を復号した後、「onload2」関数は、システム データをパラメータとして、別のHTTP GET要求を発行します。このときは「r4」変数のURLを使用してC2宛に発行します。この要求が完了すると、イベント リスナーは「onload3」関数を呼び出します。

「onload3」関数は、「onload2」のHTTP要求に対する応答を取得し、その応答をペイロードとして扱います。ActionScriptは、C2応答の各バイトを読み取り、各バイトの16進値を取得して、以下のコードを使用し、それぞれ先頭に「0x」、末尾に「,」を付けて、4バイトの16進値のテキスト配列を作成します。

この16進値の文字列は、最終的なポータブル実行可能ファイル(PE)のペイロードを含み、復号するシェルコードの文字列と想定されます。カンマ区切りの16進値の文字列は、「onload2」でダウンロードされたSWFファイルのロード時に、パラメータとして渡されます。この関数は、SWFファイルのロード成功時用のイベント リスナーを作成します。このイベントリスナーは「onload5」関数を呼び出します。

「onload5」関数は、新しくロードされたSWFオブジェクトを子オブジェクトとして現在実行中のオブジェクトに追加する役割を果たします。以下のコードを使用します。

これにより、SWFファイルがロードされ、システム上で悪意のあるコードが効果的に実行されます。弊社の分析中には、C2に強制して悪意のあるSWFまたはペイロードを提供させることはできませんでした。DealersChoiceに関する前のブログで述べたように、以前の亜種で選択されたペイロードはSofacyCarberp (Seduploader)でしたが、このツールが今回の攻撃で使用されたことを示す証拠はありません。弊社は現在も調査中であり、この攻撃で悪意のあるFlashオブジェクトおよびペイロードの提供を観測した場合には、このブログを更新する予定です。

過去のキャンペーンとのつながり

この攻撃で使用された配信文書は、「Nick Daemoji」という名前のユーザーによって最後に変更されており、このことは以前のSofacy関連の配信文書とのつながりを示しています。このユーザー名を使用した前の文書は、マクロが搭載された配信文書で、Talos のブログで述べたように、SofacyCarberp/Seduploaderペイロードをインストールしていました。また、この類似性は、2つのキャンペーンのソーシャル エンジニアリング テーマが似ていることにも表れています。両方ともに最新の軍事・国防関連会議の内容をルアー(わな)として使用していました。

結論

Sofacy脅威グループは、継続してDealersChoiceフレームワークを使用して、攻撃キャンペーンでFlashの脆弱性をエクスプロイトしています。最新の亜種で、Sofacyは、悪意のあるスクリプトの内部を変更しましたが、悪意のあるFlashオブジェクトおよびペイロードをC2サーバーから直接取得することで、以前の亜種で使用したものと同じプロセスを引き続き使用しています。前のサンプルとは異なり、このDealersChoiceは、DOCXの配信文書を使用しており、悪意のあるFlashオブジェクトをトリガーするには、ユーザーがドキュメント全体をスクロールする必要があります。このユーザーの対話の必要性は、サンドボックスに対抗するための興味深い技法であることが判明しており、過去、このグループの活動では見られなかったものです。

侵害のインジケータ(IoC)

DealersChoice

  • 0cd9ac328d858d8d83c9eb73bfdc59a958873b3d71b24c888d7408d9512a41d7 (Defence & Security 2018 Conference Agenda.docx)
  • ndpmedia24[.]com

マクロつきドキュメント

  • e5511b22245e26a003923ba476d7c36029939b2d1936e17a9b35b396467179ae
  • efb235776851502672dba5ef45d96cc65cb9ebba1b49949393a6a85b9c822f52
  • c4be15f9ccfecf7a463f3b1d4a17e7b4f95de939e057662c3f97b52f7fa3c52f