Meteora Web

Claude Code、設定ファイルが何千もの機密情報をGitHubに公開

Apiiro ha trovato oltre 100.000 file settings.local.json di Claude Code su GitHub, circa 1.100 con segreti. Ecco cosa controllare nei tuoi repository.

Ing. Calogero Bono 1 分で読めます
Claude Code、設定ファイルが何千もの機密情報をGitHubに公開

Secondo i ricercatori di sicurezza di Apiiro, Claude Code sta lasciando segreti nei repository pubblici di GitHub. Il problema nasce da un file di impostazioni locale, che finisce online senza che lo sviluppatore se ne accorga. Tra i dati trovati ci sono password di database, token API e accessi root. Conta per chiunque usi un assistente di programmazione con l'IA, perché un singolo commit distratto può rendere pubbliche credenziali ancora valide.

事実に入る前に、いくつかの用語を確認しておきましょう。 .gitignore は、Gitがコミットに含めないファイルを指定するファイルです。リポジトリはGitで追跡されるプロジェクトのフォルダです。シークレットとは、パスワード、APIトークン、秘密鍵などの認証情報を指します。フォークは、他のユーザーがGitHub上で作成するプロジェクトのコピーです。コミットは、一連の変更をプロジェクトの履歴に保存する操作です。

Zenithby Meteora Web あなたのビジネスのオペレーティングシステム。 SNS、顧客、予約、請求書をひとつのプラットフォームで。ジム、バーバー、専門職の方に。 Zenith を見る → 無料デモ · カード不要

Claude CodeとGitHubで何が見つかったのか?

Ars Technicaが、Apiiroの調査結果を伝えています。研究者たちは、Claude Codeのローカル設定ファイルがGitHubの公開リポジトリにアップロードされていた例を10万件以上発見しました。

すべてに機密情報が含まれていたわけではありません。63の異なる組織に由来する約1,100件のファイルに、公開APIトークン、データベースのパスワード、秘密鍵などのシークレットが含まれていました。全体に比べれば少数ですが、それらは例ではなく、実際に有効な認証情報です。

なぜファイルがオンラインに上がってしまうのか?

ユーザーが「はい、今後は確認しない」を選んでシェルコマンドを承認すると、その選択がローカルファイル.claude/settings.local.jsonにルールとして保存されます。ルールが一般的なパターンで書かれることもあります。しかし多くの場合、コマンドは含まれている内容、認証情報も含めて、そのまま保存されます。

ファイルがコンピュータ上にある限り、リスクは限られます。ただし、マシンが侵害された場合は別です。問題はファイルがコミットに入った時点で始まります。

.gitignoreだけでは不十分なのか?

理論上は十分です。Ars Technicaによると、Anthropicのドキュメントでは、このファイルを開発者のグローバル.gitignoreに追加するよう案内されており、通常はこれで公開を防げます。

弱点は、このルールがリポジトリのレベルでは反映されないことです。プロジェクトを別のマシンに複製したり、後からフォルダがリポジトリになったりすると、ファイルが誤ってアップロードされることがあります。Apiiroはさらに、多くの場合、ユーザーが関与しないままClaude Code自身が設定変更をコミットしていると指摘しています。

GitHubの公式ドキュメントがその違いを説明しています。リポジトリのルートにある.gitignoreは、コミットされると、そのプロジェクトを複製するすべての人に効果があります。一方、~/.config/git/ignoreにあるグローバルファイルは、自分のコンピュータでしか効きません。

ファイルを削除すれば解決するのか?

いいえ。Apiiroによると、ファイルが発見され、リポジトリから削除された後でも、注意を払わなければシークレットは元のプロジェクトのフォークに残ることがあります。

GitHubのドキュメントも、すでに追跡されているファイルは、まずgit rm --cached ファイル名で追跡から外す必要があり、その後に除外ルールが効くと注意しています。.gitignoreに一行足すだけでは、すでに履歴にあるものは消えません。そのため、認証情報が一度でも公開されてしまった場合は、漏えいしたものとして扱い、取り替える必要があります。

知っておきたい制約

数字はApiiroの分析によるもので、Ars Technicaが報じた内容です。私たちはデータを検証していません。発見された認証情報のうち、どれだけが有効なままだったか、また第三者に利用されたかは分かっていません。情報源にはClaude Codeの動作変更についてAnthropicからの回答もありません。同社が承認済みコマンドの保存方法に手を加えれば、状況は変わる可能性があります。

デジタル作業をする人にとって何が変わるか

Claude Codeを使っている場合は、.claude/settings.local.jsonがどのリポジトリでも追跡されていないか、今すぐ確認してください。非公開のプロジェクトでも、後から公開されたり、別の場所に複製されたりすることがあります。プロジェクトの.gitignoreにそのファイルを追加してコミットすれば、全員にそのルールが適用されます。自分のクローンだけで除外したい場合は、GitHubが案内する.git/info/excludeを使いましょう。

また、コマンドの中にパスワードを直接書く習慣も見直すべきです。環境変数やシークレット管理ツールを使うのが望ましいでしょう。企業では、プッシュの前にシークレットを自動スキャンする仕組みを加える価値があります。

編集部の見解

この事例は、単なるユーザーの不注意ではなく、製品設計の限界を示しています。認証情報を含みうるファイルは、個人の設定だけに任せるのではなく、リポジトリの段階で確実に除外されるべきです。特にツールが自律的にコミットを行う場合、すべてを利用者の注意力に頼るのは現実的ではありません。とはいえ、平文のパスワードをコマンドに書く習慣は、AIアシスタントの有無にかかわらず改めるべき問題です。こうしたツールが約束する速さのおかげで、シークレットの管理はむしろ一層重要になっています。

よくある質問

Claude Codeのどのファイルにシークレットが含まれますか?

ファイルは.claude/settings.local.jsonです。「はい、今後は確認しない」を選んでコマンドを承認したときに作成されるルールを保存します。コマンドがそのまま書き込まれ、認証情報が含まれることがあります。

Apiiroはいくつの公開ファイルを見つけましたか?

GitHubの公開リポジトリにアップロードされた10万件を超えるファイルです。そのうち約1,100件、63の組織から出たものに、APIトークン、データベースのパスワード、秘密鍵などのシークレットが含まれていました。

グローバルの.gitignoreで問題は防げますか?

一部だけです。自分のコンピュータでは有効ですが、リポジトリ内では効きません。プロジェクトが別の場所に複製されたり、後からフォルダがリポジトリになったりすると、ファイルがコミットに含まれる可能性があります。

リポジトリからファイルを削除すればシークレットは消えますか?

いいえ。Apiiroによると、シークレットは元のプロジェクトのフォークに残ることがあります。認証情報が公開されてしまった場合は、漏えいしたものとみなして取り替える必要があります。

すでにGitで追跡されているファイルを除外するにはどうすればよいですか?

まずgit rm --cached ファイル名で追跡を解除します。その後、.gitignoreにルールを追加してください。最初の手順を行わなければ、追跡済みのファイルにはルールが適用されません。

Claude Codeのセキュリティで、この先注目すべき点

焦点は、Anthropicが承認済みコマンドの保存方法を変えるかどうかです。それまでは、ツールのアップデートに目を配っておくと良いでしょう。

  • Claude Codeのリリースノートを読み、settings.local.jsonの扱いが変わるかを確認しましょう。バージョン2.1.319についての記事も参考になります。
  • リポジトリの履歴で、すでにコミットされた.claudeのファイルを検索し、そこに含まれる認証情報があれば取り替えてください。
  • GitHubのプルリクエストに関するガイドを使って、ブランチの保護ルールを見直しましょう。

情報源

Zenithby Meteora Web あなたのビジネスのオペレーティングシステム。 SNS、顧客、予約、請求書をひとつのプラットフォームで。ジム、バーバー、専門職の方に。 Zenith を見る → 無料デモ · カード不要

あわせて読みたい

ブログから

最新の記事