ハッカーがAIエージェントを使い、インターネットに公開されていたアプリケーションのエンドポイントから、24時間足らずでサーバーの完全な管理者権限を掌握しました。この侵入では数百のコマンドが実行され、認証情報の窃取やWindowsの権限昇格が行われましたが、新たなマルウェアやゼロデイ脆弱性は使われていません。
Cybersecurityadvisory service
研究者のAustin Ritchie氏とDaxton Wirth氏は、大規模言語モデル(LLM)を搭載したエージェントが攻撃の大部分を実行したと、高い確度で評価しています。
最も有力な根拠は、悪意のあるアプリケーションジョブを送信してきたIPアドレスと同じ場所でホストされていた、稼働中のCairnオーケストレーション用ダッシュボードです。
AIエージェントとGodPotatoエクスプロイトを悪用する攻撃
Cairnは、複数ステップにわたるAIエージェントのタスクを調整するための、正規のオープンソースプラットフォームです。今回の攻撃は、Spring Batchを使用するApache Tomcatアプリケーションの、インターネットに公開されたジョブ送信機能から始まりました。
このエンドポイントは認証なしでタスク定義を受け付けていました。そのため攻撃者は、アプリケーションのJava環境で利用可能なJavaScriptエンジン「Nashorn」を呼び出すことができました。
悪意のあるコードは、まず既存のアプリケーションプロセス内で、そのアカウントの権限により実行されました。子プロセスは生成されないため、プロセスベースの検知では把握しにくい状態でした。

攻撃者はWebシェルを設置せず、意図的に例外を発生させ、返されるエラーメッセージを通じてコマンドの実行結果を取得していました。
出力容量に制限があったため、情報は1,800バイト単位の固定サイズで取り出されていました。連番のジョブ識別子でファイルのオフセットとアップロード位置を追跡し、数百回に及ぶリクエストにわたって実行状態を保持していました。
このアプリケーションレベルのコマンドチャネルを通じて、攻撃者は偵察、認証情報の探索、その後の攻撃を進めました。アプリケーションの設定ファイルを読み取ったところ、SQL Serverのsysadmin権限を持つ平文の認証情報が見つかりました。
攻撃者はxp_cmdshellを有効化し、データベースサービスのアカウントでOSコマンドを実行しました。さらに、権限昇格に使えるSeImpersonatePrivilegeを特定しました。
続いて、PrintSpooferとGodPotatoを配置しました。いずれも公開されているユーティリティで、権限の偽装(impersonation)を悪用して、Windowsで最高権限のローカルセキュリティアカウントであるSYSTEMを取得します。
Securityincident response
両ツールはBase64でエンコードされた断片として送り込まれ、侵害されたホスト上で再構築されました。ファイル権限のエラーが繰り返し発生して最初の手法が行き詰まると、攻撃者はツールを切り替え、SYSTEM権限の取得に成功しました。
その後、攻撃者はSAM、SYSTEM、SECURITYの各レジストリハイブを保存しました。これにより、ローカルのパスワードハッシュやその他の保存された認証情報をオフラインで抽出できます。さらにローカル管理者アカウントを作成したうえで、痕跡の消去とxp_cmdshellの無効化を試みました。
コマンド送信の間隔は中央値で約6秒でした。プログラムによって生成された識別子、構造化された出力、構文の修正、タイムアウトの調整が確認されており、固定のコマンド列ではなく、フィードバックに基づいて適応していたことがうかがえます。
ただしReliaQuestは、これらの挙動だけではLLMの関与を証明できないと注意を促しています。調査担当者は、使用されたモデルやエージェントの数、人間による承認の範囲を特定できませんでした。
防御側には、管理用エンドポイントの認証と制限、ジョブ履歴の保存、アプリケーションの例外とデータベースおよびエンドポイントのテレメトリとの突き合わせが求められます。
認証情報は保護されたシークレット保管庫に移し、サービスアカウントの権限を最小限に抑える必要があります。悪意のある実行の初期段階が既存のアプリケーションプロセス内にとどまる場合、自動的な封じ込めはとりわけ重要です。
IOC(侵害指標)
| 指標・観測情報 | コンテキスト |
| 204.194.55[.]189 | 悪意のあるアプリケーションジョブを作成したリクエストの送信元。Cairnのインターフェースとエクスプロイトのステージング用資材も公開されていた |
| 204.194.54[.]240 | インシデント発生前に対象環境へトラフィックを送信。AI関連サービスと、インシデントに一致する名前のツールファイルを含むオープンディレクトリが公開されていた |
| 94.177.131[.]113 | ジョブの出力を取得し、アップロード用エンドポイントへPOSTリクエストを送信。中継役の可能性はあるが未確認 |
| /tmp/out_<jobname>.txt | 送信したジョブの名前を付けたファイルに書き込まれたコマンド出力 |
| /var/tmp/.x/ | シェルスクリプトと専用のランタイムを格納していたドット始まりのディレクトリ |
| /var/tmp/kvragent | サーバーに投下され、スキャンに使われたバイナリ |
| C:\Windows\Temp\ps.b64 → C:\Windows\Temp\ps.exe | PrintSpoofer:Base64の断片としてコマンドチャネル経由でアップロードされ、certutilで再構築された |
| C:\Windows\Temp\gp.b64 → C:\Users\Public\g.exe | GodPotato:Base64の断片としてコマンドチャネル経由でアップロードされ、certutilで再構築された |
注: IPアドレスとドメインは、誤って名前解決やハイパーリンク化が行われるのを防ぐため、意図的に無害化(例:[.])しています。無害化を元に戻す場合は、MISP、VirusTotal、SIEMなど、管理されたスレットインテリジェンス基盤の中だけで行ってください。
16,000以上のSOCチームがANY.RUNを活用し、脅威調査を効率化して手作業を削減しています。 チームでの導入を検討する
翻訳元: https://gbhackers.com/hackers-use-ai-agents-and-godpotato-exploit/