Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】I audited my own Claude Code logs and found real leaked credentials

2026年09月05日に「Dev.to」が公開したITニュース「I audited my own Claude Code logs and found real leaked credentials」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

AIコーディングアシスタントが環境変数やコマンド出力をログに保存する。このログにAPIキーなどの機密情報が平文で残り、筆者の監査で実際に発見された。これは新たな情報漏洩リスクであり、定期的な監査が重要だ。

ITニュース解説

AI技術の進化は目覚ましく、近年ではプログラミングの分野でもAIアシスタントが活躍している。例えばClaude CodeのようなAIコーディングアシスタントは、システムエンジニアの作業を効率化する強力なツールとして注目されている。これらのAIアシスタントは、コードの提案、デバッグ、特定の処理の自動化など、多岐にわたるサポートを提供してくれる。しかし、その便利さの裏には、私たちが普段意識しないようなセキュリティ上の潜在的なリスクが潜んでいることがある。

AIコーディングアシスタントがどのようにしてプログラミング作業を支援するかというと、彼らは私たちの開発環境にある情報にアクセスし、それを理解することで適切なアシストを提供する。具体的には、プロジェクトの構成ファイル、ソースコード、そして秘密情報を記述する.envファイルなどを読み込む。さらに、私たちの指示に基づいてcatコマンドのようなファイル内容を表示するコマンドや、様々なシェルコマンドを実行することもある。これらのAIアシスタントは、私たちの代わりにコードを生成したり、デバッグのためにシステム情報を参照したりするために、開発環境の内部に深く関与するのだ。

ここで重要なのは、AIアシスタントがこれらの行動、つまりファイルを読み込んだり、コマンドを実行したりするたびに、その詳細な内容がローカルのログファイルに記録されるという事実だ。これはAIアシスタントが後でセッションを再開したり、何らかの問題が発生した際に原因を特定したりするための「設計上の機能」として実装されている。例えば、Claude Codeの場合、~/.claude/projects/**/*.jsonlといったパスにセッションのトランスクリプトが生成され、そこにすべてのやり取りが逐一、文字通り「平文」で書き込まれる。

この「平文での記録」こそが、今回指摘されているセキュリティ上の大きな問題点となる。AIアシスタントが一度でも見た情報、例えばウェブサービスにアクセスするためのAPIキー、データベースに接続するためのURLと認証情報、システムの環境変数を出力した結果などは、すべてこのログファイルにそのままの形で記録され、開発者のマシンに「無期限に」残り続ける。これまでの開発プロセスでは、このような形で秘密情報がまとめて記録され、しかもそれが監査されずに放置されるケースは稀だった。そのため、この新しい情報源はセキュリティリスクとして見過ごされがちだったのだ。

この問題に気づいた一人の開発者が、自身の環境を監査するために小さなコマンドラインインターフェース(CLI)ツールを開発した。「agent-audit」と名付けられたこのツールは、AIアシスタントが残したローカルログファイルをスキャンし、そこに隠された秘密情報や危険なコマンドの実行履歴を検出する。この開発者が自身のマシンでこのツールを試したところ、驚くべき結果が明らかになった。

彼は、自身の複数のローカルプロジェクトにわたる59個のセッションファイルを対象に「agent-audit」を実行した。その結果、あるプロジェクトからは実に71件もの発見があった。そのほとんどは、データベースへの接続文字列で、これには認証情報が埋め込まれていた。また、ツールが出力した結果の中に漏洩していたJWT(JSON Web Token)も含まれていた。さらに別のプロジェクトのログからは、本物のAWSアクセスキーが2つも見つかった。そして、AIアシスタントが実際に実行していたcurl | bashといった、リモートからスクリプトを取得して実行する危険なコマンドの記録も検出された。これらはすべて「仮説」ではなく、実際に開発者のマシン上に、誰にも監査されることなく放置されていた具体的な漏洩情報だったのだ。

「agent-audit」が具体的に何をチェックしているかというと、多岐にわたる種類の秘密情報と危険なコマンドだ。秘密情報としては、AWS、GCP、GitHub、GitLab、Slack、Stripe、OpenAI、Anthropic、npm、Twilio、Discordといった各種サービスへのアクセスキー、PEM形式の秘密鍵ブロック、JWT、認証情報が埋め込まれたデータベース接続文字列、そして一般的なapi_key=password=といった割り当てを検出する。

また、AIアシスタントが実行した可能性のある危険なコマンドも監視対象となる。例えば、rm -rf /のような破壊的な削除コマンド、curl | bashbase64で難読化されたペイロードを実行するようなリモートコード実行パターン、システムを麻痺させるフォークボム、外部からアクセスを許すリバースシェル、ファイルの権限を緩めるchmod -R 777、直接ディスクを書き換える操作、シェル履歴の改ざん、ファイアウォールの無効化、SSHの認証鍵の書き込み、mainブランチへの強制プッシュ、データベースのテーブルを削除するDROP TABLE、そして不正な定期実行設定を行うcrontabの永続化などが含まれる。ただし、このツールは発見した秘密情報をそのままターミナルに表示することはない。すべての発見情報は秘匿化されて出力されるため、ツール自体が新たな情報漏洩の原因になることはないように設計されている。

この「agent-audit」は、完全にローカルで動作し、外部へのネットワーク接続や依存関係を持たないため、非常に信頼性が高い。コードはわずか300行程度で、誰でも容易に内容を読んで確認できる。MITライセンスで提供されており、誰でも自由に利用できるオープンソースツールとなっている。

この問題が重要視されるのは、AIコーディングツールが今日のソフトウェア開発において、もはや単なる補助ツールではなく、実際のコードベース内で秘密情報の読み取りやコマンドの実行といった「実作業」を行うようになっているからだ。これらのすべての活動が、セッションの再開やデバッグといった正当な理由のためにローカルにログとして記録される。これは、過去2年間にはほとんど存在しなかった、新たな種類の「秘密情報の拡散」である。この「agent-audit」ツールは、これまで見過ごされてきたこの新しいセキュリティリスクを可視化するための最初の試みと言えるだろう。今後は、Codex CLIやCursorといった他のAIアシスタントのトランスクリプトにも対応していく予定だ。このような新しいリスクに対して、開発者一人ひとりが意識を高め、適切な対策を講じることが、これからのシステム開発において不可欠となる。

関連コンテンツ

関連IT用語

関連ITニュース