ESET/サイバーセキュリティ情報局

中間者攻撃で配信される高度なマルウェア「NSPX30」とは?

  • この記事をはてなブックマークに追加
  • 本文印刷

本記事はキヤノンマーケティングジャパンが提供する「サイバーセキュリティ情報局」に掲載された「AiTM(中間者)攻撃を通じて配信される高度なマルウェア、NSPX30インプラントとは」を再編集したものです。

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

 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の被害者の地理的分布

NSPX30の進化

 NSPX30インプラントの調査を進めたところ、ESET社がProject Woodと命名した簡易なバックドアまで遡ることができました。Project Woodの最も古い検体は2005年にコンパイルされており、いくつかのインプラントを作成するためのコードベースとして使用されていると考えられます。このようなインプラントの1つは、NSPX30のベースとなっており、2008年にその作成者によってDCMと名付けられました。

 図2に、ESET社が収集した検体とESET社のテレメトリ、および公開されている文書の分析に基づく、これらのマルウェア開発の時系列を示します。しかし、このサイバー攻撃者による約20年間の開発と悪意のある活動の詳細は明らかになっておらず、ここに記載しているイベントやデータは不完全なものです。

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

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

Project Wood

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

 バックドアには、図3に示すように、繰り返し使用されているミューテックスの名前から、「Project Wood」と命名しました。

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

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

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

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

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

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

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

図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作戦の検体でも同じミューテックス名が繰り返し使用されている

DCM(別名:Dark Specter)

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

図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. 確認された攻撃実行チェーンの図

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

URL 最初に確認された日付 IPアドレス ASN ダウンローダー
http://dl_dir.qq[.]com/
invc/qq/minibrowser.zip
MainFuncOften.dl 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リクエスト

 この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クエリ。収集された情報はプレーンテキストで追加される。

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

図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によって開始される実行チェーン

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

 図13は、このコンポーネントが実行されるときの主な処理を示しています。

図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名前空間プロバイダーをインストールするコード

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

ステージ2

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

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

オーケストレーター

 図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インプラントは、実装されている手法から、マルウェア開発の経験を有する開発者が作成したと考えられます。そのため、このバックドアのさらに前の起源について、まだ多くのことがわかっていない可能性があります。