Claude Codeはファイルシステムやシェルへのアクセス権をもつAIエージェントであり、単なるコード補完ツールとは異なるセキュリティリスクを内在しています。2026年3月にはソースコード流出やサプライチェーン攻撃といった重大インシデントが立て続けに発生し、安全な運用設計の重要性があらためて浮き彫りになりました。
本記事では、Claude Codeに潜むセキュリティリスクの全体像から、実際に発生したインシデントの分析、権限設定やサンドボックスを活用した実践的な防御策、そして企業導入時のデータポリシーまでを体系的に解説します。Claude Codeを安全に活用するための参考にしてください。
Claude Codeのセキュリティリスクとは
Claude Codeのセキュリティリスクとは、会話ログからの機密情報漏洩、権限設定の不備によるAIの暴走、そしてAI生成コードに含まれる脆弱性の3つを指します。 ここでは、それぞれのリスクの構造と具体例を解説します。
- 会話ログを通じた機密情報の外部送信リスク
- 権限設定の不備によるAIの意図しない操作リスク
- AI生成コードに含まれるセキュリティ脆弱性
会話ログを通じた機密情報の外部送信リスク
Claude Codeには、会話ログからの機密情報漏洩リスクがあります。Claude Codeはローカル完結型のツールではなく、プロンプトと応答がクラウド上で処理される仕組みのため、APIキーやDB接続情報、SSH鍵などの機密情報が意図せず外部に流出する可能性があります。
さらに、コンシューマープラン(Free/Pro/Max)ではデフォルトでモデル学習にデータが利用される設定になっている点にも注意が必要です。 具体的には、以下のようなケースで意図しない情報送信が発生し得ます。
- .envファイルの内容がAIとの対話ログに含まれ、サーバーに送信される
- Firebase環境構築をAIに任せた際にサービスアカウントキーが露出する
- printenvコマンドの実行により環境変数が一括で送信される
こうした外部送信リスクを抑えるには、Claude Codeにどの情報を入力させるかを運用ポリシーとして定義し、設計段階で制限をかける必要があります。
権限設定の不備によるAIの意図しない操作リスク
Claude Codeの権限設定が適切でない場合、ファイルの削除、外部通信、本番環境への直接操作など、AIが意図しないアクションを実行する可能性があります。 デフォルト状態ではClaude Codeの行動範囲は広く設定されており、明示的にdenyルールを追加しなければ、curlやwgetによる外部通信も実行できてしまいます。
具体的なリスクとしては、deny設定をしていない状態でcurlが実行され、情報を窃取されるケースが挙げられます。実際に、複合コマンド(51個以上のサブコマンド連結)でdenyルールが無効化される脆弱性も報告されており(すでに修正済み)、権限制御だけに頼る運用には限界があります。
こうした操作リスクを防ぐには、デフォルトで安全と思い込まず、権限設定を明示的に設計する必要があります。
AI生成コードに含まれるセキュリティ脆弱性
Claude Codeが生成するコードにも、セキュリティ脆弱性が含まれるリスクがあります。AIは「動くこと」に最適化されており、明示的な指示がない限りセキュリティ実装を省略する傾向があるためです。代表的な脆弱性パターンとしては、以下のものが報告されています。
- シークレット情報(APIキー・パスワード等)のハードコード
- 過剰に寛容なCORS設定による不正アクセスの許可
- ユーザー入力値の未検証によるインジェクション攻撃のリスク
- eval/Functionの使用による任意コード実行の危険性
GitGuardianの「The State of Secrets Sprawl 2026」によると、Claude Codeを利用してコードを生成・コミットする開発者のシークレット漏洩率は約3.2%で、全体平均の約1.5%に対して2倍を超える水準でした。生成されたコードを安全なものと見なさず「未検証のもの」として扱い、自動スキャンと人間レビューの両方で品質を担保する体制が欠かせません。
Claude Codeで発生した重大インシデント
Claude Codeに関連する重大インシデントとして、2026年3月から4月にかけて、ソースコード流出・サプライチェーン攻撃・denyルール回避の脆弱性という3つの事案が相次いで表面化しました。 ここでは、それぞれのインシデントの経緯と影響範囲を整理します。
- ソースマップの誤包含による約51万行のコード流出
- axiosサプライチェーン攻撃によるRAT混入
- 複合コマンドによるdenyルール回避の脆弱性
ソースマップの誤包含による約51万行のコード流出
Claude Codeのソースコード流出は、v2.1.88においてビルド時のソースマップが誤ってnpmパッケージに包含されたことで発生しました。約51万2,000行のTypeScriptソースコードが外部から参照可能な状態となり、権限制御やシステムプロンプトといった内部設計が露出する事態に至っています。
原因はソースマップが除外設定から漏れていたという人為的なミスであり、Anthropicは顧客データや認証情報の漏洩はなく、セキュリティ侵害ではないと説明しています。セキュリティ研究者のChaofan Shou氏がXで発見を報告し、数時間でGitHubにミラーされて拡散しました。
このインシデントは、ツール提供元のビルドプロセスにも脆弱性が存在することを示しており、利用側でもバージョン管理と更新の追跡が不可欠です。
axiosサプライチェーン攻撃によるRAT混入
axiosサプライチェーン攻撃は、世界中の開発者が利用するHTTPライブラリ「axios」を悪用し、開発者の端末にRAT(遠隔操作ツール)を送り込んだインシデントです。攻撃の流れは以下のとおりです。
- 攻撃者がaxiosの管理者アカウントを乗っ取る
- axiosの新バージョンに悪意のあるコードを仕込み、npmに公開する
- 開発者が通常どおりnpm installを実行すると、悪意のあるコードが自動的にインストールされる
- インストール後、RATが端末に常駐し、攻撃者が遠隔操作できる状態になる
悪意のあるバージョンが公開されていたのは2026年3月31日の約3時間(日本時間 09:21〜12:29)だけです。その短い間にインストールした環境はすべて影響を受け、Claude Codeのnpm版もaxiosを内部で利用しているため、同じ時間帯に導入・更新をおこなった場合は注意が必要です。 そのため、開発端末だけでなくCI/CDパイプラインや依存パッケージの取得経路まで含めて、導入・更新の履歴を確認できる体制を整えておく必要があります。
複合コマンドによるdenyルール回避の脆弱性
Claude Codeのdenyルール回避の脆弱性とは、大量のコマンドを1行につなげて実行した場合に、本来禁止されているはずの操作がブロックされなくなる問題です。
Claude Codeは通常、settings.jsonのdenyルールで「このコマンドは実行禁止」と設定できます。しかし、1行のなかに51個以上のコマンドが連結されている場合、Claude Codeは処理負荷を抑えるために個別のチェックを省略し、「実行してよいか?」という一般的な確認だけを表示していました。つまり、50個の無害なコマンドの後ろに禁止コマンドを紛れ込ませると、denyルールをすり抜けられる状態だったということです。
この脆弱性はv2.1.90で修正済みですが、denyルールだけに頼った防御には限界があります。サンドボックスや環境分離など、複数の防御層を組み合わせることが重要です。
Claude Codeを安全に使うためのポイント
Claude Codeを安全に使うためのポイントは、権限設定、サンドボックス機能、CLAUDE.mdによる運用ルール、生成コードの自動スキャンを組み合わせた多層防御です。 どれか1つの対策に依存するのではなく、複数の防御層を重ねることで、単一の層が突破されても次の層で食い止められます。
ここでは、安全運用に必要な4つの対策を紹介します。
- settings.jsonで権限をallow・ask・denyの3段階に設定する
- サンドボックス機能で実行環境を隔離する
- CLAUDE.mdにセキュリティルールを明記してAIの挙動を制御する
- 生成コードの脆弱性を自動スキャンで検出する
settings.jsonで権限をallow・ask・denyの3段階に設定する
Claude Codeの権限管理の基本は、settings.jsonでallow(自動実行)・ask(確認後実行)・deny(拒否)の3段階を明示的に設定することです。 Claude Codeの評価順序はdeny→ask→allowであり、denyに設定した項目は最優先で拒否されるため、最もリスクの高い操作から順に制限をかけると良いでしょう。
例として、設定の推奨対象は以下のとおりです。
| 権限レベル | 推奨対象 |
| deny(拒否) | .env、~/.ssh/、~/.aws/、.keystoreなどの機密ファイル読み取り、curl、wget、printenv、envなどの外部通信・環境変数表示コマンド |
| ask(確認) | git push、git merge、git rebaseなどのリモート操作系コマンド |
| allow(自動実行) | ls、git status、npm test、npm run lintなどの読み取り・テスト系コマンド |
また、settings.local.jsonはGit管理から外し、個人設定が他の開発者に影響しないよう運用しましょう。
settings.jsonの設定はClaude Code導入時に最初に実施すべきセキュリティ対策です。
サンドボックス機能で実行環境を隔離する
Claude Codeのサンドボックス機能とは、Bashコマンドの実行をOSレベルで隔離し、ファイルシステムやネットワークへの意図しないアクセスを物理的に防止する仕組みです。settings.jsonによる制御はソフトウェアレベルの防御であり、前述のdeny回避脆弱性のようにバイパスされるリスクがあるため、OSレベルの隔離がより堅牢な防御層となります。
対応環境ごとの隔離方式は以下のとおりです。
| 環境 | 隔離方式 |
| Linux | bubblewrapによるサンドボックス |
| macOS | seatbeltによるサンドボックス |
| 高度な隔離が必要な場合 | VM・devcontainerとの併用 |
とくにpub upgradeやpod installなど外部パッケージを取得する場面でサンドボックスを活用することで、サプライチェーン攻撃のリスクを軽減できます。
CLAUDE.mdにセキュリティルールを明記してAIの挙動を制御する
CLAUDE.mdへのセキュリティルール記述は、プロンプトレベルでAIの行動規範を定義し、意図しない操作や脆弱なコード生成を抑制する対策です。CLAUDE.mdはClaude Codeがセッション開始時に読み込む設定ファイルであり、ここに記述されたルールはすべてのやり取りに適用されます。
記述すべきルールの例としては、以下が挙げられます。
- .envファイルは絶対に読み取らないこと
- 外部URLアクセスが必要な場合はまず理由を説明すること
- APIキーがハードコードされていないかセルフチェックすること
- OWASP Top 10に準拠したコードを生成すること
OWASP Top 10とは、Webアプリケーションにおける代表的なセキュリティリスクをまとめた国際的なガイドラインです。 これをCLAUDE.mdに明記することで、AIにインジェクション攻撃やアクセス制御の不備といった主要な脆弱性を意識させたコード生成を促せます。
CLAUDE.mdはsettings.jsonやサンドボックスと併用することで多層防御の一翼を担う、プロンプトレベルの防御手段です。
生成コードの脆弱性を自動スキャンで検出する
生成コードの自動スキャンとは、Claude Code SecurityやSemgrepなどの静的解析ツールを開発フローに組み込み、AIが生成したコードの脆弱性を機械的に検出する仕組みです。 人間のレビューだけでは網羅性に限界があり、ハードコードされたシークレットやCORS設定の不備など定型的な脆弱性パターンは自動化ツールのほうが検出精度が高い傾向にあります。
主な自動スキャンツールの特徴は以下のとおりです。
| ツール | 特徴 |
| Claude Code Security | Anthropicが2026年2月に発表したAI脆弱性スキャナー。内部テストでオープンソースの本番コードから500件以上の未知の高深刻度脆弱性を検出した実績がある |
| Semgrep | ルールベースの静的解析ツール。CI/CDパイプラインに組み込むことで、コード取得→スキャン実行→結果確認の3ステップで継続的に品質を監視可能 |
自動スキャンは人間レビューの「代替」ではなく「補完」として位置づけ、CLAUDE.mdでの予防→自動スキャン→人間レビューの三段構えで品質を担保しましょう。
企業でClaude Codeを導入する際のデータポリシーと体制
企業でClaude Codeを導入する際のデータポリシーのポイントは、チーム/エンタープライズプランの選択、学習利用のオプトアウト、クラウドプロバイダー経由のアクセス統制を前提条件として整備することです。 ここでは、企業が押さえるべき2つの観点を解説します。
- プラン別のデータ学習ポリシーと保持期間の違い
- Amazon Bedrock・Google Vertex AI経由の利用による企業レベルのアクセス統制
プラン別のデータ学習ポリシーと保持期間の違い
Claude Codeのデータ学習ポリシーは、コンシューマープランと商用プランで大きく異なります。コンシューマープラン(Free/Pro/Max)ではデータの学習利用がデフォルトONであるのに対し、商用プラン(チーム/エンタープライズ/API)ではデフォルトOFFとなっており、企業利用では商用プランの選択が必須です。
各プランの違いを以下の表に整理します。
| 項目 | コンシューマープラン(Free/Pro/Max) | 商用プラン(チーム/エンタープライズ/API) |
| モデル学習への利用 | デフォルトON(オプトアウト可) | デフォルトOFF(契約で保証) |
| 標準データ保持期間 | オプトアウト時30日、学習同意時は最長5年 | 最大30日(自動削除) |
| ゼロデータリテンション(ZDR) | 利用不可 | エンタープライズ契約で申請可能 |
ただし、学習設定をOFFにしても、標準の保持期間中はサーバー上に一時保存される点に留意が必要です。
企業導入では「設定でOFFにする」だけでなく「契約レベルでOFFが保証されるプラン」を選択しましょう。
Amazon Bedrock・Google Vertex AI経由の利用による企業レベルのアクセス統制
Claude Codeの企業レベルのアクセス統制を実現する方法として、Amazon BedrockやGoogle Vertex AI経由での利用が挙げられます。クラウドプロバイダー経由で利用すると、コードやプロンプトがAnthropicのインフラを経由せず自社クラウド内で完結するほか、既存のIAMポリシーやネットワーク設計を流用した統制が可能になります。
クラウドプロバイダー経由での主なメリットは以下のとおりです。
- テレメトリ(Statsig/Sentry等)の外部送信がデフォルトで無効化される
- VPC内での閉域網運用により外部通信を遮断できる
- Entra IDやAWS SSOなど既存の認証基盤と統合可能
加えて、環境変数としてDISABLE_TELEMETRY=1、DISABLE_ERROR_REPORTING=1、CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1を設定することで、不要な外部通信を明示的に遮断することも可能です。
セキュリティ要件が厳格な企業では、クラウドプロバイダー経由の利用が最も現実的な選択肢です。
まとめ
Claude Codeはファイル操作やコマンド実行の権限をもつAIエージェントであり、機密情報の漏洩・意図しない操作の実行・生成コードの脆弱性という3つの構造的リスクを抱えています。2026年3月から4月にかけては、ソースコード流出やサプライチェーン攻撃、denyルール回避の脆弱性といった重大インシデントが実際に発生しており、これらのリスクは決して理論上の話ではありません。
安全に運用するためには、権限設定による操作制限、サンドボックスによる実行環境の隔離、CLAUDE.mdによるAIへのルール定義、自動スキャンによる脆弱性検出が必要です。さらに企業利用では、チーム/エンタープライズプランの選択やクラウドプロバイダー経由のアクセス統制など、契約・インフラレベルの対策まで含めた多層防御が欠かせません。
まずは機密ファイルや危険なコマンドの禁止設定と、CLAUDE.mdへのセキュリティルール記述から始めて、Claude Codeを安全に活用する体制を構築してみてください。
\あらゆる業界のDX化をおまかせください!/
お問い合わせ
