Claude Code に認証情報を漏らさせない

AI のエージェントは、あなたの認証情報のファイルを読み、トークンを会話に表示し、秘密を探し回ることができます。これは仮の話ではありません。鍵やトークンが漏れれば、アカウントの乗っ取りや、課金の悪用につながります。3つの hook がこれを止めます。

実際の事故(#34819): エージェントが cat ~/.netrccat ~/.npmrccat ~/.cargo/credentials.toml を実行し、すべてのトークンを会話に表示した。
実際の事故(#37845): エージェントが認証情報を探して48個の bash コマンドを実行した——env | grep tokenfind /home -name "*.token"cat ~/.ssh/id_rsa——すべて自動で承認された。

3層の防御

層1: 認証情報のファイルの読み取りを止める

止める cat ~/.netrc cat ~/.npmrc cat ~/.cargo/credentials cat ~/.docker/config.json cat ~/.kube/config

npx cc-safe-setup --install-example credential-file-cat-guard

層2: 認証情報の探索を止める

止める env | grep TOKEN find / -name "*.token" cat ~/.ssh/id_rsa curl --post-file ~/.env

npx cc-safe-setup --install-example credential-exfil-guard

層3: コードの中の秘密を止める

止める ソースに直書きされた API キーやパスワード、git add で混入する秘密

npx cc-safe-setup --install-example hardcoded-secret-detector
npx cc-safe-setup --install-example staged-secret-scan

なぜ CLAUDE.md では防げないか

「鍵やトークンを読むな」という CLAUDE.md のルールはお願いにすぎず、文脈が一杯になれば押し出され、無視されます。さらに自動の承認では、上の#37845のように危険なコマンドが次々と通ってしまいます。hook はプロセスの層で、モデルの判断の外で動きます。実行の直前にコマンドの中身を見て、終了コード2で止めます——モデルはこれを迂回できません。

守られるファイル

~/.netrc          — HTTP 認証のトークン
~/.npmrc          — npm のレジストリのトークン
~/.yarnrc.yml     — Yarn のレジストリのトークン
~/.cargo/credentials.toml — Cargo / crates.io のトークン
~/.docker/config.json — Docker のレジストリの認証
~/.kube/config    — Kubernetes のクラスタの認証情報
~/.config/gh/hosts.yml — GitHub CLI のトークン
~/.pypirc         — PyPI のアップロードのトークン
~/.gem/credentials — RubyGems の API キー
~/.m2/settings.xml — Maven のリポジトリの認証情報
~/.ssh/*          — SSH の鍵と設定
~/.aws/credentials — AWS のアクセスキー
~/.env            — 環境の秘密

OWASP MCP Top 10 への対応

これらの hook は OWASP MCP Top 10MCP01: トークンの誤管理と秘密の露出 に対応します。cc-safe-setup には、OWASP MCP の全リスク区分にまたがる認証情報の保護の hook が20本以上含まれます。

安全 hook をまとめて入れる

885 の hook · 9,200以上のテスト · GitHub · npm

関連するページ

さらに詳しく: 事故防止の実践ガイド(Zenn) · English version · 全ツール