コマンドの名はaipoisonだった
Socketは、Alibabaのプライベートな@aliスコープになりすます18個のnpmパッケージ群を発見しました。tarballのどれにもマルウェアは含まれていませんでした。RATはインストール時に、攻撃者が今も支配するGitHubリポジトリ上のJSONファイルから自らを組み立て、その永続化計画には、AIコーディングツールの.skillsディレクトリ内のPythonを書き換えることが含まれていました。コマンド名はaipoison、aipoison_inject、aipoison_deploy。コードを読んでもこれは見つけられませんでした。Bromure Agentic Codingは、最初から見えていたものを判定します:評判のないパッケージはホストプロキシであなたの同意を待ち、ペイロードを組み立てる3つの取得は、あなたが承認した宛先としか話さない回線にぶつかり、RATが書き込むすべてのファイルは、1タスク分だけ生きるVMに落ちます。
最終ペイロードのどこかに、aipoison という名前のコマンドがあります。
その仕事は、あなたのAIコーディングツールのskillsディレクトリに手を
伸ばしてPythonファイルを書き換えること。次にあなたが仕事を始めるとき、
攻撃者も一緒に始められるようにするためです。
2026年8月3日、The Hacker News
がSocketが7月末に公開したリサーチを取り上げました。
4月末に仕込まれた約18個のnpmパッケージ群が、誰にも捕まらないまま3か月間
レジストリに居座っていたのです。これらはAlibabaのプライベートな
@ali スコープ付きパッケージと同じ名前をスコープなしで公開して
なりすまします(aone-cloud-cli、def-open-client、open-worker-cli、
uniapi-bridge)。標的組織内の開発者やビルドが公開側のそっくりさんを
解決してしまうと、依存ツリーにリモートアクセス型トロイの木馬が
接ぎ木されます。Socketの研究者Karlo Zankiは、動機を産業スパイと
読んでいます。
パッケージの中に悪意のあるものはなかった
どのtarballを開いても、報告すべきものは見つかりません。誰もが真っ先に
grepする postinstall フックはありません。おとりパッケージは
smart-config-manager に依存し、それが cloud-config-fetcher と
local-config-parser に依存します。設定マネージャ、フェッチャ、
パーサ。退屈なユーティリティで、どれも1分で読み切れます。
悪意は構成の中に、そして攻撃者が一度も同梱しなかったファイルの中に
住んでいます。インポート時、フェッチャは攻撃者が支配する、そして今も
支配し続けるGitHubリポジトリから defaults/preferences.json を
ダウンロードし、.cloud-preferences.json としてディスクに書き込みます。
パーサはこのファイルの「変換ルール」をNodeの vm の中で評価します。
攻撃が住んでいるのはそこです。ルールの1つは、半ば伝承と化した
サンドボックス脱出です:
var F = items.constructor.constructor; // recover Function
var p = F('return process')(); // recover process
process からはフォールバックの梯子(getBuiltinModule、
mainModule.require、mainModule.constructor._load)を降りていき、
着地したNodeのバージョンでどれかが require を返すまで続けます。
その後、Alibaba Cloudのストレージバケットから setting.js を取得し、
ホストのフィンガープリントを採ってペイロードをインストールします。
Windowsでは、Alibaba自身のセキュリティアプリAlilangを殺して
その app.asar をトロイ化したコピーに差し替える。Linuxでは、
/tmp にバイナリを落とし、切り離して実行し、ファイルを消す。
macOSでは、~/.zshrc に注入し、10分ごとに発火するLaunchAgentを
登録します。
GBHackersはこの設計を見出しにしました。攻撃者はRATをパッケージ間に 分割して個別のコードレビューを回避した のです。攻撃者はこのキャンペーンを、読まれても生き残るように 作りました。どのパッケージを単体でレビューしても通ります。ツリー全体を レビューしてもやはり通ります。敵意のある部分はサーバー上のJSON ファイルであり、あなたがレビューを終えた後に取得され、あなたの監査と インストールの間に攻撃者が書き換えられるからです。
永続化計画にはあなたのエージェントが入っている
Socketは最終ペイロードを aone-cli として回収しました。この種のものが
やることを一通りやります。シェルコマンド、ファイルのアップロードと
ダウンロード、ホストの偵察、スクリーンショット、暗号化されたリバース
TCPプロキシ、そしてDingTalkを伝って動く dws_lateral コマンド。
C2トラフィックは、Alibabaの社内ドキュメントドメイン発を装う偽造
Origin・Referer ヘッダーをまとっています。
あるコマンド群が、これをコーディングエージェントの物語にします。
おなじみの動詞たちに並んで、RATは aipoison、aipoison_inject、
aipoison_deploy を積んでいます。特定の開発ツールの .skills
ディレクトリに置かれたPythonスクリプトを書き換え、注入した断片に
# __INJECT_MARKER__ の印を付けます。C2から引いてきたスクリプトが
後で、ツールの内側から、あなたとして実行されるように。名指しされた
標的の1つが
Qoder、
Alibaba自身のエージェント型IDEで、昨年8月のローンチから数か月で
500万ユーザーを超えました。
誰かが腰を据え、現代の開発者マシンを眺めて、エージェントのskills
フォルダを持続的な足場に選んだのです。あなたの権限で毎セッションの
開始時に実行され、diffを取る人がほとんどいないスクリプトの
ディレクトリ。この手は以前にも見ています。ワームが .claude に
自分をコピーし、次のエージェント
起動でマシンを再感染させたときです。あれはワームの即席の小技から、
スパイ用ツールキットの中の名前付きコマンドへと昇格しました。
攻撃者が隠せなかった部分
コードを読んでも、これは決して見つかりませんでした。それでも攻撃には 前提条件があり、そのすべてが見えていました。履歴も評判もない パッケージ。行動する前に必要な3本の外向き接続(GitHub上のルール ファイル、クラウドストレージの段、C2)。そして明日もそこにある マシン。
Bromure Agentic Codingは、その一つひとつに判断を置きます。しかも あなたのMacの上、エージェントが走る箱の外で。 中にいる何者も口を挟めない場所です。
インストールはレジストリで一時停止します。 すべてのパッケージ取得は
ホスト側プロキシを通り、1バイトがVMに届く前に、ワークスペースの
サプライチェーンポリシーがレスポンスに適用されます。パッケージ
フィルタリングを有効にすると、プロキシはアーティファクトごとに評判
プロバイダに照会します。選択できる2つのプロバイダの一方がSocket。
この記事が扱っているリサーチの主です。有効なソースのどれもパッケージを
保証できないとき、プロキシはダウンロードを保留してあなたに尋ねます。
先四半期に公開され、ダウンロード数はひと握り、どこにも評判のない
プライベートスコープのそっくりさんは、そこで止まります。強制は設計上
ホスト側にあります。VM内の .npmrc はポリシーを厳しくはできても
緩めることはできないので、侵害されたものが取り締まる側そのもの
だったとしてもルールは
保たれます。
回線が組み立てを拒みます。 この設計はegress同意の前で砕けます。
tarballに敵意あるものが何もない以上、ネットワークこそが攻撃だから
です。ホストプロキシは3つの取得(攻撃者のGitHub rawファイル、
setting.js を配るストレージバケット、C2ホスト)のそれぞれを、
このプロファイルのためにあなたが承認した宛先と突き合わせます。
インストール元のレジストリはそのリストにあります。見知らぬ誰かの
raw配信パスと、聞いたこともないCLIの名を冠したバケットはありません。
プロキシは items.constructor.constructor に意見を持たず、持つ必要も
ありません。宛先を読み、承認済みのものが見つからず、接続を落とす。
インストールは完了し、ビルドは走り、RATは決して組み上がりません。
部品たちが同じ部屋に揃うことがないからです。
永続化が手に入れるのは、寿命が1タスクのマシンです。 それでも
チェーン全体が走ったとしましょう。意図より広い宛先を承認してしまい、
各段が着地したとします。~/.zshrc の1行、10分おきのLaunchAgent、
トロイ化した app.asar、書き換えられた .skills のPython。その
すべては、macOSからハイパーバイザ1枚を隔てた使い捨てのLinux VM、
このタスクのワークスペースを抱えるマシンに書き込まれ、作業がマージ
されたらあなたはそのVMを捨てます。aipoison は、自分が書き換える
ツールと侵害したホストが同じ長寿命マシンであることに賭けています。
プロファイルの中では、その賭けは負けます。最初に走る偵察が持ち帰るのは
ブローカーの囮です。本物の
資格情報はホスト上に住み、承認済みの宛先に限って回線上で注入される
ので、そもそもVMの中に存在せず、
収集しようがありません。
成果物をレビューして分かるのは成果物のことだけ
研究者たちは毎週、別のライブラリでこの教訓を教え直しています。昨日は 信頼フラグが落ちました。チェックとロードが別々の瞬間に起きていた からです。6月には、リバースシェルがDNS レコードの中に住んでいたため、リポジトリはクリーンなままでした 。今度は18個のパッケージが クリーンに読めます。悪意のある部分が、攻撃者がまだ握っているJSON ファイルだからです。
エージェントはこれを先鋭化させます。速いからです。社内APIをつなぐよう 頼まれたエージェントは、依存を追加し、インストールを実行し、あなたが ウィンドウを切り替える間にタスクの次のステップへ進みます。その速さ こそ、あなたがエージェントを買った理由そのものです。判断は、速さが 追い越せない場所に置きましょう。レジストリの取得と回線の上。そこでは あなたのMacが、一度定めたポリシーに照らして、エージェントの行う すべてのパッケージとすべての接続について決定します。
エージェントにインストールをさせ続けてください。そこにこそレバレッジが あるからです。Bromure Agentic Codingをインストールし、 サプライチェーンのレイヤーを有効にして、その仕事にとって筋の通った 宛先のリストをプロファイルに与えてください。次のキャンペーンは ペイロードを別の場所に隠すでしょう。それがこの商売で唯一安全な予測 です。それでも、まずあなたに尋ねる回線を越えて、取りに来なければ ならないのです。