いちばん引っかかったのは、Claude Code の Auto Mode がかなり強く見える一方で、攻撃の入り口を少しずらされるだけで崩れる、という点だった。モデルが怪しい binary を拒否するのは一見まともだし、そこで安心したくなる。でもこの記事では、その「拒否」が逆に、攻撃者が用意した Python の方へ誘導する踏み台になっている。安全機能がちゃんと働いた結果、より危ない経路に入る。この皮肉はかなり重い。
特に印象に残ったのは、攻撃がいかにも派手な一発芸ではなく、細かい選択の連鎖で成立しているところだ。WebFetch から curl に移し、ZIP を展開させ、binary は走らせず、自前で decoder を書かせる。その decoder が置かれた場所で module shadowing が効く。どれも単体では「まあありそう」に見えるのに、つながると普通に code execution まで届く。LLM エージェント相手の攻撃って、プロンプト注入だけを警戒していても足りないんだな、と改めて思った。実際には、ツールの使い方、作業ディレクトリ、言語固有の import の癖まで含めて、行動全体を狙われる。
もう一つ、この記事で面白いというより少し怖いのは、Anthropic 側の見方も筋が通っているように見えることだ。Auto Mode はあくまで convenience feature で、境界は OS isolation と network egress control だ、という返しはかなり現実的だと思う。つまり「モデルが賢く守ってくれるはず」という期待自体が危うい。ここは少し残酷で、でも正直でもある。LLM の安全性を語るとき、モデルの拒否率だけ見ていても現場の危険は消えない。コンテナや権限分離、外向き通信の制御みたいな、昔からある地味な仕組みをちゃんと積むしかないのだろう。