「(ロボットである)べきか、そうでないべきか」:ロシア国家支援のCOLDRIVERに帰属する新たなマルウェア

執筆者:Wesley Shields


はじめに 

COLDRIVERは、NGO、高名な政策アドバイザー、反体制派などの著名人物を標的にすることで知られるロシア国家支援の脅威グループであり、2025年5月に同グループのLOSTKEYSマルウェアが公表されると、迅速に作戦を切り替え、5日後には新たなマルウェア・ファミリーを運用に投入しました。COLDRIVERがこのマルウェアをどの程度の期間開発していたかは不明ですが、GTIGは公表以降、LOSTKEYSの単一の事例も観測していません。代わりにGTIGは、COLDRIVER(UNC4057、Star Blizzard、Callistoとしても知られる)に帰属させてきたこれまでのどのマルウェア・キャンペーンよりも、より攻撃的に使用されている新たなマルウェアを確認しています。

GTIGがCOLDRIVERに直接帰属させるこの新しいマルウェアは、発見以降複数回の反復を経ており、COLDRIVERの開発および運用テンポが急速に増加していることを示しています。これは、配信チェーンを介して結び付けられた関連マルウェア・ファミリーの集合体です。GTIGは、最近のZscalerのブログ投稿 で公開された感染チェーンの一部に関する詳細を踏まえつつ、感染チェーンおよび関連マルウェアについて、より広範な詳細を共有します。

マルウェア開発の概要 

この再ツール化は、カスタムCAPTCHAを装う更新版COLDCOPY「ClickFix」ルアーによって配信される、新しい悪意あるDLL「NOROBOT」から始まりました。これはCOLDRIVERによる従来のLOSTKEYS展開と類似していますが、旧来の多段階PowerShell手法ではなく、ユーザーにrundll32経由で悪意あるDLLを実行させることで感染を更新しています。

https://storage.googleapis.com/gweb-cloudblog-publish/images/coldriver-new-malware-fig1.max-1700x1700.jpg

図1:マルウェア開発の概要

NOROBOTの最初期バージョンは、YESROBOTとして追跡している扱いにくいPythonバックドアの展開につながりましたが、COLDRIVERはすぐにYESROBOTを放棄し、より柔軟で拡張性の高いPowerShellバックドア(MAYBEROBOTとして追跡)へと移行しました。

NOROBOTおよびその前段の感染チェーンは、継続的な進化の対象となってきました。最初は展開成功率を高めるために単純化され、その後、暗号鍵を分割することで複雑さが再導入されました。より複雑な配信チェーンへの回帰は、キャンペーン追跡の難易度を高めます。この継続的な開発は、高価値標的に対する情報収集を継続するため、配信メカニズムに対する検知システムを回避しようとする同グループの取り組みを浮き彫りにしています。

「ClickFix」とRundll32による配信

この新しいマルウェア感染チェーンには、3つの明確なコンポーネントが含まれており、以前にLOSTKEYSの配信で確認されたCOLDCOPY「ClickFix」ルアー(c4d0fba5aaafa40aef6836ed1414ae3eadc390e1969fdcb3b73c60fe7fb37897)の新しい亜種を介して配信されます。COLDCOPYの新亜種は、ユーザーにrundll32を用いてDLLをダウンロードして実行させようとしつつ、「あなたがロボットではないことを確認する」旨のテキストを含めることで、CAPTCHAに見せかけようとします。最初に観測されたDLLは「iamnotarobot.dll」という名称で、エクスポート名は「humanCheck」でした。いずれもページのCAPTCHAテーマに沿ったものであり、後続するマルウェアのROBOTをテーマにした命名規則の一部の着想源にもなりました。

https://storage.googleapis.com/gweb-cloudblog-publish/images/coldriver-new-malware-fig2.max-1600x1600.png

図2:COLDCOPYがユーザーを誘導してNOROBOTを実行させようとしている様子

NOROBOT

NOROBOTは、ZscalerによりBAITSWITCHとしても公表されており、2025年5月から9月にかけて定期的な開発が行われていることが観測されたDLLです。観測されたすべてのバージョンにおいて、NOROBOTの主目的は、ハードコードされたコマンド&コントロール(C2)アドレスから次段階を取得し、最終ペイロードに向けてシステムを準備することでした。最初期のNOROBOT(2e74f6bd9bf73131d3213399ed2f669ec5f75392de69edf8ce8196cd70eb6aee)は、鍵が複数コンポーネントに分割され、最終ペイロードを正常に復号するために特定の方法で再結合する必要がある暗号方式を使用していました。これは、ダウンロードされたコンポーネントのいずれかが欠けると最終ペイロードが正しく復号されないため、感染チェーンの再構築を困難にする目的で行われた可能性があります。分析を妨げようとするこの試みにもかかわらず、最初期のNOROBOTにはPython 3.8の完全なインストール一式を取得して展開する処理が含まれており、これは目立つ痕跡で、疑念を招きやすいものです。

このバージョンのNOROBOTが取得するファイルの詳細は以下のとおりです:

  • Windows向けPython 3.8インストールを含むSFX RAR

  • 暗号鍵の一部をレジストリに保存するコマンド

  • スケジュールタスクによる永続化

  • bitsadminを実行してlibsystemhealthcheck.pyというファイルを取得するコマンド

  • bitsadminを実行してlibcryptopydatasize.pyというファイルを取得するコマンド

bitsadminで取得される両ファイルは、inspectguarantee[.]orgから取得されます:

d7520e4f1c55ed1dcbdeba5c6e681e1d269d9b5a690636bf18bcdc5b294f3f8a

libsystemhealthcheck.py

52eb2b3df1e5e2a07ba4562b79eeb67679ac6f7f90190e72d3e6adcf5186401d

libcryptopydatasize.py

レジストリキーのコマンドは以下のとおりです:

reg add "HKEY_CURRENT_USER\SOFTWARE\Classes\.pietas" /v "ratio" /t REG_BINARY /d "f5e210ec114e1992b81ff89be58cfb2778005f734972239b9655b23fcee5593f19554d0a74dad52c67956781367b06e6" /f

永続化はスケジュールタスクで行われます:

powershell -c "
$s = New-Object -ComObject Schedule.Service;
$s.Connect();
$t = $s.NewTask(0);
$p = $t.principal;
$p.logontype = 3;
$p.RunLevel = 0;
$a = $t.Actions.Create(0);
$a.Path = \"$env:APPDATA\Python38-64\pythonw.exe\";
$a.Arguments = \"$env:APPDATA\Python38-64\Lib\libsystemhealthcheck.py\";
$a.WorkingDirectory = \"$env:APPDATA\Python38-64\";
$tr = $t.Triggers.Create(9);
$tr.userID = \"$env:computername\"+\"\\\"+\"$env:username\";
$tr.enabled = $true;
$s.GetFolder(\"\").RegisterTaskDefinition(\"System health check\", $t, 6, $null, $null, 0) | Out-Null;
"

libsystemhealthcheck.pyにはAES鍵の一部が含まれており、レジストリに保存された鍵と組み合わせてlibcryptopydatasize.pyを復号します。私たちはこれをYESROBOTと命名しました。

YESROBOT

復号されたYESROBOTは、HTTPSを使用してハードコードされたC2からコマンドを取得するPythonバックドアです。コマンドはハードコードされた鍵でAES暗号化されています。システム情報とユーザー名は、リクエストのUser-Agentヘッダーにエンコードされます。YESROBOTは最小限のバックドアであり、すべてのコマンドが有効なPythonであることを要求するため、ファイルのダウンロードと実行、ドキュメントの取得といった典型的な機能の実装がより煩雑になります。一般的なアプローチでは、バックドア側に取得・実行ロジックを含め、オペレーターはURLを送るだけで済むようにします。これによりYESROBOTは拡張や運用が難しく、YESROBOTの展開が場当たり的な選択だったことを示唆しています。GTIGが観測したYESROBOTの展開は、5月下旬の2週間の期間に2件のみで、その後、別のバックドアであるMAYBEROBOTに置き換えられました。これらの理由からGTIGは、YESROBOTはLOSTKEYSに関する当社の公表後の暫定的な措置として、急いで投入されたものだと評価しています。

https://storage.googleapis.com/gweb-cloudblog-publish/images/coldriver-new-malware-fig3.max-1600x1600.png

図3:YESROBOTのメインループ(Pythonコマンド実行のみに限定)

MAYBEROBOT

 2025年6月上旬、GTIGは、以前のバージョンから大幅に単純化されたNOROBOTの亜種(3b49904b68aedb6031318438ad2ff7be4bf9fd865339330495b177d5c4be69d1)を観測しました。このバージョンは単一のファイルを取得し、私たちが観測したところ、それは永続化のためのログオンスクリプトを設定する単一のコマンドでした。ログオンスクリプトはPowerShellコマンドで、次段階(私たちはMAYBEROBOTと呼称)をダウンロードして実行します。MAYBEROBOTはZscalerではSIMPLEFIXとしても知られています。

ログオンスクリプトが取得したファイルは、強く難読化されたPowerShellスクリプト(b60100729de2f468caf686638ad513fe28ce61590d2b0d8db85af9edc5da98f9)で、ハードコードされたC2と、3つのコマンドをサポートするカスタムプロトコルを使用します:

  1. 指定URLからダウンロードして実行

  2. cmd.exeを使用して指定コマンドを実行

  3. 指定されたPowerShellブロックを実行

いずれの場合も、別のパスでC2へ確認応答が送信され、コマンド2および3の場合は、出力が3つ目のパスへ送信されます。

GTIGは、MAYBEROBOTがYESROBOTの置き換えとして開発されたと評価しています。理由は、実行にPythonインストールを必要としないこと、そしてプロトコルが拡張可能で、標的システム上で目的を達成する際に攻撃者へより大きな柔軟性を与えるためです。柔軟性の向上は確かに達成されていますが、MAYBEROBOTも内蔵機能は最小限であり、YESROBOTと同様に、より複雑なコマンドはオペレーターが提供する必要がある点は注記に値します。

ROBOTたちは進化を続ける

GTIGが2025年6月から9月にかけて、関心のある標的にNOROBOTを配信しようとするCOLDRIVERの試みを監視・対応し続ける中で、COLDRIVERが開発テンポを上げていることを示す、NOROBOTおよびマルウェア実行チェーンの両方の変更を観測しました。GTIGは、単純さの度合いが異なる複数のNOROBOTバージョンを継続的に観測しています。NOROBOT亜種間で行われた具体的な変更は、高価値標的に対する情報収集を継続しつつ検知システムを回避しようとする同グループの粘り強い努力を浮き彫りにしています。しかし、NOROBOTダウンローダーを単純化したことで、COLDRIVERは意図せずGTIGが活動を追跡しやすくしてしまいました。 

GTIGが得たNOROBOTマルウェアの進化に関する洞察は、旧来のYESROBOTバックドアから、より新しいMAYBEROBOTバックドアへ移行しているという当社の観測とも一致しました。GTIGは、COLDRIVERが最終バックドアに変更を加えた理由としていくつかを想定しています。YESROBOTは機能するために完全なPythonインタープリターを必要とし、MAYBEROBOTと比べて検知を招きやすい可能性があること、またYESROBOTバックドアは拡張が容易ではなかったことです。 

MAYBEROBOTがこれらの作戦における最終バックドアとしてより一般的に観測されるようになるにつれ、そこに至るNOROBOT感染チェーンも進化を続けました。この期間を通じて、COLDRIVERはマルウェア感染チェーンを単純化し、インフラのローテーションやファイル命名規則、ファイル取得元のパスやその構築方法、エクスポート名の変更、DLL名の変更といった基本的な回避手法を実装しました。こうした小さな変更に加えて、COLDRIVERは、完全な感染チェーンを正しく再構築するために暗号鍵と中間ダウンローダー段階を収集する必要性を再導入しました。複雑さを戻すことは、活動の再構築をより困難にするため、作戦の運用セキュリティを高める可能性があります。ネットワーク防御側は、完全な攻撃チェーンを再構築するために複数のファイルと暗号鍵を収集する必要があります。一方、単純化されたNOROBOTチェーンでは、ログオンスクリプトのURLだけがあれば最終ペイロードを取得できます。

GTIGは、継続的な開発努力を示す複数のNOROBOTバージョンを観測していますが、最終バックドアであるMAYBEROBOTは変化していません。これは、COLDRIVERが配信メカニズムの検知回避に関心を持ちつつ、MAYBEROBOTは検知されにくいという高い確信を持っていることを示しています。

フィッシングか、マルウェアか?

COLDRIVERが、従来よく知られるより伝統的なフィッシングではなくマルウェアを展開する理由は現時点では不明ですが、特定の標的に対してマルウェアを再ツール化して展開するために、相当な開発労力を費やしていることは明らかです。1つの仮説として、COLDRIVERは、フィッシングによって以前に侵害し、すでにメールや連絡先を窃取している可能性のある重要標的に対してNOROBOTとMAYBEROBOTを展開し、今度はデバイス上の情報から直接、追加のインテリジェンス価値を獲得しようとしているのかもしれません。

COLDRIVERがこのチェーンの開発と展開を続ける限り、情報収集要件を満たすために、高価値標的に対する攻撃的な展開を継続すると私たちは考えています。

コミュニティを守る

脅威アクターと戦う取り組みの一環として、私たちは研究成果を用いてGoogle製品の安全性とセキュリティを向上させています。発見次第、特定された悪意あるウェブサイト、ドメイン、ファイルはすべてSafe Browsingに追加され、ユーザーをさらなる悪用から保護します。また、政府支援の攻撃者に関するアラートを、対象となるGmailおよびWorkspaceユーザーに送信し、活動を通知するとともに、潜在的な標的に対してChromeの強化保護機能(Enhanced Safe Browsing)を有効化し、すべてのデバイスを最新の状態に保つよう促しています。

私たちは、認識を高めるためにセキュリティコミュニティと、これらの活動の標的となった可能性のある企業や個人に対して、調査結果を共有することにコミットしています。戦術と手法の理解が深まることで、脅威ハンティング能力が向上し、業界全体でより強固なユーザー保護につながることを期待しています。

侵害指標(IOC)およびYARAルールは本投稿に含まれており、GTIコレクションおよびルールパックとしても利用可能です。

侵害指標(IOC)

以下の侵害指標は、登録ユーザー向けの Google Threat Intelligence(GTI)コレクション で利用できます。

IOC

説明

viewerdoconline[.]com

COLDCOPYドメイン

documentsec[.]com

COLDCOPYドメイン

documentsec[.]online

COLDCOPYドメイン

onstorageline[.]com

COLDCOPYドメイン

applicationformsubmit[.]me

COLDCOPYドメイン

oxwoocat[.]org

COLDCOPYドメイン

ned-granting-opportunities[.]com

COLDCOPYドメイン

blintepeeste[.]org

COLDCOPYドメイン

preentootmist[.]org

COLDCOPYドメイン

c4d0fba5aaafa40aef6836ed1414ae3eadc390e1969fdcb3b73c60fe7fb37897

COLDCOPY「ClickFix」ルアー

inspectguarantee[.]org

NOROBOT配信ドメイン

captchanom[.]top

NOROBOT配信ドメイン

bce2a7165ceead4e3601e311c72743e0059ec2cd734ce7acf5cc9f7d8795ba0f

YESROBOT

system-healthadv[.]com

YESROBOT C2

85.239.52[.]32

YESROBOT C2

2e74f6bd9bf73131d3213399ed2f669ec5f75392de69edf8ce8196cd70eb6aee

NOROBOT – iamnotarobot.dll – 2025年5月

3b49904b68aedb6031318438ad2ff7be4bf9fd865339330495b177d5c4be69d1

NOROBOT – checkme.dll – 2025年6月

e9c8f6a7dba6e84a7226af89e988ae5e4364e2ff2973c72e14277c0f1462109b

NOROBOT – checkme.dll – 2025年6月

b60100729de2f468caf686638ad513fe28ce61590d2b0d8db85af9edc5da98f9

難読化されたMAYBEROBOT

southprovesolutions[.]com

MAYBEROBOT C2

f2da013157c09aec9ceba1d4ac1472ed049833bc878a23bc82fe7eacbad399f4

NOROBOT – machinerie.dll – 暗号とダウンローダーの再導入

87138f63974a8ccbbf5840c31165f1a4bf92a954bacccfbf1e7e5525d750aa48

NOROBOT – machinerie.dll – 2025年8月下旬の最新サンプル

YARAルール

rule G_APT_Downloader_NOROBOT_2 {
  meta:
    author = "Google Threat Intelligence"
    description = "DLL which pulls down and executes next stages"
  strings:
    $path = "/konfiguration12/" wide
    $file0 = "arbeiter" wide
    $file1 = "schlange" wide
    $file2 = "gesundheitA" wide
    $file3 = "gesundheitB" wide
    $new_file0 = "/reglage/avec" wide
    $new_file1 = "/erreur" wide
  condition:
    filesize <= 1MB and
    (
      $path or
      all of ($file*) or
      all of ($new_file*) or
      (
        for any s in ("checkme.dll", "iamnotarobot.dll", "machinerie.dll"): (pe.dll_name == s) and
        for any s in ("humanCheck", "verifyme"): (pe.exports(s))
      )
    )
}
rule G_APT_BACKDOOR_YESROBOT_1 {
  meta:
    author = "Google Threat Intelligence Group (GTIG)"
  strings:
    $s0 = "return f'Mozilla/5.0 {base64.b64encode(str(get_machine_name()).encode()).decode()} {base64.b64encode(str(get_username()).encode()).decode()} {uuid} {get_windows_version()} {get_machine_locale()}'"
    $s1 = "'User-Agent': obtainUA(),"
    $s2 = "url = f\"https://{target}/connect\""
    $s3 = "print(f'{target} is not availible')"
    $s4 = "tgtIp = check_targets(tgtList)"
    $s5 = "cmd_url = f'https://{tgtIp}/command'"
    $s6 = "print('There is no availible servers...')"
  condition:
    4 of them
}
rule G_APT_BACKDOOR_MAYBEROBOT_1 {
  meta:
    author = "Google Threat Intelligence Group (GTIG)"
  strings:
    $replace = "-replace '\\n', ';' -replace '[^\\x20-\\x7E]', '' -replace '(?i)x[0-9A-Fa-f]{4}', '' -split \"\\n\""
  condition:
    all of them
}
投稿先

翻訳元: https://cloud.google.com/blog/topics/threat-intelligence/new-malware-russia-coldriver/

ソース: cloud.google.com