Blackwoodと命名した中国と関わりのある新しいAPTグループが使用する、高度なマルウェアNSPX30についてESET社の研究者が解説します。
本記事はESET Japanが提供する「ESETブログ」に掲載された「中国が関与する新しいAPTグループによる、高度な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 Panda、LuoYu、そしてESET社がLittleBearとして追跡している別のサイバー攻撃組織による攻撃を捕捉しています。
このシステムは、これらの3つのグループが利用しているツールキットではない、不審なファイルを検出しました。ESET社は、このファイルを起点としてNSPX30と命名したインプラントの調査を進めたところ、その起源が2005年に遡ることが明らかになりました。
ESET社のテレメトリ(監視データ)によると、このインプラントは限られた一部のシステムで検出されています。被害に遭った個人や組織は以下の通りです。
- 中国と日本にいる個人(詳細は不明)
- 英国の有名な公立大学のネットワークとつながりのある中国語を話す人物(詳細は不明)
- 中国の大手製造・貿易会社
- エンジニアリングおよび製造業の日本企業の中国オフィス
また、攻撃者はアクセスが途絶えた場合、システムの侵害を再び試みることも確認されています。
図1に、ESET社のテレメトリによるBlackwoodの標的の地理的分布を示します。
NSPX30の進化
NSPX30インプラントの調査を進めたところ、ESET社がProject Woodと命名した簡易なバックドアまで遡ることができました。Project Woodの最も古い検体は2005年にコンパイルされており、いくつかのインプラントを作成するためのコードベースとして使用されていると考えられます。このようなインプラントの1つは、NSPX30のベースとなっており、2008年にその作成者によってDCMと名付けられました。
図2に、ESET社が収集した検体とESET社のテレメトリ、および公開されている文書の分析に基づく、これらのマルウェア開発の時系列を示します。しかし、このサイバー攻撃者による約20年間の開発と悪意のある活動の詳細は明らかになっておらず、ここに記載しているイベントやデータは不完全なものです。
次のセクションでは、Project Wood、DCM、およびNSPX30に関する調査結果の一部について説明します。
Project Wood
ローダーとバックドアの2つのコンポーネントのPEヘッダーに存在するタイムスタンプから、これらのインプラントの進化の起点は、2005年1月9日にコンパイルされた小規模なバックドアであることが分かりました。
このバックドアは、システムやネットワーク情報の収集、キー入力の記録、スクリーンショットの取得などの機能を実装しています。
バックドアには、図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年にリリースされています。
3つ目のデータは、PEリッチヘッダー(図5)の有効なメタデータです。このメタデータは、検体のコンパイル日より前の1998年にリリースされたVisual Studio 6.0を使用してコンパイルされたことを示しています。
ESET社は、タイムスタンプ、リッチヘッダーメタデータ、およびUPXバージョンのすべてが攻撃者によって意図的に改変された可能性は低いと考えています。
公開されている文書
- 2011年9月にSANS Instituteが公開した技術文書には、実行した主体が不明で無名のバックドア(Project Wood)が、スピアフィッシングメールを通じて香港の政治家を標的にするために使用されたことが記載されています。
- 2014年10月、G DATAは「TooHash作戦」と命名したキャンペーンのレポートを公開し、その後、このキャンペーンがGelsemium APTグループによって実行されたことを報告しています。
G DATAが「DirectsX」と命名したルートキットは、DCMや後継のNSPX30に見られるいくつかの機能を備えたProject Woodバックドア(図6を参照)の亜種をロードし、サイバーセキュリティ製品のホワイトリストに自身を登録して、実行を許可します(詳細は後述の表4に記載)。
DCM(別名:Dark Specter)
初期のProject Woodはいくつかのプロジェクトのコードベースとなっています。その中の1つは、作成者によってDCMと呼ばれているインプラントです(図7を参照)。
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に示します。
表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 PandaやTheWizards)についてESET社が収集している情報や、BlackTechやCamaro Dragon(別名Mustang Panda)が利用しているルーターインプラントに関する最近の調査から、攻撃者は、おそらく標的ユーザーのネットワークにあるルーターやゲートウェイなどの脆弱なネットワークアプライアンスにネットワークインプラントを展開しているものと推測されます。
DNSを介したトラフィックのリダイレクトが確認されていないことから、展開されていると考えられるネットワークインプラントが、アップデートに関連する暗号化されていないHTTPトラフィックを傍受するときに、DLL、実行可能ファイル、またはDLLを含むZIPアーカイブの形態でNSPX30インプラントのドロッパーを返信している可能性があります。
NSPX30インプラントはC&Cインフラストラクチャを隠蔽するために、攻撃者がパケットを傍受する機能を使用していることを前に述べましたが、以下のサブセクションでは、この方法について説明します。
HTTPの傍受
バックドアをダウンロードするために、オーケストレーターは、Windows 98のInternet Explorerを装った特異なUser-Agentを使用して、Baidu(百度)のWebサイト(正規の中国の検索エンジンおよびソフトウェアプロバイダー)に対してHTTPリクエストを実行します(図9)。サーバーからの応答がファイルに保存され、そのファイルからバックドアコンポーネントが抽出されてメモリーにロードされます。
この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クエリを示しています。
最初のDNSクエリは、180.76.76[.]11:53(この記事を書いている時点では、DNSサービスを公開していないサーバー)に送信され、次のクエリが実行されるときに毎回、宛先IPアドレスが次のアドレスに変更されます(図11を参照)。
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をロードし、ディスクに複数のファイルを作成する実行チェーンを示しています。
このドロッパーはRsStub.exeを実行します。RsStub.exeは中国のマルウェア対策製品Rising Antivirusの正規のソフトウェアコンポーネントですが、悪意のあるcomx3.dllをサイドローディングするために悪用されています。
図13は、このコンポーネントが実行されるときの主な処理を示しています。
RsStub.exeが、ExitProcessを呼び出すと、正規のAPI関数コードではなく、シェルコードのローダー関数が実行されます。
このローダーは、comx3.dll.txtファイルからインストーラーDLLを復号します。次に、シェルコードがインストーラーDLLをメモリーにロードし、そのエントリポイントを呼び出します。
インストーラーDLL
このインストーラーは、オープンソースの実装から取り入れたUACバイパスの手法を使って、新しい権限昇格のプロセスを作成します。どちらのDLLを使用するかは、表3にあるように、いくつかの条件によって異なります。
主な条件 | 副次的な条件 | UACバイパスの手法 |
---|---|---|
rstray.exeという名前のプロセスが存在する |
|
AppKey18ShellExecuteから実行 |
|
SilentCleanup UACバイパス | |
|
CMSTPLUA COM UACバイパス | |
|
IARPUninstallStringLauncher UACバイパス | |
現在のプロセスが管理者グループのメンバーではない |
|
SilentCleanup UACバイパス |
|
CMSTPLUA COM UACバイパス | |
|
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を参照)。
これによってプロセスがWinsockを使用するたびに、DLLが自動的にロードされます。
最後に、インストーラーはローダーDLLmshlp.dllと暗号化されたオーケストレーターDLLWIN.cfgをC:¥ProgramData¥Windowsにドロップします。
ステージ2
このステージは、msnsp.dllの実行から始まります。図15は、ステージ2の一連のロード操作を示しています。
オーケストレーター
図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 | プラグイン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をフックします
|
表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を使用して、収集した情報を外部に送信します |