‘DealersChoice’はSofacyのFlash Playerエクスプロイト プラットフォーム

By and

Category: Unit 42

Tags: , , , ,

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

概要

Unit 42は、この1年間、さまざまなSofacyグループの攻撃を報告してきましたが、最近も、Sofacyグループによって一般に使用されているツールのOS X亜種であるKomplex,について投稿しています。Komplex攻撃と同時期に、私たちは、Sofacyグループが使用している中で以前は見られなかった戦術を使用して、武器化された文書をいくつか収集しました。既知のMicrosoft Wordの脆弱性をエクスプロイトした文書の武器化は、多くの攻撃者グループによって展開されている一般的な戦術ですが、この例では、Microsoft WordではなくFlashの脆弱性をエクスプロイトするために設計された、埋め込みのOLE Word文書を含み、さらに埋め込みのAdobe Flash (.SWF)ファイルを含むRTF文書を検出しました。私たちは、これらの文書を生成するこのツールをDealersChoiceと名付けました。

この新たな戦術の検出に加え、埋め込みSWFの2つの異なる亜種を特定できました。1番目は、私たちがDealersChoice.Aと呼ぶ圧縮されたペイロードを含むスタンドアロン  バージョンで、2番目の亜種は、私たちがDealersChoice.Bと呼ぶ追加の分析対策手法を展開するかなりモジュール化されたバージョンです。DealersChoice.Bの発見は、初期のDealersChoice.A亜種からコードが新化した可能性を示唆しています。また、DealersChoice内のアーチファクトは、DealersChoiceがAdobe Flashファイルを使用していることで潜在的にクロスプラットフォームであるため、WindowsとOSXの両方のオペレーティング システムを標的にする目的で、Sofacyが作成したことを示しています。

Sofacyグループの攻撃の標的データは限られたままですが、これらの攻撃によって標的にされているウクライナを拠点とする防御請負業者と同じ地域内の国家の外務省を特定することができました。以下の記事では、DealersChoiceの調査に重点が置かれています。注目に値するのは、米国政府が、ロシアへのDNC侵入時に、このエンティティに関連付けられた侵害の痕跡と同じものが多数見られ、それらが原因だと述べていることです(Sofacyは、APT 28としても知られ、通常ロシアに帰属するグループです)。

DealersChoice攻撃

私たちのテレメトリに基づくと、DealersChoice文書を配信する攻撃は2016年8月に発生し、主に旧ソ連構成共和国に属する国の組織を標的としていました。これらの悪意のある文書は、ウクライナを拠点とする防御請負業者と同じ地域の国家の外務省へ、どちらもフィッシング攻撃を介して配信されました。

私たちは、ウクライナを拠点とする防御請負業者を標的とした実際のフィッシング電子メールを収集できました。それを図1に示します。電子メールは、かなり巧妙に偽装されており、欧州議会のプレス部門の一部になりすました送信者アドレスを使い、本物らしさを高めるために既存の人物の署名ブロックが使用されていました。添付ファイルは、ウクライナのロシア侵入の可能性に関する詳細を含むBulletin.docという名前のDealersChoice.A亜種のサンプルです。

図1 ウクライナの防御組織および近隣の国のMFAに配信された攻撃の電子メール
図1 ウクライナの防御組織および近隣の国のMFAに配信された攻撃の電子メール

受信者がBulletin.doc添付ファイルを開くと、図2に示す、“Russian invasion possible ‘at any minute’”というタイトルのおとり文書が表示されます。おとり文書の内容は、2016年8月7日にIrish Timesに投稿された記事からコピーされ、若干修正を加えて貼り付けられていました。

図2 ウクライナのロシア侵入の可能性に関するDealersChoice文書によって表示されるおとり文書
図2 ウクライナのロシア侵入の可能性に関するDealersChoice文書によって表示されるおとり文書

DealersChoice配信ドキュメントの分析中に、異なってはいるが第2のDealersChoiceバージョンを見つけました。私たちは、関連する標的情報は持っていませんが、それが別のフィッシング攻撃で配信されたと確信しています。この追加のサンプルもおとり文書を開きました。この場合は、トルコの政治問題を詳解した文書でした。ここでも、攻撃者はオンライン ニュースの記事の内容を使用しています。このおとり文書の内容は、2016年8月4日にHuffington Postに投稿された記事と一致します。図3に、このおとり文書の内容を示しています。この場合、文書の先頭にスペル エラー(“STANBUL”)があるため、攻撃者は内容をコピーして貼り付ける際に注意力が少し欠けていたようです。

図3 追加のDealersChoiceサンプルによって開かれるおとり文書
図3 追加のDealersChoiceサンプルによって開かれるおとり文書

対処方法

おとり文書が被害者に対して表示されている間、DealersChoice配信文書は、システムをエクスプロイトしようとして悪意のある活動を盛んに実行しています。前述のとおり、DealersChoiceの2つの異なる亜種が検出されています。どちらの亜種も共通のコア コンポーネントを共有していますが、それらが脆弱性をエクスプロイトし、ペイロードをインストールする方法は著しく異なっています。DealersChoice.AとDealersChoice.Bの両方の動作方法について以降で詳しく説明しますが、最初に、2つの間で共有されているコア コンポーネントについて説明する必要があります。

文字通り、DealersChoiceは2つの責任を担っているリッチ テキスト ファイル(RTF)です。つまり、RTFに埋め込まれたおとり文書の内容を表示し、埋め込みWord文書(OLE)をロードします。Word文書は埋め込みFlashファイル(SWF)をロードし、最終的に、これがシステム上で悪意のある活動を開始するActionScriptを実行します。埋め込みFlashファイル内のActionScript、特にコードとそれが実行するアクションは、DealersChoiceの2つの亜種で異なっているところです。図4に示すように、DealersChoice.AのActionScriptはFlash Playerのバージョンをチェックし、埋め込みペイロードをインストールするために3つの埋め込みFlashファイル(SWF)のいずれかをロードすることで、脆弱性をエクスプロイトしようとします。DealersChoice.BのActionScriptは大幅に異なっており、脆弱性をエクスプロイトしてトロイの木馬をインストールするために、C2サーバにアクセスしてFlashファイルとペイロードを受信します。

図4 DealersChoiceの亜種AおよびBは同じ目標に対して異なるアプローチをする
図4 DealersChoiceの亜種AおよびBは同じ目標に対して異なるアプローチをする

見て分かるとおり、DealersChoice.Aは、どちらかといえば、1個のファイルの中にコンポーネントを全て含んでいるスタンドアローン型のツールキットです。それに対し、DealersChoice.Bは活動しているC2サーバを必要とし、このC2サーバを使ってシステムをエクスプロイトするのに必要なリソースを追加取得します。DealersChoice.AのWord文書の中に埋め込まれているFlashファイルの“allInFlash.swf”というファイル名からも、やはり作成者がスタンドアローン型にしようとしていたことが分かります。

DealersChoice.A

DealersChoice.A亜種は、システムをエクスプロイトするのに必要なコンポーネントを全て含んでいるスタンドアローン型のツールです。埋め込まれているメタデータによると、DealersChoice.AのSWFファイルは2016年8月15日に作成されましたが、この日にはウクライナの防衛機関への攻撃があり、それより前には外務省を標的とする攻撃がありました。

悪意のあるActionScriptを含んでいたFlash SWFファイルにも、4個のファイルが埋め込まれていました。それらの名前は、ExtSwf、ExtSwf1、ExtSwf2およびMain22_Payです。ActionScriptは、zlibライブラリを使ってMain22_Payファイルを解凍します。Main22_Payファイルには、シェルコードとこのシェルコードがシステムにインストールペイロードが含まれています。ActionScriptはFlash playerのバージョンを確認し、解凍するのにzlibを使います。その後に、埋め込みSWFとしてExtSwf、ExtSwf1、ExtSwf2のいずれか1つに対して復号化処理ルーチン(0xb7をキーとする)が続きます。下記のActionScriptは埋め込みSWFファイルの復号化処理に特化したアルゴリズムを表しています。

埋め込みSWFに対して復号化処理をすると、その中には、脆弱性のエクスプロイトを試みるActionScriptが含まれています。上述のバージョン確認の目的は、Flash playerの脆弱性をエクスプロイトするという目的に適った悪意のあるActionScriptが実行されるのを確実なものにすることです。表1は、DealersChoice.Aに含まれているFlash playerのバージョンの範囲、ロードされた埋め込みSWFファイル、関連する脆弱性(ロードされたSWFによるエクスプロイトの対象)を表しています。

Flash Playerのバージョン 埋め込まれているファイル エクスプロイトの対象となるCVE
11.5.502.146 – 19.0.0.207 ExtSwf1 CVE-2015-7645
20.0.0.228 – 20.0.0.306 ExtSwf CVE-2016-1019
20.0.0.306 – 21.0.0.242 ExtSwf2 CVE-2016-4117

表1 DealersChoice.A が探すFlash playerのバージョンおよび関連する脆弱性(エクスプロイト対象)

DealersChoiceの作成者は広範囲にわたる調査を行ったようですが、それは各脆弱性に関するバージョンの範囲が、ベンダーのアドバイザリに記載されているとおり、脆弱性のあるバージョンと揃っているためです。また、注意しておかなければならないのは、システムのFlashのバージョンがこれらの範囲内にない場合、DealersChoiceは悪意のあるいずれのSWFファイルもロードせず、したがってシステムに対してエクスプロイトを試みることもない、ということです。

表1のリストにある脆弱性のいずれも、エクスプロイトされた場合、SWFに埋め込まれているMain22_Payからシェルコードが実行されるという結果に至ります。シェルコードは初期シード値を0xD01A7C2としてメルセンヌ ツイスター アルゴリズムを使い、疑似乱数を生成して、この乱数を埋め込みペイロードの復号化処理のキーに使っているようです。復号化処理が終わると、シェルコードはペイロードを%APPDATA%\Local\nshwmpfs.dll (SHA256: 73db52c0d4e31a00030b47b4f0fa7125000b19c6c9d462c3d0ce0f9d68f04e4c)にインストールします。また、シェルコードは永続性のために次のレジストリ キーを作成しますが、これはOffice Test持続手法であり、Sofacyが以前の攻撃に使っていたものです。

ペイロード‘nshwmpfs.dll’は、Sofacyが作ったCarberpベースのツールのサンプルです。このツールは、私たちが以前のブログで説明したペイロードとそっくりです。このペイロードはC2 serverとしてservicecdp[.]comと通信しますが、このことも以前のブログで言及しました。こうしたことから、Sofacyグループは別々の攻撃に自前のインフラストラクチャを再利用していることが伺えます。

DealersChoice.Aの分析を進めているなかで、私たちは“ExtSwf” SWFファイルの中に興味深い痕跡を発見しました。その痕跡は、システムがAppleのOSXオペレーティング システムで稼働している場合、下記の行のコードによってフラグを設定します。

この痕跡が興味深いのは、実行されるシェルコードがWindows APIに依拠しており、インストールされるペイロードがOSXでは動かないWindows DLLだからです。このフラグは、脅威の攻撃者が悪意のあるエクスプロイト コードをFlash SWFファイルのようなクロスプラットフォームのファイル タイプにして開発する際、OSXオペレーティング システムのことも考慮していることをまさに示しています。私たちはこのことを確認することはできませんが、目的に適ったシェルコードの準備が整ったならば、脅威の攻撃者がDealersChoice.Aを使ってエクスプロイトし、OSX用のトロイの木馬をインストールする恐れがあります。

DealersChoice.B

DealersChoice.Aの調査中、私たちはDealersChoice.Bが配信する文書が同じ属性を数多く共有しているもののDealersChoice.Bの文書の方が新しいことが分かりました。それは、埋め込みFlashファイルの中にあるメタデータが、これらのファイルが2016年8月25日に作成されたことを示唆しているからです。DealersChoice.Bの文書は前のバージョンと若干違っています。具体的には、システムの脆弱性をエクスプロイトするための3個に分けられたSWFファイルは含まれていません。その代わり、DealersChoice.Bは活動中のC2サーバに依拠しています。このC2サーバは悪意のあるSWFファイルを提供して脆弱性をエクスプロイトしますし、実行するためのペイロードも提供します。脅威の攻撃者がC2にあるFlash playerのバージョンを確認して、悪意のあるエクスプロイト コードをその場でロードしているものと推察されます。私たちはこの違いに基づいて、これらの文書をDealersChoice.Bと命名しました。私たちの分析中、C2サーバは稼働しておらず、そのため私たちは悪意のあるSWFやこの配布文書と関連づけられたペイロードを取得することができませんでした。

DealersChoiceの中核となるコンポーネントは亜種Bの中にあります。具体的には、埋め込みWord文書と一緒にあったRTFファイルですが、このファイルは埋め込みFlashファイル(SWF)をロードします。しかし、亜種Bの中のFlashファイルは前のバージョンと違いがあります。これにはMain64_Payと命名された埋め込みファイルが1個含まれています。Main64_Payファイルはzlibライブラリを使って解凍され、DealersChoice.Aのセクションで説明したのと同じアルゴリズムを使って復号化されます。ただし、復号化のキーとしては0xb7でなく0x8fが使われます。Main64_Payはロードされると“Main32”と命名された関数の中にあるActionScriptを実行します。これにより、下記URLに対してHTTP GETリクエストが作成され送信されます。

URLの<Capabilities.serverString>部分は、flash.system内で提供されている読み取り専用文字列が出力されます。Capabilities.serverStringプロパティには、システム固有情報の文字列が含まれており、システムのオペレーティングシステム、Flashバージョンなどを判別するためにWebサーバが使用します。わたしたちの分析では、HTTP GETリクエストは次のようなものです。C2サーバに送信されたシステム固有情報が示されています。

脅威の攻撃者は以下の理由(場合によってはその他の理由)で、このビーコンでシステム情報を使用していると考えられます。

  1. Flashのバージョンの判別。適切な悪意のあるSWFを提供し、該当するバージョンのFlashの脆弱性を悪用できるようにするため
  2. オペレーティングシステムの判別。適切なペイロードを提供するため(おそらくクロスプラットフォーム エクスプロイト フレームワークの構築)
  3. オペレーティングシステム、アーキテクチャ、画面解像度、言語のいずれか、またはそれらすべてに基づいた分析システムの絞り込み

C2サーバが動作している場合、 C2サーバはビーコンに応答し、k1、k2、k3、およびk4という名前の変数が含まれたデータを使用してserver.phpを実行します。この関数は、次のURLに対する別のHTTPリクエストでk1変数の値を使用します。

C2サーバは、応答データとして圧縮、暗号化されたSWFファイルを使用し、このリクエストに応答します。この関数は、k3変数を鍵として使用し、同じ暗号化アルゴリズムを使用してSWFを復号化してから、次のURLに対して別のリクエストを作成します。

C2サーバは、圧縮、暗号化されたバイナリ データを使用してこのリクエストに応答します。このデータは、k4変数を鍵として使用し、同じ暗号化アルゴリズムを使用して、関数によって復号化されます。復号化されたバイナリ データは、メモリに読み込まれるペイロードです。このC2サーバによって提供されるペイロードは、このツールキットの他のバージョンに埋め込まれたペイロードと同じと考えられます。特に、埋め込まれたDLLを復号化し、インストールするシェルコードから始まる点が同じです。

インフラストラクチャ

2つの既知のDealersChoice亜種のうち、DealersChoice.Aは、使用可能なAdobe Flashの脆弱性をエクスプロイトした後、被害者のホストにペイロードをドロップしてから、servicecdp[.]comにあるC2サーバと通信することがわかっています。このC2サーバは、以前、2016年6月のブログの、政府機関を狙った攻撃キャンペーンに関する投稿でUnit 42によって報告されています。6月にservicecdp[.]comとの通信が検出されたペイロードは、そのときは、同じMicrosoft Word DLLのサイドローディング技法を使用して、他のSofacyグループの攻撃にリンクしていました。

DealersChoice.Bのペイロードは取得できませんでしたが、悪意のあるエクスプロイト コードおよびペイロードの配信に使用されるC2サーバとして、appexsrv[.]netを識別できました。パッシブDNSレコードを調査しても、以前の攻撃キャンペーンとの重複は見られませんでしたが、appexrv[.]comおよびupmonserv[.]netという別の2つのドメインを識別できました。これらのドメインは、同じ電子メール アドレス、Kellen.green82@gmail.comによって登録されています。これら2つのドメインは、現時点アクティブなC2サーバではないようです。図5は、DealersChoiceに関連したインフラストラクチャおよびサンプルを示しています。

図5 DealersChoiceに関連したインフラストラクチャおよびサンプル
図5 DealersChoiceに関連したインフラストラクチャおよびサンプル

階層化インフラストラクチャであることの証明

DealersChoice.Bが悪意のあるエクスプロイト コードおよびペイロードの取得に使用しているリモート サーバは、appexsrv[.]net (95.183.50.23に解決される)です。わたしたちの分析では、このリモート サーバは、SWFファイルまたはペイロードを提供しませんでしたが、次のHTTP 503エラーで応答しました。このエラーはとても興味深い内容です。

HTTP 503エラーは、95.183.50.23にあるサーバがSquid HTTPプロキシを実行していることを示しています。この応答によって、プロキシが通信の宛先として構成されているサーバに接続できなかったことがわかります。110エラーが発生しており、接続がタイムアウトしているためです。このことで、このサーバがHTTPリクエストを別のサーバに転送するための透過型プロキシとしてセットアップされている可能性が高いことがわかります。Squidプロキシの使用は、脅威の攻撃者がC2サーバの真の場所を隠蔽しようとしていることを示しています。

結論

DealersChoiceは、 Sofacy脅威グループが Adobe Flashの脆弱性を悪用することを目的としたエクスプロイト プラットフォームです。Sofacyがクロスプラットフォーム エクスプロイトに焦点を当てていることは明らかです。標的とするシステムのオペレーティングシステムを判別するためにDealersChoiceにチェックを組み込んでいるためです。これらのチェックは、AppleのOS Xオペレーティングシステム向けでしたが、「
SOFACYの‘KOMPLEX’、OS Xのトロイの木馬
」の記事と併せて考えると、この脅威グループは、Windows環境とApple環境の両方で活動できると考えられます。また、DealersChoiceの分析によって、透過型プロキシを活用してSofacyのC2サーバの場所を隠すために階層化インフラストラクチャを使用している可能性があることもわかりました。

パロアルトネットワークスの顧客は、以下によって、DealersChoiceを配信する文書やSofacy Carberpペイロードから保護されます。

  • 既知のすべてのサンプルを悪意があるとして検出するWildFire
  • すべての既知のC2がPAN-DBで悪意があるとして分類される
  • TrapsによってDealersChoiceが使用するエクスプロイト コードをブロック

AutoFocusの顧客は、以下によって、DealersChoiceおよびSofacy Carberpに関する詳細情報を収集できます。

  • AutoFocusタグが作成されています(DealersChoice)
  • AutoFocusで、ペイロードはSofacyCarberpタグと突合される

セキュリティ侵害の兆候

DealersChoice.A

dc2c3314ef4e6186b519af29a246679caa522acd0c44766ecb9df4d2d5f3995b

DealersChoice.B

cc68ed96ef3a67b156565acbea2db8ed911b2b31132032f3ef37413f8e2772c5

af9c1b97e03c0e89c5b09d6a7bd0ba7eb58a0e35908f5675f7889c0a8273ec81

DealersChoice.B C2

appexsrv[.]net

Sofacy Carberp

73db52c0d4e31a00030b47b4f0fa7125000b19c6c9d462c3d0ce0f9d68f04e4c

Sofacy Carberp C2

servicecdp[.]com