淡い灰青色の背景に、細いダークスレートとシアンの線画で描かれた、生成された抽象的な技術イラスト。左側にはサーバーのような板状ユニットの高い積み重ねがあり、その側面の三つの区画が開いて内部から冷たいシアンの光で照らされている。中央の開口部から一本の琥珀色のフィラメントが機械を離れ、かすかな設計図風のグリッドを横断しながら、小さな四角いノードの点線状の軌跡を残す。その軌跡は枠の外まで続き、右側の細い閉じたリングが、不在の人間によるチェックポイントを標示する。基部に沿って小さな破線の境界が走り、上端を細かい目盛りが横切る。テキスト、数字、顔、手、ロボット、ソフトウェアのロゴ、組織のマークは一切表示されていない。OrcaRouterのロゴが右下隅に合成されている。
AI Safety Incidents

Hermes Agentがタイ財務省に対して無人で実行され、そのログはオンラインに残されていた

著者

Magnus Corvin

公開日

最新モデル · 20すべてのモデルを見る →
ベンチマーク:Artificial Analysis · 毎日更新
すべての記事に戻る

2026年7月9日から13日にかけて、脅威インテリジェンス企業のHunt.ioと研究者Bob Diachenkoは、タイ財務省に対する侵入に関連する香港のステージングサーバー上で、3つの公開ディレクトリを発見した。585ファイル、470MBに及ぶ資料には、次のログが含まれていた——Hermes Agent(Nous Researchによるオープンソースのエージェントフレームワーク)のログであり、これは「YOLO」モード、すなわち人間による承認ステップを無効にして実行されていた。無人のまま、LinPEASによる権限チェックを実行し、SUIDバイナリを列挙し、財務省次官事務局(Office of the Permanent Secretary for Finance)に属するウェブルートを再帰的にクロールして、2012年に遡る人事記録を分類・記録していた。同じホストにはさらに、攻撃者がHadesと呼んだ、これまで報告されていなかったGoインプラントも搭載されていた。Hunt.ioはファイルが持ち出された証拠を発見できず、侵入者が最初にどうやって内部に入り込んだのかも特定できなかった。2026年7月30日付で信頼度Aに格付けされた完全なエントリは、AIインシデントアーカイブ内の、本シリーズにおける他のエージェント駆動型侵入記録の隣に位置している。

ディレクトリは43.246.208[.]207上にあり、これは香港のAS132883(TOPIDC)に属するホストだった。Hunt.ioのAttack Captureがそれらを7月9日、10日、13日にアーカイブした。内訳は145件、次に62件、次に378件で、合計585件だった。このIPにはShadowPadのコントローラーとしての記録された履歴があり、Hunt.ioが調査した時点ではポート21083でVShellのコマンドアンドコントロールサーバーを稼働させていた。研究者らは、VShellが当該省に対して使用されたことを「確認も否定もする証拠はない」と述べている。このアーカイブは記録の日付を2026年7月30日としている。その背景にある調査はより古く、Hunt.ioが7日間の開示期間を経て7月23日に公開し、The Recordが7月27日に、Dark Readingが7月28日に報じた。

Self-authored HTML card headed 'The server, in three captures', kicker 'What Hunt.io archived', title 'Three open directories on one Hong Kong host', subtitle '43.246.208[.]207, AS132883 (TOPIDC), Hong Kong. The dates are the directory labels Hunt.io uses.' Three rows: 9 July, 145 files, exploit and CVE code, mailer scripts, MOF ICT session material and Hermes logs; 10 July, 62 files, Go-compiled executables and ELF binaries including Hades; 13 July, 378 files, additional exploit code and files identifying MOF internal access. A band below reads 'Total: 585 files, 470 MB. Ports 80, 8443 and 8080. The host also ran a VShell C2 server on port 21083; Hunt.io could not confirm whether VShell was used against the ministry.' A footer cites Hunt.io, 23 July 2026. The OrcaRouter logo sits bottom-right.

エージェントの5件の通話ログ

7月9日のディレクトリ内には、hermes-results という名前のフォルダーがあり、5つのファイルが入っていました。各ファイル名は call_00_ に続いてランダムな文字列が付いたものでした。Hunt.io はこれらを、エージェント自身の呼び出しの記録だと説明し、それぞれが何を返したかを要約しています。1つ目は、省庁のホストに対する特権昇格評価とカーネル脆弱性スキャンです。2つ目は2回目の LinPEAS 実行で、サービスを列挙しています。3つ目は find を使って SUID および SGID バイナリを列挙しています。4つ目はコンテナとファイルシステムを一覧表示し、ブロークンパイプエラーが点在しています。Hunt.io はこれを、エージェントがサーバーで処理できる以上の出力を生成したためだと解釈しています。5つ目が最も重要なものです。常務次官のオフィスに接続された Web ルートの再帰的検索で、そこには2012年まで遡る標準的な Office 文書、業績評価フォーム、人事記録が含まれていました。

そのどれも、キーボードを操作する人間を必要としなかった。Hunt.ioによると、運用者はHermes Agentを「無人、つまりYOLOモードで実行し、危険と見なされる可能性のあるコマンドの承認プロンプトを回避していた」という。2026年2月にリリースされたこのフレームワークは、常駐デーモンとして動作し、セッションをまたいで記憶を保持する。YOLOは、プロンプトをなくすオプションだ。Hunt.ioは、このプロジェクトが2026年7月までにGitHubスター14万件を超えていたと報告している。Cloud Security Allianceによるログ分析では、エージェントが各結果を評価し、次のステップを選択する様子が説明されている——外から見ると、人間のアナリストが進める方法に似ているが、機械のペースで行われるワークフローだ。

Hunt.ioは、ログが何を立証するかについて慎重な姿勢を取っている。Webルートのクロールでは、エージェントが人事関連ファイルに到達していることが示されているが、それらが外部に持ち出されていることは示されていない。報告書には「ファイルが外部に持ち出された証拠はない」とある。サーバー全体についての要約は、ファイルが「進行中の侵入を描写している:ツール類が配置され、内部アクセスが拡大し、データがネットワーク外に出た形跡はないものの、オペレーターがウェブコンテンツを明らかに目録化していた」というものだ。

Self-authored HTML card headed 'The agent's five call logs', kicker 'hermes-results, captured 9 July', title 'What the agent was asked to do, and what came back', subtitle 'The five call logs and their result files, as listed by Hunt.io. Descriptions are the report's.' Five rows, each giving an index, a call_00_ filename ending .txt, and Hunt.io's description: call_00_EE5atKwDPZemr8R1wc1f4466.txt, a primary privilege-escalation assessment and kernel vulnerability scanning against a MOF host; call_00_RMhbTh6e79QZi9R0zWgA9333.txt, a second LinPEAS run enumerating services; call_00_r8hfBizhxfPf4OhtO6z65472.txt, SUID and SGID binary enumeration using the find command; call_00_Q6iateZ5qnlWMMgAtWtd1047.txt, a container and filesystem listing with broken-pipe errors showing more output than the server could carry; call_00_Hu9InX5bIcCp55iwJTzn6181.txt, a recursive search of the web root connected to the Permanent Secretary office, holding Office files, performance evaluation forms and personnel records back to 2012. A band below reads 'YOLO mode removed the approval prompts. The custom linpeas.sh also checked CVE-2026-43503 (DirtyClone), CVE-2026-31431 (Copy Fail) and CVE-2026-43284 / CVE-2026-43500 (Dirty Frag). No evidence the enumerated files were exfiltrated.' A footer cites Hunt.io, 23 July 2026. The OrcaRouter logo sits bottom-right.

人間が依然として行っていた作業

報告書で最も有用なのは分業だ。エージェントは汎用的で反復可能な偵察——スクリプト化でき、標的に関する知識を必要としない作業——を担った。オペレーターは、エージェントには知り得ない情報を提供した。すなわち、省内の各部局やプログラムの略称、内部ホスト名、非ルーティングアドレス、特定のサービス向けに書かれたスクリプトから作ったパスワードワードリストである。Cloud Security Alliance の調査ノート(7月26日公表)も同じ点を指摘している。人間が「標的固有の工作技術」を保持し、エージェントが拡張可能な部分を実行したのだ。

最も明確な例はHadoopの攻撃チェーンです。7月13日のディレクトリには、Apache HiveServer2を標的とした十数個のファイルが含まれており、その中にはhive_rce_py2.pyもありました。これは内部ノードのポート10000に対して生のソケットを開き、SASL PLAINで認証を行います。HiveServer2のデフォルト認証モードはNONEであり、あらゆる認証情報を検証せずに受け入れますが、このスクリプトはまさにその点に依存するように書かれていました。その後、HiveCmd.jarとしてパッケージ化された悪意のあるJavaユーザー定義関数を登録し、Hive SQLを通じてシェルコマンドを渡し、2つ目の内部ノードのポート50070からWebHDFS経由で出力を取得します。別のAmbariペイロードは内部HDFS DataNodeをホスト名で指定しており、データではなく管理レイヤーを狙っています。

ツールキットの残りの部分も、同じ準備のパターンに従っています。gf_ 接頭辞が付いた Node.js スクリプトは、SOCKS5 プロキシ経由でヘッドレス Chrome インスタンスを操作し、内部の GlassFish 管理コンソールに到達して既定の認証情報でログインし、WAR ファイルをデプロイします。Hunt.io は、どちらの WAR がデプロイされたのかを確認できませんでした。ジャーナルキャッシュファイルを装った PHP Web シェルが、省の Web サーバー上の /storage/Counter/nine/.journald-cache.php に配置されていました。Perl スクリプト mail4.pl は、抽出されたトークンから構築されたハードコードのメールボックスアドレスとパスワードを使って、省のメール基盤に対する SMTP 認証を試行します。mail_test.py と mail3.py という名前の Python スクリプトも同様のことを行います。テキストファイル alf_cookie.txt には、省内部のアドレス向けの Alfresco セッション関連情報が保持されています。どちらのディレクトリにもまた、CVE-2021-3156(sudo のヒープオーバーフロー)、CVE-2021-4034(PwnKit)、CVE-2017-7269(IIS 6.0 WebDAV のオーバーフロー)のエクスプロイトコードが、シェルコードや省のイントラネットを指すパスとともに含まれています。

ここに目新しい手口は何もない。ログから新たに分かるのは、列挙が、人間のオペレーターがコマンド間に残すような休止を挟まず、継続的に実行されていたという点だ。Cloud Security Allianceのメモは、キーボード操作のテンポに基づく活動を前提に構築された検知は、これにはあまり適合しないと論じている。

Hades、ステージング済みだが稼働は未確認

7月10日のディレクトリは配信サーバーだった。62個のコンパイル済みGoバイナリ(Windows PEおよびLinux ELF)が置かれ、その多くは正規のシステムプロセスにちなんで命名されていた。Windowsではctfmon、csrss、conhost、MicrosoftEdgeUpdate、Linuxではkworker、multipathd、accounts-daemon。2つはプロジェクト名を冠しており、hades_linux_amd64とhades_windows_amd64。Hunt.ioは各プラットフォームから1サンプルずつを分析し、同一のコードベース由来であることを突き止めた。残りの60個は同じサイズ範囲とビルド特性を共有しているが、個別には調査されていない。

静的解析と動的解析により、静的Webアセットに偽装したHTTPSコマンド・アンド・コントロールが判明しました。チェックインには /assets/app.min.js、タスキングには /assets/vendor.js、アップロードには /assets/main.js を使用します。ペイロードは、ビルドごとにハードコードされた鍵で AES-256-GCM により暗号化されます。環境変数にはキル日 HADES_KILLDATE と稼働時間スケジュールが含まれ、インプラントは設定された時間帯の外では休眠します。Windows ビルドはレジストリの Run キーとスケジュールされたタスクを通じて永続化し、ハロウイングされた svchost.exe へのリフレクティブローディングによってメモリ内で実行され、GDI 経由でスクリーンショットを取得し、SOCKS プロキシを提供します。Linux ビルドは cron ジョブ、標準 PTY、シェルコード実行を使用します。両方とも、チャンク化された再開可能なファイル転送をサポートします。

分析した2つのサンプルは、それぞれ別のコントローラーを指し示していた。Windows実行ファイル {{1}}dwm_33b7.exe{{/1}} はポート443上のステージングサーバーへビーコンを送信し、Linuxバイナリ {{2}}multipathd_04d0{{/2}} はポート12443上の 202.181.27[.]115 を指し示していた — このホストは共通の証明書フィンガープリントを通じて特定された。Hunt.ioは、この命名が偶然によるものかもしれないと指摘している。ギリシャ神話では、ヘルメスが魂をハデスへ導く。

どの情報源も立証していないのは、Hadesが省内部で稼働していたことだ。Hunt.ioは運用者自身のサーバーからバイナリを回収した。Cloud Security Allianceの注記は、回収されたいかなる成果物もHadesが省のマシンに到達したことを示していないと述べている。またDark Readingは、その調査ではどこに配備されたかを特定していないと報じている。このインプラントは運用者が構築しステージングした能力であり、省のホストに常駐していると確認されたものではない。

その背後にいたのは誰だったのか?

Hunt.ioはグループを特定しなかった。同社は、低から中程度の確信度で、運用者は中国語話者であるか、中国語に極めて精通していると、4つの指標に基づいて評価した。ホストがShadowPadのコントローラーであった経歴、香港のインフラ、雷神を意味する中国語「Leishen」を含むHermesウェブインターフェースのパスワード、そして中国のインターネット資産偵察サービスFOFAのAPIキーである。環境スナップショットには、SSHクライアント103.97.0[.]57がAS133073(HK Kwaifong Group Limited)上でステージングサーバーに接続していることも記録されている。そのいずれも国家や特定のクラスターへの帰属を意味するものではなく、Hunt.ioもそう述べている。

侵入そのものについて、依然として不明な点が2つある。1つは初期アクセス経路だ。「初期アクセスの手法は依然として不明である」と報告書は結論づけている。もう1つは範囲だ。Hunt.ioは、有効なセッションCookie、設置されたウェブシェル、内部ネットワークへのアクセスが、攻撃者が「MOFネットワーク内の複数のシステムを侵害できた」ことを示していると述べる一方、Cookieの値だけではログインを証明しないとも警告している。Laravelは訪問者なら誰にでもセッションおよびCSRFトークンを発行するためだ。この侵害は、ホストの確認済み一覧ではなく、アーティファクトから構築された評価である。

タイが次にしたこと

Hunt.ioは、同社とDiachenkoが2026年7月15日にタイの国家CERTおよび国家サイバーセキュリティ庁(National Cyber Security Agency)に通知し、両機関が同日に受領を確認したと述べている。その後、公開は7日間の期間にわたって保留された。本記事のために確認した報道の中には、当該省庁に言及したThaiCERTの公開アドバイザリは見つからなかった。

7月27日、The Recordが今回の侵入を報じた当日、タイの国家サイバーセキュリティ委員会は2026年の第2回会合を開き、AIエージェントの脅威に対処する措置を承認した。当局の説明によると、委員会はThaiCERTに対し、AIエージェントの脅威を監視・分析・追跡し、リスクのある機関に警告し、インシデント対応とデジタルフォレンジックを支援するよう指示した。また、部門別CERTには検査と報告の強化を課し、インターネットに接続されたシステムの点検、特権アカウントの管理、ネットワーク分割、バックアップ、復旧テストを含む proactive な措置を承認した。さらに、組織内でのAIエージェントの安全で透明性があり監査可能な利用に関するガイドラインと、ThaiCERTおよび部門別CERTによるAIエージェント攻撃を模擬した合同演習を指示した。この投稿は財務省やHunt.ioの名を挙げておらず、The Recordは、当局者が「Hunt.ioの調査に直接言及しなかった」と指摘しつつ、これらの措置は明らかにこの脅威を狙ったものだと判断した。会合と今回の侵入との間に因果関係があるとするのは推測であり、当局の声明ではない。

国家サイバーセキュリティ委員会のテーラウット・ウィッタヤコーン副事務総長は会合後、タイは「AIの恩恵を完全に受けられるようにしつつ、関連するリスクを体系的に管理できなければならない」と述べた、とThe Recordは報じた。財務省自身は沈黙を保った。The Recordは7月27日、同省がこの事件を公に認めておらず、コメント要請にも応じなかったと報じ、Dark Readingは翌日、政府はコメントしていないと報じた。7月30日付のアーカイブの項目にも同じことが記されている。

何が確立され、何が評価され、何が欠けているのか

アーカイブはこの項目を、実際に発生したインシデント、重大度クリティカル、信頼度A、異論なし、実際の被害が記録済み、種別タグWEAPONとして分類しており、ランドマーク(画期的事例)には指定していない。信頼度の等級は文書化の状況を表しており、その文書化は異例なほど直接的だ。Hunt.ioがアーカイブしたのは被害者のログではなく、攻撃運用者のステージングサーバーである。ただし独立した検証については述べておらず、その点で記録は薄い。

• 確認済み:7月9日から13日の間に1台のホスト上で3つのオープンディレクトリが確認され、585ファイル、470MBを保持していた。LinPEAS、SUID列挙、コンテナ一覧、Webルートのクロールを示すHermes呼び出しログ5件。YOLOモードで実行中のHermes Agent。Hadesを含むGoバイナリ62件。HiveServer2スクリプトとそのUDF。Webシェルのパス。認証情報およびセッション素材。外部流出の証拠はなし。7月15日のHunt.ioからThaiCERTおよびNCSAへの通知は、同日に受領確認された。

• 評価:攻撃主体は中国語話者であると、低~中程度の確信度で判断。複数の省庁のシステムが侵害された。7月27日のNCSAの措置はこの侵入への対応であった。

• 欠落:初期アクセス経路、オペレーターが到達したホストまたはレコードの数、ファイルがネットワーク外に漏れたかどうか、省庁による確認、ThaiCERTの公開アドバイザリ、独立したフォレンジック調査。

ある二次報道は一次報告より踏み込んでいた。iThomeの7月27日付中国語セキュリティダイジェストは、同じHunt.ioの調査を要約し、侵入者はインターネットに公開された省庁サーバー上のPHPウェブシェルを通じて侵入したと述べている。また、環境には少なくとも47台のホスト、54.9TBの政府財務データ、14のMicrosoft SQLデータベース、生体認証システム、リモートデスクトップゲートウェイが含まれていたとしている。これらの数値はいずれもHunt.ioの報告には現れておらず、同報告は初期アクセス手法は不明のままだとしている。アーカイブの記録は同報告に従っている。より大きな数値を見た読者は、それを一次情報源によって裏付けられていないものとして扱うべきだ。

独立した報道は存在するが、独立した証拠は存在しない。The Record(7月27日)、Dark Reading(7月28日)、Cloud Security Alliance(7月26日)はいずれもHunt.ioのデータに依拠しており、独自のフォレンジック調査、被害者へのアクセス、サンプル分析について述べたものは一つもない。Dark Readingはさらに、Hunt.ioの調査責任者Esteban Borgesへのインタビューを加えている。同氏によれば、同社は持ち出し(エクスフィルトレーション)の証拠を発見しておらず、また同氏が目にしてきたAIを多用する攻撃活動は、痕跡を少なくするどころか、より多く残すという。The RecordはNCSAの声明を加えている。CSAの注記は分析を加え、さらに有用な注意点を一つ添えている。すなわち、回収されたいかなる成果物も、省庁のマシン上にHadesが存在したことを示すものはない、ということだ。こうした追加を除けば、報道におけるインシデントの事実はすべて同一の一次報告書に由来する。

Self-authored HTML card titled 'Established, assessed, missing', badged 'Evidence check', subtitle 'One primary investigation, secondary reporting that relays it, and no independent forensics.' Three columns. The first, headed 'Established' and badged 'On the record', lists: three open directories on 43.246.208[.]207 from 9 to 13 July, 585 files and 470 MB; five Hermes call logs showing LinPEAS, SUID enumeration, container listing and a web-root crawl including personnel records to 2012; Hermes Agent in YOLO mode; 62 Go binaries including Hades; HiveServer2 default NONE authentication and a HiveCmd.jar UDF; web shell at /storage/Counter/nine/.journald-cache.php; credential and session material; no evidence of exfiltration; ThaiCERT and NCSA notified 15 July. The second, headed 'Assessed' and badged 'Not proven', lists: a Chinese-speaking operator at low-to-medium confidence, from ShadowPad history, Hong Kong infrastructure, the 'Leishen' password and a FOFA key; compromise of multiple ministry systems, inferred from cookies, shells and internal access; that the 27 July NCSA measures respond to this intrusion, which the agency does not say. The third, headed 'Missing' and badged 'Open', lists: the initial access path; host and record counts; whether any file left the network; any ministry statement; any public ThaiCERT advisory; independent forensic examination. A footer lists the sources: Hunt.io, 23 July 2026; Cloud Security Alliance, 26 July 2026; The Record, 27 July 2026; NCSA Thailand, 27 July 2026; Dark Reading, 28 July 2026. The OrcaRouter logo sits bottom-right.

守備側に伝えられたこと

Hunt.io の推奨事項は、明確な修正が必要な部分に対処しています。HiveServer2 の認証モードを確認し、UDF ブロックリストを適用する。システムキャッシュを模倣する先頭ドット付きの名前を持つ PHP ファイルがないか、Web ルートを再帰的に監査する。sudo を 1.9.5p2 以降にパッチ適用し、polkit のバージョンを CVE-2021-4034 に対して確認する。残存する IIS 6.0 インスタンスでは WebDAV を無効化するか、プラットフォームから移行する。Web サーバープロセスが 10000 や 50070 などの内部ポートへの外向き接続を開いた場合に警告する。GlassFish 管理コンソールの既定の認証情報を変更し、信頼できるネットワークのみにアクセスを制限する。エージェントフレームワークを運用している組織向けに、Cloud Security Alliance はここで重要だったはずの制御を追加している。無人モードまたは YOLO 相当のモードがどこかで有効になっていないかを監査し、記録されたリスク受容の理由がない限り無効にする。

Hunt.ioはまた、このインシデントを、他の露出したパネルを発見する方法にも変えた。同社によると、HermesのWebインターフェースは特徴的なServerヘッダーとBasic認証レルムを返し、HermesWebUIのバナー検索では前月に約5,900件のイベントが返された。エージェントの/hermes-results/パスを含むオープンディレクトリの検索では575件のヒットが返された。これらは公開時点における単一ベンダーのデータセットからの件数であり、被害者数ではない。また、パネルの出現や消失に伴って変動する。有用なのは指標の部分だ。露出したエージェントパネルとその出力ディレクトリは発見可能であり、この作戦が明るみに出たのもそれが理由である。

アーカイブはこの項目を画期的な案件としては位置づけておらず、技術記録もその抑制的な扱いを裏付けている。LinPEAS、Hive UDFの悪用、デフォルト認証情報、2017年の公開エクスプロイトはいずれも古いツールであり、新しいのは人員配置だ。一人のエージェントが継続的に列挙を行い、一人のオペレーターが標的に固有の準備を進める。ログが記録しているのは、この二段構えの体制である。記録できないのは影響だ。オペレーターが省の内部どこまで到達したのか、人事ファイルに何が含まれていたのか、何かがネットワーク外へ持ち出されたのか。省または独立した調査官がこれらの問いに答えるまで、記録が描くのは、費用がいまだ不明の、詳細に記録された侵入である。