「Don't Ask Again」を選んだだけなのに?Claude CodeがGitHubへ秘密情報を漏らしてしまう理由

[PR]記事内のアフィリエイトリンクから収入を得る場合があります
  • URLをコピーしました!

AIコーディングエージェントの普及が進む中で、新たなセキュリティ問題が見つかりました。

セキュリティ企業Apiiroの調査によると、Anthropicの「Claude Code」に搭載されている承認機能が原因となり、パスワードやAPIキーなどの機密情報がGitHub上に公開されてしまうケースが多数確認されているとのことです。

Claude Codeでは、シェルコマンドを実行する前にユーザーへ確認を求めます。しかし、ここで「Yes、and don't ask again(今後は聞かない)」を選択すると、そのコマンドが許可ルールとしてプロジェクト内の設定ファイルに保存されます。

問題は、このコマンドにデータベースのパスワードやAPIトークンなどの認証情報が含まれていた場合です。許可ルールにコマンド文字列がそのまま記録されるため、機密情報まで平文で保存されてしまうのです。

目次

GitHub上で実際に大量の秘密情報が公開されていた

Apiiroは公開GitHub上の.claude/settings.local.jsonを調査し、104,185件のファイルのうち1,122件に実際の機密情報が含まれていることを確認しました。さらに過去のコミット履歴や関連ファイルも含めて分析した結果、1,994のリポジトリから合計2,539件の秘密情報が見つかったと報告しています。

漏洩していた内容には、データベースパスワード、クラウド認証情報、SSHログイン情報、APIトークンなどが含まれており、一部では実際に有効な認証情報であることも確認されました。

Claude Codeは、この設定ファイルがGitへコミットされないよう、開発者のローカル環境にあるグローバルGit Ignoreへ自動登録する仕組みを持っています。

しかし、この対策には限界があり、たとえば後からGit管理を開始したフォルダ、別のPCへクローンしたリポジトリ、あるいはすでにコミット済みのファイルには効果がありません。また、プロジェクト側の.gitignoreには自動追加されないため、チーム開発環境では漏洩の温床になり得ます。

AIエージェント時代の新しいセキュリティ課題

今回の問題はは悪意ある攻撃やプロンプトインジェクションが原因ではありません。開発者が通常の操作を行った結果として、AIエージェントが利便性のために記録した情報が漏洩につながっています。

開発者ができる最も基本的な対策は機密情報を含むコマンドを安易に永続承認しないことです。加えて、.claude/settings.local.jsonや関連設定ファイルがGitで追跡されていないか定期的に確認し、機密情報は環境変数やシークレットマネージャー経由で扱うことで安全性が高まります。

AIコーディングエージェントは開発効率を大幅に高めますが、その便利さの裏側でどのような情報が保存・共有されるのかを理解しておくことが、これまで以上に重要になっています。

[via Hacker News]

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次