先週、自分がClaude Codeをどこで起動してきたかを調べました。きっかけは、セキュリティ企業のForever Securityが10月下旬に公開した報告です。ダウンロードフォルダに置かれた1枚のテキストファイルで、AIのコーディング道具を乗っ取ろうとした手口が見つかった、という内容でした。
筆者も1度だけ、ダウンロードフォルダで起動していました。
1枚のファイルから始まった報告
発端は、Forever Securityが顧客のパソコンで止めた1件の動作です。AIのコーディング道具が「function-color」という名前のパッケージ(ほかの人が作った部品)を入れようとしたのを、同社の監視が止めました。理由をさかのぼると、ダウンロードフォルダの AGENTS.md というファイルに行き着きました。
AGENTS.md や CLAUDE.md は、AIに「このフォルダではこう振る舞って」と伝えるための指示書です。Codex(OpenAIのコーディング道具)は AGENTS.md を、Claude Codeは CLAUDE.md を、起動したフォルダから自動で読み込みます。- CLAUDE.mdの書き方
同社は実験環境で同じことを再現しています。報告によると、Codexでは9割を超える試行で、仕込んだ指示書に従ってMCP(AIに外部の道具をつなぐ仕組み)の設定を書き換え、確認や隔離を外した状態で作業を始めました。Claude Codeでは、似た内容の CLAUDE.md で、およそ半分の試行でAIとの通信が研究者の用意したサーバーへ向き、認証の情報(ログインの合言葉にあたるもの)が見える状態になったとしています。
この手口が広く使われている形跡は今のところ確認されていない、と伝えた報道もあります。
なぜダウンロードフォルダなのか
ウェブサイトは、閲覧者がボタンを押したときなどに、ファイルをダウンロードフォルダへ保存させることができます。つまり、ダウンロードフォルダは「自分の知らないファイルが増えていく場所」です。
一方で、落としてきたCSVの集計などをAIに頼むとき手軽なのが、ターミナル(パソコンに文字で命令する画面)でダウンロードフォルダに移動し、そのまま claude と打って起動することです。
Forever Securityは、自社が観測した範囲だけで、ダウンロードフォルダで起動されたClaude Codeが1,300回を超えていたと書いています。同社は、設計どおりの動作なので修正版で終わる話ではない、という立場です。
筆者の起動履歴を調べた
自分のMacで、ターミナルの入力履歴からClaude Codeを起動した場所を洗い出しました。Macの標準設定なら、次のコマンドで調べられます。
# 履歴から、ダウンロードフォルダへの移動とclaudeの起動が近い行を探す
grep -n -A2 'cd ~/Downloads' ~/.zsh_history | grep claude
# いまダウンロードフォルダに指示書が置かれていないか
ls -la ~/Downloads | grep -iE 'agents\.md|claude\.md'
コマンドが苦手なら、Finderでダウンロードフォルダを開き、AGENTS.md や CLAUDE.md という名前のファイルがないか見るだけでも構いません。
出てきたのは1件です。8月に、取引先からもらった売上のCSVをその場で集計させたときでした。知らないファイルが混ざる場所でAIに読み書きを許していたわけで、正直、少し背中が冷えました。
いまのダウンロードフォルダに指示書はありませんでした。ただ、Claude Codeは起動したフォルダだけでなく、その外側のフォルダの CLAUDE.md も読みに行きます。サブフォルダで起動しても安全とは限りません。
もう1つ確かめたのが、Claude Code全体の設定ファイル ~/.claude/settings.json(~ はホームフォルダのこと)です。指示書に誘導されて書き換えられるのはパソコン全体の設定なので、一度書き換えられると、別のフォルダで起動しても効き続けます。自分で書いた覚えのない ANTHROPIC_BASE_URL(AIとの通信先を変える項目)が入っていないかを見てください。
「このフォルダを信頼しますか」の確認は守ってくれるのか
Claude Codeは、初めて開くフォルダで「このフォルダのファイルを信頼しますか」と確認してきます。注意したいのは、確認が出るのは最初の1回だということです。一度ダウンロードフォルダを信頼すると、その後に増えたファイルは改めて確認されずに読まれます。中身が勝手に入れ替わる場所では、最初の「はい」が後々まで効いてしまいます。
権限の確認(書き換えや実行の前に聞いてくる仕組み)は働きます。ただ、AIが「設定を少し直しますね」ともっともらしく聞いてきたとき、毎回中身まで読める自信は筆者にはありません。Claude Codeの乗っ取りは、この「つい許可してしまう」一瞬を狙ってきます。
今日から変えた3つの習慣
- ダウンロードフォルダでもホームフォルダ直下でもClaude Codeを起動しない。作業用に
~/work/tmp-日付のような空のフォルダを作り、必要なファイルだけを移してから起動する - もらったzipやクローン(GitHubなどから丸ごと複製)したプロジェクトは、起動前に
AGENTS.md、CLAUDE.md、.claudeフォルダ(Claude Codeの設定が入るフォルダ)の中身を自分の目で見る。点で始まるフォルダはFinderでは隠れているので、Command+Shift+ピリオドで表示する - 中身をよく知らないフォルダでは、まずプランモード(調べて計画を出すところで止まるモード、Shift+Tabで切り替え)で始める
1つ目がいちばん効きます。さらに隔離を強めたい人は、AIが触れる範囲を囲い込むサンドボックス機能も検討してください。
指示書は「読まれる文書」から「動く文書」になった
報告のタイトルは「Markdown(指示書に使われる書式)は新しい実行ファイル」でした。AIのコーディング道具が当たり前になったいま、指示書は人が読む説明書ではなく、AIがそのとおりに動く台本です。
知らない人から届いたExcelのマクロを開かないのと同じように、知らない場所の指示書をAIに読ませない。Claude Codeの乗っ取りを防ぐ対策は、結局この一点に集まります。自分の起動履歴、一度だけ見てみてください。5分で終わります。





