AiTM(中間者)攻撃を通じて配信される高度なマルウェア、NSPX30インプラントとは

この記事をシェア

Blackwoodと命名した中国と関わりのある新しいAPTグループが使用する、高度なマルウェアNSPX30についてESET社の研究者が解説します。

AiTM(中間者)攻撃を通じて配信される高度なマルウェア、NSPX30インプラントとは

ESET社の研究者は、少なくとも2018年から活動していると考えられ、これまでに特定および報告されていなかった中国が関与していると思われるサイバー攻撃組織による攻撃を分析しました。ESET社は、このグループをBlackwoodと命名しました。この攻撃組織は、正規のソフトウェアのアップデートリクエストを乗っ取るAiTM(中間者)攻撃を通じて、高度なマルウェアを配信しています。ESET社は、このインプラント(マルウェアの一種)をNSPX30と命名しました。

本ブログの要点:

  • NSPX30インプラントは、Tencent QQ(テンセントQQ)、WPS Office、Sogou Pinyin(捜狗拼音)などの正規ソフトウェアのアップデートの仕組みを利用して展開されています。
  • このインプラントは、中国や日本の企業、中国、日本、および英国の個人に対する標的型攻撃で検出されています。
  • ESET社が調査を進めたところ、NSPX30は被害者からデータを収集するために設計され、ESET社がProject Woodと命名していた2005年に検出された軽量なバックドアから進化していることが明らかになりました。
  • NSPX30は、ドロッパー、インストーラー、ローダー、オーケストレーター、バックドアなど、いくつものコンポーネントを実装した多段階型のインプラントです。後者の2つには個別のプラグインのセットが用意されています。
  • このインプラントは、攻撃者がパケットを傍受する能力を重視して設計されています。また、NSPX30のオペレーターが攻撃用のインフラを隠蔽することを可能にしています。
  • NSPX30はまた、セキュリティ製品の許可リストに自身を追加することができ、いくつかの中国のマルウェア対策製品に攻撃が妨害されないように対策しています。
  • これらの攻撃は、ESET社がBlackwoodと命名した新しいAPTグループによって実行されています。

BLACKWOODのプロファイル

Blackwoodは、少なくとも2018年から活動している中国が関与していると思われるAPTグループであり、中国や日本の個人や企業に対してサイバースパイ活動を仕掛けています。Blackwoodは、正規ソフトウェアのアップデートの仕組みをAitM(中間者)攻撃を利用して、ESET社がNSPX30と名付けたインプラントを配信したり、インプラントが生成するトラフィックを傍受して、コマンドアンドコントロールサーバーの場所を隠蔽したりする能力を有しています。

キャンペーンの概要

2020年、ESET社が「脅威マグネット」と呼んでいる、中国にあるシステムを標的とした悪意のある活動の急増を検出しました。この「脅威マグネット」システムは、さまざまなAPTグループに関連するマルウェアツールキットによる攻撃を検出しています。この脅威マグネットでは、Evasive PandaLuoYu、そしてESET社がLittleBearとして追跡している別のサイバー攻撃組織による攻撃を捕捉しています。
このシステムは、これらの3つのグループが利用しているツールキットではない、不審なファイルを検出しました。ESET社は、このファイルを起点としてNSPX30と命名したインプラントの調査を進めたところ、その起源が2005年に遡ることが明らかになりました。
ESET社のテレメトリ(監視データ)によると、このインプラントは限られた一部のシステムで検出されています。被害に遭った個人や組織は以下の通りです。

  • 中国と日本にいる個人(詳細は不明)
  • 英国の有名な公立大学のネットワークとつながりのある中国語を話す人物(詳細は不明)
  • 中国の大手製造・貿易会社
  • エンジニアリングおよび製造業の日本企業の中国オフィス

また、攻撃者はアクセスが途絶えた場合、システムの侵害を再び試みることも確認されています。
図1に、ESET社のテレメトリによるBlackwoodの標的の地理的分布を示します。

図1. Blackwoodの被害者の地理的分布

図1. Blackwoodの被害者の地理的分布

NSPX30の進化

NSPX30インプラントの調査を進めたところ、ESET社がProject Woodと命名した簡易なバックドアまで遡ることができました。Project Woodの最も古い検体は2005年にコンパイルされており、いくつかのインプラントを作成するためのコードベースとして使用されていると考えられます。このようなインプラントの1つは、NSPX30のベースとなっており、2008年にその作成者によってDCMと名付けられました。
図2に、ESET社が収集した検体とESET社のテレメトリ、および公開されている文書の分析に基づく、これらのマルウェア開発の時系列を示します。しかし、このサイバー攻撃者による約20年間の開発と悪意のある活動の詳細は明らかになっておらず、ここに記載しているイベントやデータは不完全なものです。

図2. Project Wood、DCM、およびNSPX30の主な亜種のタイムライン

図2. Project Wood、DCM、およびNSPX30の主な亜種のタイムライン

次のセクションでは、Project Wood、DCM、およびNSPX30に関する調査結果の一部について説明します。

Project Wood

ローダーとバックドアの2つのコンポーネントのPEヘッダーに存在するタイムスタンプから、これらのインプラントの進化の起点は、2005年1月9日にコンパイルされた小規模なバックドアであることが分かりました。
このバックドアは、システムやネットワーク情報の収集、キー入力の記録、スクリーンショットの取得などの機能を実装しています。
バックドアには、図3に示すように、繰り返し使用されているミューテックスの名前から、「Project Wood」と命名しました。

図3. 多くの検体で同じミューテックスが使用されていたProject Woodのコード

図3. 多くの検体で同じミューテックスが使用されていたProject Woodのコード

コンパイルのタイムスタンプは、攻撃者によって改ざんされる可能性もあるため、そのまま信頼することはできない指標です。そのため、今回ケースでは、追加のデータポイントも参照して考慮しています。まず、ローダーとバックドアの検体のPEヘッダーのタイムスタンプを表1に示します。両コンポーネントがコンパイルされた時間には17秒の差しかありません。

SHA-1 ファイル名 PEコンパイルのタイムスタンプ 説明
9A1B575BCA0DC969B1344651F16514660D1B78A6 MainFuncOften.dll 2005-01-09 08:21:22 Project Woodのバックドア
エクスポートテーブルのタイムスタンプがPEコンパイルのタイムスタンプと一致します
834EAB42383E171DD6A42F29A9BA1AD8A44731F0 N/A 2005-01-09 08:21:39 Project Woodのローダーには、リソースとして埋め込まれたこのバックドアが含まれています

表1. 2005年の検体のコンポーネントのPEコンパイルのタイムスタンプ

2つ目のデータは、UPXを使って圧縮されたドロッパーの検体から取得しています。UPXは、生成した圧縮ファイルに該当するバージョン(図4)を挿入します。このケースでは、UPXのバージョンは1.24となっていますが、このバージョンは検体がコンパイルされた日付より前の2003年にリリースされています。

図4. ドロッパーの検体で見つかった、UPXツールのバージョンが記述された文字列

図4. ドロッパーの検体で見つかった、UPXツールのバージョンが記述された文字列

3つ目のデータは、PEリッチヘッダー(図5)の有効なメタデータです。このメタデータは、検体のコンパイル日より前の1998年にリリースされたVisual Studio 6.0を使用してコンパイルされたことを示しています。

図5. ドロッパーの検体にあったPEリッチヘッダー

図5. ドロッパーの検体にあったPEリッチヘッダー

ESET社は、タイムスタンプ、リッチヘッダーメタデータ、およびUPXバージョンのすべてが攻撃者によって意図的に改変された可能性は低いと考えています。

公開されている文書

  • 2011年9月にSANS Instituteが公開した技術文書には、実行した主体が不明で無名のバックドア(Project Wood)が、スピアフィッシングメールを通じて香港の政治家を標的にするために使用されたことが記載されています。
  • 2014年10月、G DATAは「TooHash作戦」と命名したキャンペーンのレポートを公開し、その後、このキャンペーンがGelsemium APTグループによって実行されたことを報告しています。
    G DATAが「DirectsX」と命名したルートキットは、DCMや後継のNSPX30に見られるいくつかの機能を備えたProject Woodバックドア(図6を参照)の亜種をロードし、サイバーセキュリティ製品のホワイトリストに自身を登録して、実行を許可します(詳細は後述の表4に記載)。
図6. TooHash作戦の検体でも同じミューテックス名が繰り返し使用されている

図6. TooHash作戦の検体でも同じミューテックス名が繰り返し使用されている

DCM(別名:Dark Specter)

初期のProject Woodはいくつかのプロジェクトのコードベースとなっています。その中の1つは、作成者によってDCMと呼ばれているインプラントです(図7を参照)。

図6. TooHash作戦の検体でも同じミューテックス名が繰り返し使用されている

図7. DCMインプラントのコードでは、新しいミューテックス名が使用されている

2016年のTencentのレポートでは、AitM(中間者)攻撃の能力を利用して、DCMインストーラーをソフトウェアアップデートとして配信し、正規サーバーへのDNSリクエストを経由してデータを流出させる、高度なDCMの亜種について説明しています。DCMが攻撃で使用されるのが最後に観測されたのは、2018年でした。

公開されている文書

DCMは2012年に中国のJiangmin社によって初めて文書化されました。その時点では無名でしたが、その後2016年にTencentによってDark Specterと命名されました。

NSPX30

ESET社が検出したNSPX30の最も古い検体は、2018年6月6日にコンパイルされています。
NSPX30は、2段階に分かれて動作し、攻撃者がAitM攻撃を実行する能力に完全に依存しているため、DCMとは異なるコンポーネント構成になっています。DCMのコードはより小規模なコンポーネントに分割されていました。
ESET社は、プラグインの検体で見つかったPDBのパスをとって、このインプラントを命名しました。

  • Z:\Workspace\mm\32\NSPX30\Plugins\plugin\b001.pdb
  • Z:\Workspace\Code\MM\X30Pro\trunk\MM\Plugins\hookdll\Release\hookdll.pdb

NSPという名前は、常駐化のための手法を参照していると考えられます。ディスク上では、msnsp.dllという名前の常駐化のためのローダーDLLが、内部的にはmynsp.dllという名前になっています(エクスポートテーブルのデータ)。これは、Winsock名前空間プロバイダー(各英単語の頭文字を合わせるとNSPになる)としてインストールされているためだと考えられます。
最後にESET社が把握している限り、NSPX30はこれまでほかのセキュリティベンダーによって公開されたことはありません。

技術的な分析

ESET社のテレメトリから、正規のソフトウェアが(暗号化されていない)HTTPプロトコルを使用して正規のサーバーからアップデートをダウンロードするときに、マシンが侵害されることがわかりました。Tencent QQ(テンセントQQ)、Sogou Pinyin(捜狗拼音)、WPS Officeなど、中国で人気の高いソフトウェアのアップデートの仕組みが乗っ取られています。
ESET社のテレメトリで確認された実行チェーンを図8に示します。

図8. 確認された攻撃実行チェーンの図

図8. 確認された攻撃実行チェーンの図

表2に、URLと、ダウンロードが発生した時点でユーザーのシステムでドメインが解決されたIPアドレスの例を示します。

URL 最初に確認された日付 IPアドレス ASN ダウンローダー
http://dl_dir.qq[.]com/invc/qq/minibrowser.zip MainFuncOften.dll 183.134.93[.]171 AS58461(CHINANET) Tencentdl.exe

表2. 観測された正規のダウンローダーコンポーネントのURL、サーバーIPアドレス、プロセス名

ネットワークインプラントに関する仮説

攻撃者がNSPX30を悪意のあるアップデートとして配信している具体的な方法は、まだわかっていません。
このような能力を有している中国とのつながりのあるサイバー攻撃組織(Evasive PandaTheWizards)についてESET社が収集している情報や、BlackTechCamaro Dragon(別名Mustang Panda)が利用しているルーターインプラントに関する最近の調査から、攻撃者は、おそらく標的ユーザーのネットワークにあるルーターやゲートウェイなどの脆弱なネットワークアプライアンスにネットワークインプラントを展開しているものと推測されます。
DNSを介したトラフィックのリダイレクトが確認されていないことから、展開されていると考えられるネットワークインプラントが、アップデートに関連する暗号化されていないHTTPトラフィックを傍受するときに、DLL、実行可能ファイル、またはDLLを含むZIPアーカイブの形態でNSPX30インプラントのドロッパーを返信している可能性があります。
NSPX30インプラントはC&Cインフラストラクチャを隠蔽するために、攻撃者がパケットを傍受する機能を使用していることを前に述べましたが、以下のサブセクションでは、この方法について説明します。

HTTPの傍受

バックドアをダウンロードするために、オーケストレーターは、Windows 98のInternet Explorerを装った特異なUser-Agentを使用して、Baidu(百度)のWebサイト(正規の中国の検索エンジンおよびソフトウェアプロバイダー)に対してHTTPリクエストを実行します(図9)。サーバーからの応答がファイルに保存され、そのファイルからバックドアコンポーネントが抽出されてメモリーにロードされます。

図9. オーケストレーターによって送信されるHTTPリクエスト

図9. オーケストレーターによって送信されるHTTPリクエスト

このRequest-URIは、オーケストレーターと侵害されたシステムの情報が含まれる独自のURIとなっています。正規のサーバーに、傍受されないリクエストを発行すると、404エラーコードが返されます。バックドアは、プラグインをダウンロードするために、わずかに異なるRequest-URIを使用して、同じような手順を実行します。
ネットワークインプラントは、特定の古いUser-Agentを使用して、www.baidu.comへのHTTP GETリクエストを見つけ、Request-URIを解析して、送信する必要があるペイロードを決定します。

UDPの傍受

このバックドアは、初期化中にパッシブUDPリスニングソケットを作成し、オペレーティングシステムにこのポートを割り当てさせます。パッシブバックドアを使用すると、攻撃者の操作を複雑化する場合もあります。例えば、ファイアウォールやNATを使ったルーターがネットワーク外部からの着信をブロックしている場合などです。さらに、インプラントのコントローラーは、バックドアとやりとりするために、侵害されたマシンの正確なIPアドレスとポートを把握する必要があります。
この攻撃者は、収集したデータを外部に送信するときにバックドアがコマンドを受信するのと同じポートを使用することで、ネットワークインプラントがパケットを転送する正確な場所を把握し、この問題を解決している可能性があります。データを外部に送信する手順は、デフォルトでは、ソケットが作成された後に開始されます。この場合には、microsoft.comドメインに対するDNSクエリが使用され、このDNSパケットに収集したデータが追加されます。図10は、バックドアが送信した最初のDNSクエリを示しています。

図10. バックドアによって送信されるDNSクエリ。収集された情報はプレーンテキストで追加される。

図10. バックドアによって送信されるDNSクエリ。収集された情報はプレーンテキストで追加される。

最初のDNSクエリは、180.76.76[.]11:53(この記事を書いている時点では、DNSサービスを公開していないサーバー)に送信され、次のクエリが実行されるときに毎回、宛先IPアドレスが次のアドレスに変更されます(図11を参照)。

図11. バックドアによって送信されるDNSメッセージ。リクエストごとにIPアドレスが1つずつ増えている。

図11. バックドアによって送信されるDNSメッセージ。リクエストごとにIPアドレスが1つずつ増えている。

180.76.76.0/24のネットワークはBaiduが所有しており、興味深いことに、これらのIPアドレスのサーバーのいくつかは、BaiduのパブリックDNSサービスである180.76.76.76などのDNSサービスを公開しています。
このネットワークインプラントは傍受したDNSクエリパケットを攻撃者のサーバーに転送していると考えられます。このインプラントは、以下の複数の値を組み合わせてフィンガープリントを作成して、パケットを簡単にフィルタリングできます。

  • 送信先のIPアドレス
  • UDPポート(53、4499、8000ポートが使用されていることが観測)
  • 0xFEADに一致するDNSクエリのトランザクションID
  • ドメイン名
  • データが追加されたDNSクエリ

まとめ

攻撃者が、そのAitM(中間者)攻撃の能力によってパケットを傍受するのは、C&Cインフラの場所を隠蔽するための高度な方法です。日本や英国などの中国以外の国でもバックドアを仕掛けられるケースが確認されています。この攻撃者は、その後、プラグインをダウンロードするコマンドをバックドアに送信しています。例えば、英国の被害者には、Tencent QQから情報とチャットを収集するように設計された2つのプラグインが送信されていました。このことから、AitMのためのシステムが配置され実行されていることがわかります。また、データを外部送信する仕組みも同じように導入されているはずです。
例えば、180.76.76.0/24ネットワークにあるいくつかのサーバーでは、正規の着信リクエストをさまざまな場所に転送する方式であるAnycast(エニーキャスト)が取り入れられている可能性があります。このことから、ネットワークの傍受はBaiduのネットワークに近い場所ではなく、標的に近い場所で行われている可能性が高いです。Baiduはネットワークインフラの一部を中国国外に置いています。中国国外の被害者が中国のISPを経由してBaiduのサービスにアクセスすることはないため、中国のISPから傍受されていることはないと考えられます。

NSPX30

以下のセクションでは、このマルウェアの主な実行段階について説明します。

ステージ1

図12は、正規のコンポーネントが悪意のあるドロッパーDLLをロードし、ディスクに複数のファイルを作成する実行チェーンを示しています。

図12. ドロッパーDLLによって開始される実行チェーン

図12. ドロッパーDLLによって開始される実行チェーン

このドロッパーはRsStub.exeを実行します。RsStub.exeは中国のマルウェア対策製品Rising Antivirusの正規のソフトウェアコンポーネントですが、悪意のあるcomx3.dllをサイドローディングするために悪用されています。
図13は、このコンポーネントが実行されるときの主な処理を示しています。

図13. RsStub.exeが悪意のあるcomx3.dllをロードするときに開始される一連のロード操作

図13. RsStub.exeが悪意のあるcomx3.dllをロードするときに開始される一連のロード操作

RsStub.exeが、ExitProcessを呼び出すと、正規のAPI関数コードではなく、シェルコードのローダー関数が実行されます。
このローダーは、comx3.dll.txtファイルからインストーラーDLLを復号します。次に、シェルコードがインストーラーDLLをメモリーにロードし、そのエントリポイントを呼び出します。

インストーラーDLL

このインストーラーは、オープンソースの実装から取り入れたUACバイパスの手法を使って、新しい権限昇格のプロセスを作成します。どちらのDLLを使用するかは、表3にあるように、いくつかの条件によって異なります。

主な条件 副次的な条件 UACバイパスの手法
rstray.exeという名前のプロセスが存在する
  • OSのバージョンがWindows 2000/XP/Vistaである
AppKey18ShellExecuteから実行
  • OSのバージョンがWindows 10である
  • avp.exeという名前のプロセスが存在する
SilentCleanup UACバイパス
  • OSのバージョンがWindows 10である
  • avp.exeという名前のプロセスが存在しない
CMSTPLUA COM UACバイパス
  • OSのバージョンが、Windows 7/8/8.1/10またはWindows Server 2008 R1/2012 R2である
IARPUninstallStringLauncher UACバイパス
現在のプロセスが管理者グループのメンバーではない
  • OSのバージョンがWindows 10である
  • avp.exeという名前のプロセスが存在する
SilentCleanup UACバイパス
  • OSのバージョンがWindows 10である
  • avp.exeという名前のプロセスが存在しない
CMSTPLUA COM UACバイパス
  • OSのバージョンが、Windows 7/8/8.1/10またはWindows Server 2008 R1/2012 R2である
IARPUninstallStringLauncher UACバイパス

表3 . UACバイパス手法を適用するための主な条件とその副次的な条件

この条件では、2つのプロセスの存在が確認されます。avp.exeは、Kasperskyのマルウェア対策ソフトウェアのコンポーネントであり、rstray.exeはRising Antivirusのコンポーネントであると考えられます。
このインストーラーは、Windows Defenderが検体を提出する操作を無効化し、ローダーDLL msnsp.dllの除外ルールを追加します。cmd.exeを通じて2つのPowerShellコマンドが実行され、この処理が行われます。

  • cmd /c powershell -inputformat none -outputformat none -NonInteractive -Command Set-MpPreference -SubmitSamplesConsent 0
  • cmd /c powershell -inputformat none -outputformat none -NonInteractive -Command Add-MpPreference -ExclusionPath “C:\Program Files (x86)\Common Files\microsoft shared\TextConv\msnsp.dll”

次に、インストーラーは、常駐化のためのローダーDLLをC:¥Program Files (x86)¥Common Filesmicrosoft sharedTextConv ¥msnsp.dllにドロップし、API WSCInstallNameSpaceを使用して常駐化し、DLLを msnspというWinsock名前空間プロバイダーとしてインストールします(図14を参照)。

図14. 悪意のあるWinsock名前空間プロバイダーをインストールするコード

図14. 悪意のあるWinsock名前空間プロバイダーをインストールするコード

これによってプロセスがWinsockを使用するたびに、DLLが自動的にロードされます。
最後に、インストーラーはローダーDLLmshlp.dllと暗号化されたオーケストレーターDLLWIN.cfgをC:¥ProgramData¥Windowsにドロップします。

ステージ2

このステージは、msnsp.dllの実行から始まります。図15は、ステージ2の一連のロード操作を示しています。

図15. システムが悪意のあるWinsock名前空間プロバイダーをロードしたときに開始される一連のロード操作

図15. システムが悪意のあるWinsock名前空間プロバイダーをロードしたときに開始される一連のロード操作

オーケストレーター

図16に、バックドアの取得やプラグインのロードなど、オーケストレーターが実行する主なタスクを示します。

図16. オーケストレーターコンポーネントの実行チェーンと主なタスク

図16. オーケストレーターコンポーネントの実行チェーンと主なタスク

ロードされると、オーケストレーターはタスクを実行するために2つのスレッドを作成します。

オーケストレーターのスレッド1

オーケストレーターはディスクから元のドロッパーファイルを削除し、msfmtkl.datからバックドアをロードします。ファイルが存在しなかったり、開けなかったりした場合、オーケストレーターはWindowsのインターネットAPIを使って、先に説明したように中国企業のBaidu(百度)の正規Webサイトへの接続を開きます。
サーバーからの応答は、検証されて一時ファイルに保存されます。すべての条件に一致する場合、このファイルにある暗号化されたペイロードは新しいファイルに書き込まれ、msfmtkl.datという名前に変更されます。

暗号化されたペイロードで新しいファイルが作成されると、オーケストレーターはその内容を読み取り、RC4でペイロードを復号します。復号されたPEはメモリーにロードされ、そのエントリポイントが実行されます。

オーケストレーターのスレッド2

オーケストレーターは、現在のプロセスの名前を判断して、プラグインのロードや、中国で製造されている3つのマルウェア対策ソフトウェアのローカルデータベース内のローダーDLLを許可する除外リストの追加など、いくつかのアクションを実行します。

オーケストレーターがそのローダーをその許可リストに追加したセキュリティソフトウェアの名前と、プロセス名が一致する場合に実行されるアクションを表4に説明します。

プロセス名 対象ソフトウェア アクション
qqpcmgr.exe
qqpctray.exe
qqpcrtp.exe
Tencent PC Manager 正規のDLL <CURRENT_DIRECTORY>TAVinterface.dllをロードして、エクスポートされた関数CreateTaveInstanceを使用してインターフェイスを取得します。インターフェイスから2番目の関数を呼び出す場合、パラメータとしてファイルパスを渡します
360safe.exe
360tray.exe
360 Safeguard(別名、360Safe) 正規のDLL <CURRENT_DIRECTORY>\deepscan\cloudcom2.dllをロードして、エクスポートされた関数XDOpen、XDAddRecordsEx、およびXDCloseを使用します。SQLデータベースファイルspeedmem2.hgに新しいエントリを追加します
360sd.exe 360 Antivirus ファイル<CURRENT_DIRECTORY>ssl2.dbを開き、ローダーDLLへのパスを含むbase64でエンコードされたバイナリ構造を追加します
kxescore.exe
kxetray.exe
Kingsoft AntiVirus 正規のDLL <CURRENT_DIRECTORY>\security\kxescan\khistory.dllをロードして、エクスポートされた関数KSDllGetClassObjectを使用してインターフェイスを取得します。vtableからいずれかの関数を呼び出す場合、パラメータとしてファイルパスを渡します

表4. 特定のセキュリティソフトの名前のプロセスが実行されたときの、オーケストレーターのアクション

表5に、指定されたインスタントメッセージソフトウェアのプロセス名と一致した場合に実行されるアクションを示します。これらの場合、オーケストレーターはディスクからプラグインをロードします。

プロセス名 対象ソフトウェア アクション
qq.exe Tencent QQ GET QQ MESSAGE LOCK <PROCESS_ID>という名前のミューテックスを作成します。ミューテックスが存在しない場合、プラグインc001.dat、c002.dat、c003.datをディスクからロードします
wechat.exe WeChat プラグインc006.datをロードします
telegram.exe Telegram プラグインc007.datをロードします
skype.exe Skype プラグインc003.datをロードします
cc.exe 不明。CloudChatの可能性があります
raidcall.exe RaidCall
yy.exe 不明。YYソーシャルネットワークのアプリケーションの可能性があります
aliim.exe AliWangWang プラグインc005.datをロードします

表5. 特定のインスタントメッセージングソフトウェアの名前のプロセスが実行されたときの、オーケストレーターのアクション

プロセスに対応するアクションを完了すると、スレッドに戻ります。

プラグイングループ「c」

オーケストレーターのコードを分析したところ、「c」グループに属する少なくとも6つのプラグインが存在する可能性があることがわかりました。これらの中の3つのプラグインは現時点で特定されています。
表6に、特定されたプラグインの基本的な機能を示します。

プラグイン名 説明
c001.dat QQデータベースから、認証情報、チャットログ、連絡先リストなどの情報を窃取します
c002.dat Tencent QQのKernelUtil.dllとCommon.dllのいくつかの関数をQQ.exeプロセスのメモリーにフックし、ダイレクトメッセージやグループメッセージの傍受、データベースへのSQLクエリを可能にします
c003.dat いくつかのAPIをフックします
  • CoCreateInstance
  • waveInOpen
  • waveInClose
  • waveInAddBuffer
  • waveOutOpen
  • waveOutWrite
  • waveOutClose
これにより、プラグインはいくつかのプロセスで音声の会話を傍受できるようになります

表6. グループ「c」のプラグインの説明

バックドア

バックドアの基本的な目的である、コントローラーとの通信と収集したデータの外部への送信については、ここまでにいくつかの詳細をお伝えしました。コントローラーとの多くの通信は、license.datという暗号化されていないファイルにプラグインの設定データを書き込み、ロードされたプラグインから関数を呼び出すことで行われています。表7に、このバックドアが最も多く使用するコマンドを示します。

コマンドID 説明
0x04 リバースシェルを作成またはクローズして、入出力を処理します
0x17 コントローラーが指定したパスを使用してファイルを移動します
0x1C インプラントをアンインストールします
0x1E 指定したディレクトリからファイル情報を収集したり、ドライブ情報を収集したりします
0x28 コントローラーによって指定されたPIDを使用して、プロセスを終了します

表7. このバックドアが使用するいくつかのコマンドの説明

プラグイングループ「a」と「b」

バックドアコンポーネントには、ディスクに書き込まれ、バックドアに基本的なスパイ機能と情報収集機能を追加する、独自の埋め込みプラグインDLL(表8を参照)が含まれています。

プラグイン名 説明
a010.dat インストールされているソフトウェアの情報をレジストリから収集します
b010.dat スクリーンショットを取得します
b011.dat 基本的なキーロガー

表8. バックドアに埋め込まれたプラグイングループ「a」と「b」の説明

結論

ESET社は、中国、日本、英国の個人および企業に対してサイバースパイ活動を行っているサイバー攻撃組織をBlackwoodと命名し、その攻撃手法と能力を分析しました。Blackwoodが採用している独自のインプラントであるNSPX30は、ESET社がProject Woodと命名した2005年に見つかった小規模なバックドアから進化を続けています。
2005年のProject Woodインプラントは、実装されている手法から、マルウェア開発の経験を有する開発者が作成したと考えられます。そのため、このバックドアのさらに前の起源について、まだ多くのことがわかっていない可能性があります。

IOC(セキュリティ侵害の痕跡)

ファイル

SHA-1 ファイル名 ESETの検出名 説明
625BEF5BD68F75624887D732538B7B01E3507234 minibrowser_shell.dll Win32/Agent.AFYI NSPX30の最初のドロッパー
43622B9573413E17985B3A95CBE18CFE01FADF42 comx3.dll Win32/Agent.AFYH インストーラーのローダー
240055AA125BD31BF5BA23D6C30133C5121147A5 msnsp.dll Win32/Agent.AFYH 永続的なローダー
308616371B9FF5830DFFC740318FD6BA4260D032 mshlp.dll Win32/Agent.AFYH オーケストレーターのローダー
796D05F299F11F1D78FBBB3F6E1F497BC3325164 comx3.dll.txt Win32/TrojanDropper.Agent.SWR 復号されたインストーラー
82295E138E89F37DD0E51B1723775CBE33D26475 WIN.cfg Win32/Agent.AFYI 復号されたオーケストレーター
44F50A81DEBF68F4183EAEBC08A2A4CD6033DD91 msfmtkl.dat Win32/Agent.VKT 復号されたバックドア
DB6AEC90367203CAAC9D9321FDE2A7F2FE2A0FB6 c001.dat Win32/Agent.AFYI 認証情報とデータ窃取用のプラグイン
9D74FE1862AABAE67F9F2127E32B6EFA1BC592E9 c002.dat Win32/Agent.AFYI Tencent QQのメッセージを傍受するためのプラグイン
8296A8E41272767D80DF694152B9C26B607D26EE c003.dat Win32/Agent.AFYI 音声取得用のプラグイン
8936BD9A615DD859E868448CABCD2C6A72888952 a010.dat Win32/Agent.VKT 情報収集のためのプラグイン
AF85D79BC16B691F842964938C9619FFD1810C30 b010.dat Win32/Agent.VKT キーロガープラグイン
ACD6CD486A260F84584C9FF7409331C65D4A2F4A b010.dat Win32/agent.VKT スクリーンキャプチャ用のプラグイン

ネットワーク

IP ドメイン ホスティングプロバイダー 最初に確認された日付 詳細
104.193.88[.]123 www.baidu[.]com Beijing Baidu Netcom Science and Technology Co., Ltd. 2017-08-04 オーケストレーターとバックドアコンポーネントがペイロードをダウンロードするためにアクセスする正規のWebサイト
HTTPのGETリクエストはAitMによって傍受されます
183.134.93[.]171 dl_dir.qq[.]com IRT-CHINANET-ZJ 2021-10-17 正規のソフトウェアによってドロッパーがダウンロードされるURLの一部

MITRE ATT&CKの技術

この表は、MITRE ATT&CKフレームワークのバージョン14を使用して作成されています。

手法 ID 名前 説明
リソース開発 T1587.001 能力の開発マルウェア BlackwoodはNSPX30という名前の独自のインプラントを使用します
初期アクセス T1195 サプライチェーンの侵害 正規のソフトウェアアップデート要求がAitM(中間者攻撃)によって傍受されるときに、NSPX30のドロッパーコンポーネントが配信されます
実行 T1059.001 コマンドおよびスクリプトインタプリタ:PowerShell NSPX30のインストーラーコンポーネントは、PowerShellを使用してWindows Defenderが検体を送信する機能を無効にし、ローダーコンポーネントの除外ルールを追加します
T1059.003 コマンドおよびスクリプトインタプリタ:Windowsコマンドシェル NSPX30のインストーラーは、UACをバイパスするときに、cmd.exeを使用する場合があります
NSPX30のバックドアはリバースシェルを作成できます
T1059.005 コマンドおよびスクリプトインタプリタ:Visual Basic NSPX30のインストーラーは、UACをバイパスするときにVBScriptを使用する場合があります
T1106 ネイティブAPI NSPX30のインストーラーとバックドアは、CreateProcessA/W APIを使用してコンポーネントを実行します
常駐化 T1574 実行フローのハイジャック: NSPX30のローダーは、Winsock起動時に自動的にプロセスにロードされます
権限昇格 T1546 イベントトリガーによる実行 NSPX30のインストーラーは、レジストリを変更し、メディアボタンのキー値(APPCOMMAND_LAUNCH_APP2)をローダーの実行ファイルを指定するように変更します
T1548.002 権限制御機構の悪用:ユーザーアカウント制御のバイパス NSPX30のインストーラーは、3つの手法でUACバイパスを試行します
防衛機能の回避 T1140 ファイルや情報の難読化解除と復号 NSPX30のインストーラー、オーケストレーター、バックドア、設定ファイルは、RC4、またはビット演算命令と算術命令の組み合わせで復号されます
T1562.001 防御策の妨害:ツールの無効化または変更 NSPX30のインストーラーは、Windows Defenderが検体を送信する機能を無効にし、ローダーコンポーネントの除外ルールを追加します
NSPX30のオーケストレーターは、セキュリティソフトウェアのデータベースを改変して、ローダーのコンポーネントを許可できます
対象となるソフトウェアには以下が含まれます
Tencent PC Manager、360 Safeguard、360 Antivirus、Kingsoft AntiVirus
T1070.004 攻撃の痕跡の削除:ファイルの削除 NSPX30は、自身が使用するファイルを削除できます
T1070.009 攻撃の痕跡の削除:常駐化の中止 NSPX30は、常駐化を中止できます
T1202 間接的なコマンド実行 NSPX30のインストーラーは、WindowsコマンドシェルからPowerShellを実行します
T1036.005 なりすまし:正規のモジュールの名前や場所を模倣する NSPX30のコンポーネントは、正規のフォルダ%PROGRAMDATA%Intelに保存されます
T1112 レジストリの変更 NSPX30のインストーラーは、UACをバイパスするときにレジストリを変更する場合があります
T1027 ファイルや情報の難読化 NSPX30のコンポーネントは暗号化されてディスクに保存されます
T1027.009 ファイルや情報の難読化:ペイロードの埋め込み NSPX30のドロッパーにはコンポーネントが埋め込まれています
NSPX30のローダーにはシェルコードが埋め込まれています
T1218.011 システムバイナリプロキシの実行:Rundll32 NSPX30のインストーラーは、rundll32.exeからロードできます
認証情報へのアクセス T1557 AiTM攻撃(Adversary-in-the-Middle) NSPX30インプラントは、AitM攻撃を介して配信されます
T1555 パスワードの保管場所からの認証情報の窃取 NSPX30のプラグインc001.datは、Tencent QQデータベースから認証情報を窃取できます
探査 T1083 ファイルおよびディレクトリの検出 NSPX30のバックドアとプラグインはファイルのリストを表示できます
T1012 クエリレジストリ NSPX30のプラグインa010.datは、インストールされたソフトウェアのさまざまな情報をレジストリから収集します
T1518 ソフトウェアの検出 NSPX30のプラグインa010.datはレジストリから情報を収集します
T1082 システム情報の検出 NSPX30のバックドアはシステム情報を収集します
T1016 システムネットワーク構成の検出 NSPX30のバックドアは、さまざまなネットワークアダプターの情報を収集します
T1049 システムネットワーク接続の検出 NSPX30のバックドアは、ネットワークアダプターの情報を収集します
T1033 システムオーナー/ユーザーの検出 NSPX30のバックドアは、システムやユーザー情報を収集します
収集 T1056.001 入力情報の取得:キーロギング NSPX30のプラグインb011.datは、基本的な機能を実装するキーロガーです
T1560.002 収集したデータのアーカイブ:ライブラリ経由のアーカイブ NSPX30プラグインは収集した情報を、zlibを使用して圧縮します
T1123 オーディオキャプチャ NSPX30のプラグインc003.datは、音声入力と音声出力のストリームを記録します
T1119 自動収集 NSPX30のオーケストレーターとバックドアは、自動的にプラグインを起動して情報を収集します
T1074.001 データの保存:ローカルデータの保存 NSPX30のプラグインは、データを外部にする前にローカルファイルに保存します
T1113 画面キャプチャ NSPX30のプラグインb010.datは、スクリーンショットを取得します
C&C(コマンド&コントロール) T1071.001 アプリケーションレイヤープロトコル:Webプロトコル NSPX30のオーケストレーターとバックドアコンポーネントは、HTTPを使用してペイロードをダウンロードします
T1071.004 アプリケーションレイヤープロトコル:DNS NSPX30のバックドアは、DNSを使用して、収集した情報を外部に送信します
T1132.001 データのエンコーディング:標準エンコーディング 外部に送信するために収集されたデータはzlibで圧縮されます
T1001 データの難読化 NSPX30のバックドアはC&Cとの通信を暗号化します
T1095 アプリケーションレイヤープロトコル以外の手法: NSPX30のバックドアは、C&Cとの通信にUDPを使用します
T1090 プロキシ NSPX30とC&Cサーバーとの通信は、不明なコンポーネントによってプロキシされています
情報の外部への送信 T1020 ファイル送信の自動化 NSPX30のバックドアは、情報を収集すると、自動的に外部に送信します
T1030 データ転送サイズの制限 NSPX30のバックドアは、収集したデータを固定のパケットサイズで、DNSクエリを経由して外部に送信します
T1048.003 代替プロトコルを使用したデータの外部への送信:既存のC2プロトコルではなく、暗号化されていないネットワークトラフィックを介したデータの外部への送信 NSPX30のバックドアは、DNSを使用して、収集した情報を外部に送信します
この記事をシェア

サイバー攻撃のセキュリティ対策に

サイバーセキュリティ
情報局の最新情報を
チェック!