企業動向

Claude Code設定ファイル流出か、npm公開パッケージに機密情報混入の恐れ — Lakeraが警鐘


チェック・ポイント傘下のLakeraは、Anthropic社のAIコーディング支援ツール「Claude Code」が生成する設定ファイルが、npmパッケージ公開時に認証情報を含んだまま外部に流出するリスクを指摘しました。同社の調査では、確認されたファイルの約13件に1件の割合で機密情報が含まれていたことが判明し、開発者に対し適切な防止策を講じるよう呼びかけています。

Claude Code設定ファイル流出か、npm公開パッケージに機密情報混入の恐れ

サイバーセキュリティソリューションを提供するチェック・ポイント・ソフトウェア・テクノロジーズ傘下のLakeraは、米国Anthropic社のAIコーディング支援ツール「Claude Code」の利用に伴う認証情報流出のリスクについて警鐘を鳴らしました。このリスクは、Claude Codeが生成するローカル設定ファイルに認証情報が含まれ、それがnpmパッケージとして公開される際に外部に露出することで発生する可能性があるとしています。

Lakeraが実施した調査では、確認された約46,500件のnpmパッケージのうち428件にClaude Codeの設定ファイル「.claude/settings.local.json」が含まれていました。このうち約13件に1件の割合にあたる30パッケージ、33ファイルで機密情報が含まれていることが判明しています。

Claude Codeの設定ファイルに潜む危険性

Claude Codeは、ターミナルベースのコーディング支援AIエージェントであり、承認されたシェルコマンドをプロジェクトディレクトリ内のローカル設定ファイルに保存します。特に「allow always(常に許可)」を選択した場合、そのコマンド文字列は恒久的な許可リストのエントリとして「.claude/settings.local.json」にそのまま書き込まれます。

この際、コマンドに含まれる認証情報も記録される点が問題視されています。例えば、Authorizationヘッダーを含むcurlコマンドや、環境変数を伴うAPIキーなどが該当します。これらの情報はファイル内にそのまま保存されます。

JSON形式でパーミッション設定が記述されたコードスニペット

npm公開時の盲点

npmパッケージはプロジェクトディレクトリの内容から生成されますが、デフォルトでは「.npmignore」や「package.json」の「files」フィールドに「.claude/」を除外する設定がありません。このため、「npm publish」コマンドを実行しても警告が表示されず、開発者が意図しないまま機密情報を含むファイルを公開してしまう危険性があります。

また、「.claude/settings.local.json」は「.env」ファイルと同様の命名規則に従っていますが、「.env」ファイルに比べてその認知度や、公開前に検出して警告を発するツールの普及が不十分であると指摘されています。

Lakeraの調査が示す実態

Lakeraのスキャン期間中、確認された情報には以下のものが含まれていました。

  • npm認証トークン

  • npmのログイン認証情報(プレーンテキスト)

  • GitHubの個人アクセストークン(PAT)

  • Telegram Bot APIトークン

  • サードパーティサービス向けの本番用Bearerトークン

  • Hugging Face APIトークン

  • テスト用のプレーンテキスト認証情報

これらの認証情報は、一見して機密性の高いファイルには見えないシェルコマンド一覧の中に自然な形で含まれており、多くの開発者がファイルを開くことさえなく見落とされやすい状況にあるとしています。

情報流出を防ぐための具体的な対策

この問題による情報流出リスクを防ぐため、以下の対策が推奨されます。

  • ファイルを公開対象から除外する設定:

    • 「.npmignore」に「.claude/」を一行追加する。

    • 「package.json」の「files」フィールドで公開対象を制御している場合も、公開前に再度確認する。

    • 「.gitignore」にも「.claude/」を追加し、バージョン管理の対象から外す。

  • 次回の公開に含まれる内容の確認:

    • 「npm pack –dry-run」コマンドを使用し、公開前に内容を確認する。
  • すでに公開済みのバージョンの確認:

    • 「npm pack @」コマンドでパッケージを取得し、「tar -tzf -.tgz | grep claude」で「.claude/」ファイルが含まれていないか確認する。

ファイルがすでに公開されている場合、npmのtarballは不変であるため、バージョンを非推奨にしてもファイル自体は削除されません。公開された認証情報は、発見時期に関わらずすでに侵害されたものとみなすべきとしています。対策として、npmトークン(https://npmjs.com/settings/~/tokens)やGitHubトークン(https://github.com/settings/tokens)をはじめ、このファイルに含まれたその他のサービスの認証情報をローテーションすることが有効です。

結論

「.claude/settings.local.json」ファイル自体に本質的な危険性はないものの、通常の使用過程で認証情報が蓄積されるという側面があります。現行のデフォルト設定ではこれらの認証情報が公開パッケージに含まれることを防ぐ仕組みが用意されていないため、次回のリリース前に「.npmignore」への「.claude/」追加など、適切な対策を講じることが極めて重要であるとLakeraは強調しています。


ソース元

Your AI coding assistant just shipped your API keys
https://www.lakera.ai/blog/your-ai-coding-assistant-just-shipped-your-api-keys

関連記事

著者紹介:press

press プレスリリースを元に、サイバーセキュリティ関連の企業動向を配信しています。情報の正確性についてはソース元をご確認ください。



カテゴリ:
タグ: