はじめに
2024年以降、Mandiantはブラジルの金融サービス、小売、eコマース企業を狙った一連の侵害事案を調査してきました。Google Threat Intelligence Group(GTIG)はこの活動を、ブラジルの決済システムや銀行ソフトウェアを操作して不正送金を行う、金銭目的の脅威アクター「BREEZE COMET」(旧称UNC5669)として追跡しています。この活動は、公に報告されているPlump SpiderおよびSHADOW-AETHER-064の活動と重なっています。本ブログでは、BREEZE COMETの戦術とツールキットの詳細を解説するとともに、組織がこの活発かつ進化を続ける脅威から身を守るための緩和策と検知手法をご紹介します。
BREEZE COMETの戦術は時とともに進化しており、現在ではカスタマイズしたマルウェア群と、侵害した信頼済みのWebサイトを組み合わせて初期アクセス・コマンド&コントロール(C2)を確立し、金融ソフトウェアや決済APIとやり取りしています。BREEZE COMETの運用インフラからは、ラテンアメリカやアフリカの他の国々へインフラの展開範囲を拡大する意図もうかがえます。さらに、BREEZE COMETがマルウェア開発を支援する目的で生成AI(人工知能)を利用している証拠も確認しており、これにより今後、その活動の規模・速度・巧妙さがさらに増す可能性があります。
BREEZE COMET、ブラジルの金融テクノロジーを標的に
BREEZE COMETの攻撃は、Pix、STR、Boletoといった銀行ソフトウェア・API・決済システムを通じて取引を行う権限を持つ組織を標的としています。対象には典型的に、銀行、決済処理業者、小売業者、取引所、フィンテック企業、銀行ソフトウェアプロバイダーが含まれます。
不正送金という目的を達成するため、BREEZE COMETは以下を維持する必要があります。
-
このアクセス権を持つ主体を通じた、ブラジル国内金融決済網(Rede Nacional do Setor Financeiro、RSFN)へのアクセス。
-
Pix、STR(ブラジル準備金振替システム)、あるいは資金を保有する組織の名義で最小限の制約で実行できるあらゆる取引リスナーに対し、認証済みの取引指示ペイロードを送信できるmTLS認証情報へのアクセス。
-
標的組織のActive Directoryやクラウド環境における複数アカウントへの永続的なアクセス。
-
組織の送金処理手順、ネットワーク制御、フィンテック連携、不正防止システムに関する理解。
これらの要件を満たすため、BREEZE COMETは複数の侵害済み環境を同時並行で運用する形へと進化を遂げ、偵察・横方向移動・永続化・データ持ち出しといった活動を自動化するカスタムC2マルウェアを作成しています。
初期侵害と足場の確立
BREEZE COMETはさまざまな初期アクセス手法を用いています。初期の侵害事案では、Mandiantはこの脅威アクターがパスワードスプレー攻撃を行うとともに、ITサポート部門を装った音声通話を利用して、被害者にAnyDeskなどのリモート監視・管理(RMM)ツールをインストールさせる手口を確認しました。Axurもボイスフィッシングの利用を裏付けており、同グループが標的組織の内部関係者を勧誘しようと試みていた可能性も指摘しています。
2025年半ば、GTIGはBREEZE COMETがブラジルの小規模な自治体のWebサイトを侵害し、そこをRMMツール、正規の納税書類や領収書を装った情報窃取マルウェア(例: ComprovantePDF.exe)、あるいは自動起動用ショートカットの改変によって永続化するよう設定されたXWORMなどのバックドアを設置するための踏み台として悪用しているのを確認しました。XWORMはサイバー犯罪フォーラムで広く販売されているバックドアで、流出版や「クラック」版も出回っています。BREEZE COMETはその後、こうした侵害済みの自治体Webサイトを、初期アクセスのためのソーシャルエンジニアリング攻撃やC2エンドポイントとして利用しました。侵害済みの信頼されたインフラを利用することで、脅威アクターはネットワークのドメインレピュテーションフィルターによる検知を回避できました。GTIGはまた、ナイジェリア、パラグアイ、ガーナ、ベネズエラの自治体ドメインでもBREEZE COMETが同様の手口を再現しているのを確認しており、標的とする対象が拡大している可能性を示唆しています。侵害された自治体ドメインの分析からは、BREEZE COMETが複数の組織を狙った攻撃において、XWORMペイロードのホスティング・配布に同一の踏み台インフラを繰り返し利用していたことが判明しています。
2025年には、標的環境への足場を確立するため、BREEZE COMETが不正なハードウェアデバイスを小売店舗のネットワークに直接接続する手口を初めて確認しました。この初期ネットワークアクセスを起点に、BREEZE COMETは内部システムへ横方向に移動した後、Netcatユーティリティとカスタムスクリプトをダウンロードし、外部の公開ディレクトリから後続の侵入後活動用フレームワークを取得していました。Trend Microの報告によれば、同グループはJBoss ASサーバーの脆弱性を悪用して初期アクセスを獲得したケースもあるとのことです。
権限昇格と内部偵察
BREEZE COMETは、Impacket、ADRecon、ADVipscanといった公開されている偵察ツールに加え、カスタムマルウェアも利用しており、監視が行き届いていない環境で活動することが多い傾向にあります。これらのツールは多くの場合、GitHubリポジトリからダウンロードされ、防御回避のためPowerShell経由でメモリ上で実行されていることが確認されています。
この脅威アクターは、カスタムのLDAPブルートフォースツールREALBREEZEを展開しました。従来型のActive Directory侵害にとどまらず、BREEZE COMETは権限を昇格させるために開発環境やクラウド環境を特に標的としています。同グループは継続的インテグレーション・継続的デリバリー(CI/CD)環境を積極的に調べ上げ、ハードコードされたパイプライン認証情報、API(アプリケーションプログラミングインターフェース)キー、権限の高いクラウドアクセストークンを窃取しています。
BREEZE COMETはカスタムスクリプトを使い、コア銀行システムへの認証に必要なmTLS認証情報や管理者証明書を特定するため、内部のホストファイルや環境変数を検索していました。確認された検索語には、boleto、cnab、remessa、webhook.*pix、instant.*paymentなどが含まれます。
横方向への移動
BREEZE COMETは標準的なプロトコルを悪用してネットワーク内を移動し、乗っ取ったサービスアカウントを使って不正なリモートデスクトッププロトコル(RDP)セッションを開始したり、SMBネットワークファイル共有経由でコマンドを実行したりしています。BREEZE COMETは、利用可能なSMB経路を洗い出すことを目的として、内部サブネット全体にネットワークスキャンツールを実行していたことも確認されています。
セグメント化された金融ネットワークを移動し、厳格な内部ファイアウォールを回避するため、BREEZE COMETは専用のルーティングマルウェアCOBALTSPINを展開します。Rustで書かれたCOBALTSPINは、軽量で検知回避性の高いネットワークトンネラーとして機能し、金融API基盤との通信および永続的なネットワークアクセスの維持に使われます。WebSocket接続上にリバースSOCKS5プロキシを確立することで、COBALTSPINはC2と内部の標的の間で安全にネットワークトラフィックを双方向に中継し、検知を招きかねない組み込みの永続化メカニズムを必要とすることなく、境界ファイアウォールを直接突破して横方向移動を可能にしています。
持続的な足場の維持:独自開発C2フレームワークによる侵害の統制
2024年、BREEZE COMETは標的環境へのアクセスを維持するために市販のRMMツールに依存していました。2025年になると、BREEZE COMETは悪意あるKubernetesポッドも展開して永続性を確保し、クラウドのシークレット情報を窃取した上で、それを一般公開のメモ帳サイト(dontpad[.]comなど)へ持ち出すようになりました。
2025年から2026年にかけて、Mandiantは標的環境内で冗長なアクセス経路を確立し、足場を拡大するためにBREEZE COMETが開発した複数のバックドアを特定しました。
-
LIGHTPAINT: このカスタムJavaベースのバックドアは、SoftEtherなどの正規VPNをインストールし、自動的に永続化するよう設定することに特化して設計されています。このアクセスを保護するため、GTIGはBREEZE COMETが展開したVPNマネージャーからのすべてのトラフィックを許可する受信方向のWindows Defenderファイアウォールルールをプログラムによって追加し、その後、接続の痕跡を消し去るために
Windows Networking Vpn Plugin Platformのイベントログを消去していたことを確認しています。 -
MILDFROST: JVMプロセス空間内に隠れて動作する受動型のJava JARバックドアであるMILDFROSTは、
DnsCommandBeacon.classなどのクラスを用いて、低速で秘匿性の高いDNSトンネルを確立します。また、フォールバック用のC2としても機能し、委任されたサブドメインへ動的に問い合わせを行うことで、指示を受け取ったりC++実行ファイルの最新版を取得したりします。 -
KICKPLATE: 補助ペイロードを継続的に配信し、ホストレベルでの永続化を確保するため、BREEZE COMETはKICKPLATEを使用します。このカスタムのNimベースバックドアは、Windows Update Health Toolsを装います。SOCKS5トンネラーを制御するコマンドを実行し、レジストリの起動キーを更新し、Windowsサービスを密かに改変します。同グループはさらに、ネイティブのスケジュールタスク機能(SYSTEM権限で実行される
schtasks.exe)や、ユーザーのスタートアップフォルダ内での悪意あるショートカット(.lnk)の改変を組み合わせてKICKPLATEを補完しています。 -
BOATBEAM: この冗長構成に最後の層を加えるものとして、BREEZE COMETはBOATBEAMを展開します。これはポート443で偽のIIS HTTPSサーバーを起動するGolang製バックドアです。このマルウェアは正規のWebサーバーを装うことでバックドア通信を隠蔽し、特定のセッションクッキーを受信した場合にのみC2機能を有効化します。
これらの永続化メカニズムを確実に維持するため、BREEZE COMETはエンドポイントの防御機構を積極的に無効化しています。テレメトリからは、脅威アクターが直接PowerShellコマンド(Set-MpPreference -DisableRealtimeMonitoring $true)を実行し、侵害したホスト全体でWindows Defenderのリアルタイム監視を無効化することで、自らのマルウェア群が確実に動作し続けるようにしていたことが確認されています。
さらにMandiantは、BREEZE COMETがネットワーク偵察、認証情報の検証、大規模展開、被害者ごとのピボット、データ抽出用のカスタムスクリプト作成を高速化するために大規模言語モデル(LLM)を利用していた証拠を確認しました。回収されたBREEZE COMETのスクリプトを分析したところ、これらのツールは高度にカスタマイズされ、実用性も備えている一方で、人間らしい癖が見られず、ループを展開したコード構造、冗長な説明コメント、定型化された実行ヘッダーに大きく依存していることが判明しています。
#!/bin/bash
# RODA DENTRO DO 10.0.9.9 - DIRETO NA REDE INTERNA
echo "###############################################"
echo "### STEP 1: ENUM ALL LINUX (SSH PORT 22) ###"
echo "###############################################"
# Scan SSH em todos os ranges conhecidos
echo "=== SCANNING SSH PORTS ==="
> /tmp/ssh_open.txt
図1: 冗長なコメントが見られるスクリプトの抜粋
目的の達成:大規模な不正送金
Mandiantが分析した鑑識証拠から、BREEZE COMETがCOBALTSPINと侵害した特権アカウントを利用してコア金融アプリケーションにアクセスしていたことが判明しています。このアクセスを確立してから24〜48時間以内に、脅威アクターは2回にわたって数百件規模の不正送金を実行しました。これは顧客からの報告および第三者による鑑識分析に基づくものです。
その後、BREEZE COMETは横方向移動、権限昇格、金融ソフトウェアや決済システムに関連するAPIとのやり取りの痕跡を隠すため、侵害したホスト全体にわたってイベントログを消去しました。攻撃者はまた、侵害中に自ら作成したディレクトリも削除していました。
今後の見通しと影響
2024年以降、BREEZE COMETはブラジルの金融システムやソフトウェアを操作する自らの活動の複雑さと有効性を着実に高めており、少なくとも1件、数万米ドル規模の資産を窃取する強奪に成功しています。本分析は、特にブラジルにおける金融サービス、フィンテック、小売、政府機関がBREEZE COMETを追跡し、それに対する防御を講じる一助となることを目的としています。
ラテンアメリカのサイバー犯罪エコシステムはこれまで、クライアント側での大量の小売不正取引によって特徴づけられてきましたが、BREEZE COMETの一連の攻撃キャンペーンは注目すべき転換を示しており、この地域における今後の金銭目的の脅威に対するモデルケースとなる可能性があります。日和見的な小売銀行不正から、コアとなる金融決済スイッチや即時決済インフラへの直接的な侵入へと移行したことは、標的の変化という点だけでなく、脅威アクターの能力の高さという点でも注目に値します。
BREEZE COMETは、脅威アクターが自らのキャンペーンの速度・規模・巧妙さを高めるために生成AIをいかに実運用に組み込んでいるかを示す好例です。LLMを活用してオーダーメイドの偵察スクリプトを生成し、認証情報を検証し、展開ワークフローをその場で自動化することで、このアクターは開発サイクルを短縮しています。この自動化はまた、複数環境にまたがる同時多発的な攻撃を調整する上で必要とされる運用面のハードルを下げてもいます。最後に、AIが生成したツール群と、独自開発の多言語C2アーキテクチャを組み合わせて運用している点は、アクターが技術的な参入障壁を下げつつ全体的な能力を高められることを示しています。カスタム開発されたRust製・Nim製・Go製のバックドアとAIによって高速化された運用スクリプトを組み合わせた多層的なエコシステムへの発展は、BREEZE COMETの技術的能力が明確に成熟してきていることを物語っています。
脅威グループが定型的な攻撃手法を効率化するためにLLMの活用を強めるにつれ、防御側は敵対者の対応時間がさらに短縮されることや、相互に連携した金融エコシステムへの圧力が高まることを見越しておく必要があります。
対策と強化策
アプリケーション制御と未承認のリモート管理(RMM)ツールのブロック
-
アプリケーション制御(Windows WDAC、macOS Gatekeeper/MDM、LinuxのfapolicydなどA)を適用し、ユーザーが書き込み可能なディレクトリ(Windowsの%APPDATA%、macOSの~/Downloads、Linuxの/tmpや/var/tmpなど)での実行をブロックする。
-
Linuxホストをパーティション分割し、/tmpと/homeをnoexecフラグ付きでマウントする。
-
ソフトウェアインベントリを監査し、ポータブル型RMMの実行や未承認のシステムサービス/デーモン登録を検知した際にアラートを出す。
-
IT サポートを装ったソーシャルエンジニアリング手口についてユーザーを教育する。
ネットワークアクセス制御と拠点の物理的セキュリティ強化
-
支店・店舗の物理的なイーサネットスイッチポート全体に802.1Xネットワークアクセス制御(NAC)を導入し、不正なハードウェアデバイスがIP(インターネットプロトコル)アドレスを取得したり内部サブネット上で通信したりすることを防止する。
-
未使用のスイッチポートを無効化し、重要なネットワーク接続箇所ではポートセキュリティ(MACアドレス制限など)を適用する。
-
配線室への物理的なアクセスを制限し、公共エリアに面したジャックを保護する。
Active Directoryと認証情報の強化
-
管理用ユーティリティ(ntdsutil.exe、vssadmin.exeなど)の使用を制限し、ボリュームシャドウコピーの作成・削除を検知した際にアラートを出す。
-
PowerShellの制約付き言語モード(CLM)、スクリプトブロックログ記録(イベントID 4104)、AMSI(Antimalware Scan Interface)を有効化し、偵察スクリプトのメモリ上での実行を検知する。
-
VPNやSaaS(Software-as-a-Service)を含むすべての外部ポータルにおいて、フィッシング耐性のある多要素認証(MFA)とアカウントロックアウト制御を義務付ける。
ディープパケットインスペクションと送信トラフィック制御
-
ドメインレピュテーションや.govトップレベルドメイン(TLD)の許可リストに頼るのではなく、外部向けWebトラフィックに対してSSL/TLS復号とディープパケットインスペクション(DPI)を実施する。
-
不要な送信ポート・プロトコル(送信方向のICMP(Internet Control Message Protocol)など)をブロックし、ChiselやGSocketなどのトンネリングツールの利用を制限する。
-
ネットワークをセグメント化し、ワークステーションとサーバー間でのSMB(ポート445)およびRDP(ポート3389)の横方向トラフィックをブロックする。
Kubernetesとクラウドワークロードの分離
-
サービスアカウントに対して最小権限の原則に基づく厳格なKubernetesロールベースアクセス制御(RBAC)を適用する。
-
OPA GatekeeperやKyvernoなどの動的アドミッションコントローラーおよびネイティブのPod Security Admission(PSA)を利用し、特権コンテナをブロックする。
-
送信方向のネットワークポリシーを適用し、ノードやポッドが未承認の公開プラットフォームにアクセスすることをブロックする。
シークレット管理と金融システムのマイクロセグメンテーション
-
アクセスログ記録機能を備えた一元管理型のシークレットマネージャー(HashiCorp Vaultなど)の利用を義務付け、コード内の平文キーを排除する。
-
金融ワークロードに対し、ID(アイデンティティ)ベース/レイヤー7でのマイクロセグメンテーションを実施する。
-
管理アクセスを、特権アクセス管理(PAM)を経由する専用の踏み台ホストのみに限定する。
侵害指標(IOC)
ファイル指標
|
指標 |
備考 |
|
3b22605244dbace8f0c07c2c599f88c4b831bb07e9998b869a5da2759d27ceec |
COBALTSPIN |
|
2214907e696bad85bde1d90c943ef66e413d7a5c6d7596ced25b74441200439a |
REALBREEZE |
|
c0db6ddd6222d02ad7490399d33c61ded0076f0037409dc8498924458646d78a |
MILDFROST |
|
6d4012e0dd3b56a3e52857734fa0d582cdf3c56f0e5decc8005c882d1d1c6ceb |
BOATBEAM |
|
f139b4ca15feffb7a6633ec1a431c5c604b397576b56b5c863ae8fe4fa14db4f |
KICKPLATE |
|
51fdd83b3737add7f3832bd0ad0b56863c0a8f7cf9bcc16fd787d1ae4b403ce6 |
XWORM |
|
d2aa40cc53b40c6e76ac0677c4a54387b3f27ee94c85d9b2c3a3d66aeef92a66 |
XWORM |
|
447e3a131e62bd33b1297739a7b959a92358a97f58554469044636a3c4f244e8 |
XWORM |
表1: ファイル指標
ネットワーク指標
|
指標 |
備考 |
|
|
データ持ち出しに使用されたペーストサイト |
|
|
侵害されたマルウェア踏み台ドメイン |
|
|
侵害されたマルウェア踏み台ドメイン |
|
|
侵害されたマルウェア踏み台ドメイン |
|
|
侵害されたマルウェア踏み台ドメイン |
|
|
侵害されたマルウェア踏み台ドメイン |
|
|
侵害されたマルウェア踏み台ドメイン |
|
|
侵害されたマルウェア踏み台ドメイン |
|
|
侵害されたマルウェア踏み台ドメイン |
|
|
侵害されたマルウェア踏み台ドメイン |
|
|
侵害されたマルウェア踏み台ドメイン |
|
|
侵害されたマルウェア踏み台ドメイン |
|
|
侵害されたマルウェア踏み台ドメイン |
|
|
侵害されたマルウェア踏み台ドメイン |
|
|
侵害されたマルウェア踏み台ドメイン |
|
|
侵害されたマルウェア踏み台ドメイン |
|
|
侵害されたマルウェア踏み台ドメイン |
|
|
侵害されたマルウェア踏み台ドメイン |
|
|
侵害されたマルウェア踏み台ドメイン |
|
|
侵害されたマルウェア踏み台ドメイン |
表2: ネットワーク指標
検知
Google Security Operations(SecOps)
Google SecOpsをご利用の顧客は、「Mandiant Hunting Rules」ルールパックの下で、これらの広範なカテゴリのルールやその他多数にアクセスできます。本ブログ記事で取り上げた活動は、Google SecOps上で以下のルール名により検知されます。
-
「Network DNS Connections To Pastebin」
-
「Powershell Downloadstring Method With Suspicious Arguments」
-
「Powershell Loading Net Assembly」
YARAルール
rule M_Utility_REALBREEZE_2 {
meta:
author = "Google Threat Intelligence Group"
strings:
$s1 = "IP/REDE" wide
$s2 = "SENHA" wide
$s3 = "U\x00S\x00U\x00\xc1\x00R\x00I\x00O\x00:"
$s4 = "Arquivo de Texto (*.txt)|*.txt" wide
$s5 = "get_SamAccountName"
$s6 = "get_txtHostname"
condition:
uint16(0) == 0x5A4D
and all of them
}
rule G_Tunneler_COBALTSPIN_1
{
meta:
author = "Google Threat Intelligence Group"
strings:
$p00_0 = {488985[4]72??4c8b47??4c8b6f??488985[4]eb??4989f04989c5488b85}
$p00_1 = {4d8bae[4]4d85ed4c897d??897d??4c8975??89b5[4]74??498bbe[4]4d89ee}
condition:
uint16(0) == 0x5A4D and uint32(uint32(0x3C)) == 0x00004550 and
(
($p00_0 in (560000..600000) and $p00_1 in (1500000..1600000))
)
}
rule G_Backdoor_BOATBEAM_1
{
meta:
author = "Google Threat Intelligence Group"
strings:
$p00_0 = {4d89d84889ce488bbc24[4]e9[4]0f82[4]4c89ac24[4]4c89e74d29ec4c896424}
$p00_1 = {e8[4]498903498973??498953??4d8943??488942??488957??4889f8488b4c24}
condition:
uint16(0) == 0x5A4D and uint32(uint32(0x3C)) == 0x00004550 and
(
($p00_0 in (1500000..1600000) and $p00_1 in (2700000..2800000))
)
}
rule G_Backdoor_MILDFROST_1
{
meta:
author = "Google Threat Intelligence Group"
strings:
$s1 = "sc tcp ok" fullword
$s2 = "fl comando vazio" fullword
$s3 = "noop" fullword
$s4 = "wait:" fullword
$s5 = "shell:" fullword
$s6 = "exec:" fullword
$s7 = "upload," fullword
$s8 = "dl|" fullword
$s9 = "tc|" fullword
condition:
uint16(0)==0x5a4d and 7 of them
}