先に結論
AIコーディングエージェントは「賢いコード補完ツール」ではなく、開発者のシェル・環境変数・秘密鍵・CIトークンに触れる権限を持って動く実行主体です。だからこそ、悪意あるコードを書かせる攻撃だけでなく、見た目は無害なリポジトリやREADMEに埋め込まれた文章を「作業指示」として読ませ、エージェント自身にセットアップコマンドや外部通信を実行させる攻撃が現実味を帯びています。2026年6月下旬にMozillaのAIセキュリティ研究チーム0din(0DIN)が公開した実証では、悪意あるコードを1行も含まないクリーンなGitHubリポジトリを起点に、Claude Codeのようなエージェントが、その「親切に動こうとする性質」を利用されてリバースシェル(攻撃者が開発者端末を遠隔操作できる接続)を開くところまで誘導され得ることが示されました。0din自身はこれを実運用で観測された攻撃ではなく概念実証(PoC)と位置づけていますが、攻撃の構造はClaude Codeに限らず、Cursor、GitHub Copilot、Gemini CLIなどシェル実行権限を持つエージェント型ツール全般に共通するとされています。
守り方の要点は一つです。エージェントに渡すリポジトリを「信頼済みの入力」ではなく「未検証の外部入力」として扱い、実行環境・通信経路・認証情報を最初から分離しておくことです。この記事では、なぜREADMEが攻撃面になるのか、開発現場でどう封じ込めるのか、そして受託開発を発注する側が開発会社に何を確認すべきかを、明日から使える形で整理します。開発体制やAI活用ルールを外部と一緒に設計したい場合は、システム開発・AI基盤の相談をご利用ください。
AI ASSESSMENT
PoC の前に「そもそも使えるか」を30分で見極めませんか?
対象業務、データ、権限、ログ、運用責任を確認し、PoC前に失敗要因と本番化条件を整理します。
この記事を読むべき会社
- 社内やベンダーがClaude Code、Cursor、GitHub Copilotなどのエージェント型ツールを開発に使い始めている会社
- CTO、開発責任者、情シスがいるが、AIコーディングの利用ルールや実行環境の分離基準を明文化できていない会社
- 受託開発・SES・オフショアに開発を委託しており、相手の端末やCI環境で何が動いているか把握しづらい会社
- OSSやサンプルリポジトリ、社外から受け取ったコードを日常的にクローンして検証している開発チーム
この記事の根拠と最新性
参照した情報は記事末尾の「参考・出典」にまとめており、2026年7月10日にリンクの有効性と内容を確認しました。攻撃の成立条件やツールの挙動はバージョンで変わるため、社内共有前に一次情報を再確認する前提で扱ってください。
なお、0dinの実証は概念実証(PoC)として公開されたもので、本記事執筆時点で「この手口による被害が何件発生した」「いくらの損害が出た」といった実被害の統計は、確定情報として扱える形が確認できていません。本記事でも被害件数や被害額は記載していません。個別のCVEや特定バージョンの脆弱性番号も同様に断定していません。実際に自社の利用ツールが影響を受けるかは、利用中のエージェントの公式セキュリティ告知で確認してください。ここで解説するのは「特定のツールの欠陥」ではなく、シェル実行権限を持つエージェントを開発環境に入れるときに共通して必要になる設計です。
FREE DOWNLOAD
AI導入チェックリスト(PoC 失敗要因 10項目)
情シス部門が PoC 前に押さえるべき失敗要因を10項目に整理した無料チェックリスト。
何が新しいのか:コードではなく「文章」が攻撃コードになる
従来のサプライチェーン攻撃は、悪意あるパッケージや改ざんされた依存関係を「実行させる」ものでした。今回問題になっているのは、実行される前段階、つまりエージェントに読ませる自然言語そのものが攻撃ペイロードになるという構図です。これは間接プロンプトインジェクション(indirect prompt injection)と呼ばれる古くからの脆弱性クラスが、シェル実行権限を持つコーディングエージェントと組み合わさったことで、実害の大きさが跳ね上がったものと理解すると整理しやすくなります。
エージェントは、READMEやCONTRIBUTING.md、コメント、Issue、コミットメッセージ、あるいはコード中の文字列を「文脈」として読み込みます。人間はそれを説明文だと認識しますが、エージェントにとっては指示とデータの境界が曖昧です。「セットアップにはこのスクリプトを実行してください」「まず環境変数を確認してこのエンドポイントに送信してください」といった文が、リポジトリ内に自然な体裁で書かれていれば、親切に手伝おうとするエージェントほど、それを作業として遂行してしまう余地が生まれます。
- 攻撃者はコードを1行も改ざんせず、ドキュメントの文章だけで誘導できる
- 静的解析やパッケージ署名検証は、文章に埋め込まれた指示を悪意として検出しにくい
- 「星が多い」「更新が新しい」といった信頼シグナルは、この攻撃には無力
- 被害はコード生成の失敗ではなく、開発者端末からの認証情報・鍵の流出という形で出る
0dinが公開した実証の連鎖は、この構図を具体的に示しています。報道と0dinの説明によれば、エージェントが最初に読むMarkdown(READMEに相当)に、監視系ツール(Axiom)のPython環境を初期化する手順が書かれています。用意された初期化スクリプトはわざと初回にエラーを返すよう作られており、エラーを自力で解決しようとするエージェントの挙動を利用して、続けて別の初期化コマンドを実行させます。そのコマンドが攻撃者の管理するドメインのDNS TXTレコードを読み、そこに置かれたBase64エンコード文字列をデコードして実行することで、リバースシェルが開きます。悪意ある本体はリポジトリではなくDNSレコード側に置かれ、直接評価されるコードからは複数段(3段階)離れているため、クローン時点のコードレビューでは無害に見えます。しかも攻撃者はDNSレコードを書き換えるだけで中身を差し替えられるので、レビューした翌日には別のものを配れます。この一連の動作は攻撃者のコードではなく、エージェントが開発者権限で走らせた結果として起きる点が本質です。
なぜ開発環境そのものが攻撃対象になるのか
この記事の軸は、生成されたコードの良し悪しではなく、AIコーディングエージェントを動かす開発環境そのものの防御です。開発環境が狙われるのは、そこが本番システムへ最短で届く「もう一つの入口」だからです。次の4点が重なると、開発端末は本番と同等の攻撃価値を持ちます。
- 本番に近い認証情報が同居している:多くの開発端末やCIには、動作確認や緊急対応のために本番DBの接続情報、クラウドの管理者鍵、外部APIの本番キーが残りがちです。エージェントが動く場所にこれらがあると、一度の侵入で本番へ届きます。
- CI/CDが本番への配管になっている:CIトークンやデプロイ鍵は、定義上「本番へ変更を届ける」権限です。開発環境やパイプライン上でこれが露出すれば、攻撃者は正規の配信経路を使って本番を書き換えられます。
- 開発者の権限が広い:生産性のために、開発者にはファイル削除・パッケージ導入・外部通信・複数リポジトリへのアクセスなど広い権限が与えられがちです。エージェントはこの広い権限をそのまま引き継いで動きます。
- 監視が本番より薄い:本番にはSIEMやアラートがあっても、個々の開発端末やローカルのシェル操作は記録も監視も手薄なことが多く、異常なコマンド実行や外部送信が見逃されやすい領域です。ログや権限の棚卸しから着手したい場合は、セキュリティ対策の優先順位整理のような外部の整理支援を使う選択肢もあります。
AIコーディングエージェントが広げる攻撃面
人間の開発者と違い、エージェントは疲れず躊躇せず、指示に見えたものを高速に遂行します。その結果、従来なかった攻撃面が開発工程に追加されます。どこが増えたのかを分けて把握しておくと、防御を当てる場所がはっきりします。
- 読み込むリポジトリ:README・Issue・コミットメッセージ・コード中の文字列など、エージェントが文脈として取り込むテキストはすべて、指示混入(間接プロンプトインジェクション)の入口になり得ます。
- 実行するコマンド:エージェントはエラー解決やセットアップのために、人間に逐一確認せずコマンドを連鎖実行します。0dinの例のように、この「自動で次の一手を打つ」性質が悪用されます。
- 追加する依存:エージェントは足りないライブラリを自ら提案・導入します。存在しないパッケージ名を提案してそれが後から悪意あるパッケージとして登録される(スロップスクワッティング)など、依存経由の混入余地が広がります。
- 外部への送信:APIキー確認、テレメトリ、外部ドキュメント参照など、エージェントは正当な理由で外部通信を行います。この経路は、盗んだ認証情報を持ち出す経路にもそのまま使われます。
- 生成したコードの中身:生成物に脆弱な実装や秘密情報のハードコードが混じることもあり、レビューを通り抜けると本番の弱点になります。
READMEが危険なのは、エージェントが「読む」だけで終わらず、読んだ内容に基づいて「実行できる」からです。攻撃が成立するには、少なくとも次の3つが同時にそろう必要があります。逆に言えば、このどれか一つでも断ち切れば、被害は大きく縮みます。
- エージェントが未検証のテキストを指示として解釈できる状態にある(信頼境界の欠如)
- エージェントがシェル実行・ファイル書き込み・ネットワーク送信を、人間の承認なしに行える(過剰権限)
- エージェントの動く場所に、盗む価値のある認証情報が生で存在する(機密の同居)
典型的な攻撃チェーンを具体化すると、次のようになります。開発者が「便利そうなツール」として未知のリポジトリをクローンし、エージェントに「このリポジトリのセットアップを手伝って」と頼む。エージェントはREADMEを読み、そこに書かれたセットアップ手順に従ってスクリプトを実行する。そのスクリプトや手順の中に、~/.aws/credentialsや.env、SSH秘密鍵、CIトークンを読み取って外部へ送信する動作が紛れている。開発者の端末には本番に近い権限が同居していることが多く、結果として一度の「セットアップ支援」で認証情報が抜かれる、という流れです。
ここで重要なのは、開発者本人は悪意あるコードを1行も書いていないことです。従来のコードレビューやセキュアコーディング教育は「自分が書くコード」を対象にしてきましたが、この攻撃で狙われるのは「エージェントが読んだ他人の文章」と「エージェントが持つ実行権限」です。防御の設計思想を、コードの中身から実行環境の分離へ移す必要があります。
開発現場の防御設計:6つの分離
守りの原則は「エージェントが未知の入力を扱うときは、盗まれて困るものを同じ場所に置かない」です。以下は、明日からチームの標準運用に落とせる6つの分離軸です。すべてを一度に導入できなくても、上から順に効果が大きい順に並べています。
1. 実行環境をサンドボックスに隔離する
未検証リポジトリを扱うエージェント作業は、開発者の母艦環境ではなく、使い捨てのコンテナやVM、DevContainer、専用の検証マシンで行います。作業が終わったら環境ごと破棄します。ここに本番認証情報を持ち込まないことが最優先です。
2. 外部通信を既定拒否にする
サンドボックスからの外向き通信は、必要なドメイン(パッケージレジストリ、社内Git、モデルAPIなど)だけを許可するアローリスト方式にします。DNSレベルやegressプロキシで制御すると、仮に指示を実行されても、認証情報を攻撃者のサーバへ送る経路が塞がれます。
3. 環境変数と秘密情報を渡さない
エージェントが動くセッションに、本番の環境変数・APIキーをそのまま流し込まない。検証にはダミー値や短命トークンを使い、値の注入はエージェントの外側で行います。.envや鍵ファイルはサンドボックスにマウントしないのが基本です。
4. 実行コマンドを承認制・アローリスト制にする
エージェントに「何でも自動実行」の権限を与えない。ファイル削除、外部送信、認証情報を含むパスへのアクセス、パッケージのグローバルインストールなどは人間承認を挟む。多くのエージェントには自動承認の許可リスト機能があるため、危険操作を許可リストから外す運用を明文化します。
5. CIトークンとデプロイ権限を最小化する
ローカル開発とCIで使うトークンは、スコープと有効期間を最小化する。読み取りしか要らない場面に書き込み権限を持たせない。CIの秘密情報は、エージェントが読めるログや環境に露出しないよう分離します。
6. SSH鍵・クラウド認証情報を作業環境から切り離す
デプロイ鍵やクラウド管理者権限は、日常のコーディング環境と別のホスト・別のアカウントに置く。エージェントが動く端末に本番の全権が同居している状態を、まず解消します。
横にスクロールして確認できます
| 分離軸 | 攻撃で狙われるもの | 具体策 |
|---|---|---|
| 実行環境 | 開発者の母艦端末 | 使い捨てコンテナ/VMで未知リポジトリを扱う |
| 外部通信 | 情報の持ち出し経路 | egressをアローリスト化、DNS/プロキシで制御 |
| 環境変数 | APIキー・接続情報 | 本番値を渡さない、短命トークン化 |
| コマンド実行 | 自動実行の暴走 | 危険操作を承認制、許可リストを絞る |
| CIトークン | パイプラインの乗っ取り | スコープ最小化、短命化、ログ非露出 |
| SSH/クラウド鍵 | 本番への横展開 | 開発環境と別ホスト・別アカウントに隔離 |
この6つは「盗まれて困るものと、未検証の入力を扱う場所を、物理的・論理的に分ける」という一つの原則の具体化です。すべてを完璧に揃えるより、まず実行環境の隔離と本番認証情報の切り離しという上位2つを固めるだけでも、攻撃が成立する条件の大半を崩せます。
秘密情報がコード・プロンプトに混ざる経路と、その検知
分離を設計しても、そもそも秘密情報が意図せずエージェントの視界に入ってしまえば意味がありません。混入の経路は主に次のパターンです。
- コードやコミットへの直書き:APIキーや接続文字列をソースやテストデータにハードコードし、そのままコミットしてしまう。
- 設定ファイルの巻き込み:
.envや鍵ファイル、~/.aws/credentialsなどが作業ディレクトリにあり、エージェントが文脈として読み込む。 - プロンプトへの貼り付け:デバッグのため、本番のログやトークンを含む出力をそのままエージェントに貼り付けてしまう。
- 会話・生成物の外部送信:貼り付けた秘密情報が、モデル提供側やログ基盤へ送信・保存される。
検知の要点は「入る前」と「入った後」の二段で構えることです。入る前は、コミット前フック(pre-commit)とCIの両方でシークレットスキャンを回し、鍵らしい文字列の混入をブロックします。入った後は、露出が起きた前提で失効・再発行の手順を決めておきます。検知より復旧が遅いと被害は広がるため、「見つけたトークンを何分以内に失効できるか」を運用指標に据えるのが実務的です。すでに露出が疑われる場合の初動整理は、インシデント対応支援のような外部の初動支援を併用すると、失効・調査・報告の抜け漏れを防ぎやすくなります。
AIが提案した依存関係をそのまま入れない
エージェントは「このライブラリを入れれば動きます」と自然に提案し、そのまま導入まで実行しようとします。ここは依存経由のサプライチェーン攻撃が入り込む隙です。提案されたパッケージを入れる前に、最低限これだけは確認します。
- 実在と正体:そのパッケージ名が本当に公式レジストリに存在するか。名前が既存の有名パッケージに一文字違いで似ていないか(タイポスクワッティング/スロップスクワッティング)。
- 素性:公開元、メンテナンス状況、直近の更新、ダウンロード実績、issueの様子。急に現れた無名パッケージを本番依存に入れない。
- 必要性:本当にその依存が要るのか。標準機能や既存の依存で足りるものを、新規パッケージで増やしていないか。
- 導入方法:グローバルインストールや任意スクリプト実行(postinstall等)を伴わないか。ロックファイルとバージョン固定で、意図しない差し替えを防いでいるか。
原則は「AIの提案は依存の候補であって、承認ではない」です。人間が素性を確認して初めて採用する、という一手を運用に固定します。
事後に追うためのログ設計
どれだけ守っても侵入の可能性はゼロになりません。だからこそ「起きた後に、何が起きたかを追える」状態を先に作っておくことが、被害の見積もりと報告の質を左右します。エージェントを使う開発環境では、少なくとも次が残っているかを確認します。
- エージェントが実行したコマンドの履歴(いつ・どの環境で・何を実行したか)
- 外向き通信の記録(どのドメイン・IPへ、いつ接続したか)——egressプロキシやDNSログで取得
- 認証情報へのアクセス記録(どの鍵・トークンが、いつ読まれたか)
- パッケージ・依存の導入履歴(何が、どのバージョンで追加されたか)
- CI/CDの実行とデプロイの記録(誰の権限で、どの変更が本番へ届いたか)
ログは「取っているか」だけでなく「改ざんされにくい場所に、追跡に足る期間、保全されているか」までがセットです。侵入者はまず痕跡を消そうとするため、開発者端末のローカルだけに残す設計は弱点になります。ログ保全と監視の常設運用を社内だけで維持するのが難しい場合は、セキュリティ運用の伴走支援のように外部で継続運用を担保する選択肢もあります。
発注者・受託の現場で確認すべきこと
自社で内製している場合だけでなく、開発を外部に委託している会社ほど、相手の作業環境が見えないという固有のリスクを抱えます。SES、オフショア、フリーランスの端末でエージェントが動いていて、その端末に自社リポジトリのアクセス権や本番接続情報が入っているなら、上記の攻撃はそのまま自社への侵入経路になります。契約や発注の前に、次の粒度で確認しておくと差が見えます。
- 開発でAIコーディングエージェントを使っているか、使う場合どのツール・どのバージョンか
- 未知のOSSやサンプルコードを扱うとき、隔離環境で行っているか、母艦端末で行っているか
- 自社の認証情報・本番接続情報を、エージェントが動く環境に置いていないか
- エージェントの自動実行範囲(外部送信・削除・インストール)に承認ゲートがあるか
- 秘密情報スキャン(コミット前・CI)を回しているか、露出時の検知・失効手順があるか
- インシデント時に、誰がどのログで原因を追え、顧客へどう報告するかが決まっているか
「AIは使っていません」という回答は、むしろ実態と乖離していることが多く要注意です。禁止しているつもりでも、現場は便利さから隠れて使います。禁止するかどうかではなく、どの条件なら安全に使ってよいかを規程化しているベンダーのほうが、実務では信頼できます。
発注前チェックリスト
自社の状態を1枚で棚卸しするための項目です。埋められない欄が多いほど、要件定義や環境設計から外部の力を借りる価値があります。
- 未知リポジトリを扱う専用の隔離環境(コンテナ/VM)が用意されているか
- エージェントが動く環境に、本番の環境変数・鍵・トークンを置いていないか
- 外部通信が既定拒否+アローリストで制御されているか
- 削除・外部送信・グローバルインストールが人間承認になっているか
- CIトークンとデプロイ鍵のスコープ・有効期間が最小化されているか
- 秘密情報のコミット前/CIスキャンと、露出時の失効・再発行手順があるか
- AIコーディング利用規程(許可ツール・禁止操作・データ分類)が明文化されているか
- 委託先の作業環境にも同じ基準を要求し、契約に落とせているか
よくある誤解
対策が後手に回る会社ほど、次の思い込みでリスクを小さく見積もっています。
- 「開発環境だから壊れても平気」:壊れて困るのは環境ではなく、そこに同居している本番認証情報とCI/デプロイ権限です。狙われているのは開発環境の可用性ではなく、本番へ届く鍵の在りかです。
- 「社内ネットワークなら安全」:この攻撃は外から破るのではなく、開発者権限で内側から実行され、盗んだ情報を正当に見える外部通信で持ち出します。境界防御では止まりません。egress制御と権限分離が要点です。
- 「エージェントはコードを書くだけ」:実態はシェル実行・ファイル書き込み・外部通信・依存導入まで行う実行主体です。「補完ツール」という認識のままだと、与えている権限の広さを見誤ります。
- 「レビューすれば防げる」:レビュー対象はふつう生成されたコードです。今回狙われるのは他人の文章と実行権限で、しかも本体はDNSレコード側に置けるため、クローン時点のコードは無害に見えます。人手レビューは必要ですが、それだけでは実行環境と通信経路の穴は塞げません。
よくある失敗パターンと回避策
- 全面禁止して隠れ利用が増える:一律禁止は現場の生産性欲求に負け、統制外の利用を生みます。禁止ではなく、隔離環境・承認範囲・データ分類を決めた「使ってよい条件」を配ること。
- 母艦端末でそのまま検証する:便利さを優先して未知リポジトリを本番権限の同居する端末で開くのが最大の穴。検証は使い捨て環境に固定すること。
- 静的解析やパッケージ署名で守れると思い込む:文章に埋め込まれた指示は署名検証を通過します。防御の主戦場は実行環境と通信経路の分離であること。
- 委託先を性善説で扱う:自社が固めても、委託先端末に本番権限があれば同じ被害が起きます。契約と受入基準で同水準を求めること。
- 一度設定して放置する:ツールの挙動も攻撃手法も更新されます。四半期ごとに公式セキュリティ告知と自社の許可リストを見直すこと。
FAQ
Q. エージェントを使わなければ安全ですか。 禁止しても隠れ利用は残ります。より現実的なのは、隔離環境と承認範囲を決めて「安全に使える形」を用意することです。禁止を選ぶ場合でも、実際に使われていないかを検知する仕組みが要ります。
Q. どのツールが危険なのですか。 特定製品の問題というより、シェル実行権限を持つエージェント型ツール全般に共通する構造的リスクです。ツール名で判断せず、実行権限・通信・機密の同居という3条件で自社環境を評価してください。
Q. AIコーディングエージェントを開発環境に入れる前に、最初に固めるべき防御はどれですか。 効果が大きい順に、(1)未知リポジトリを隔離環境に閉じ込める、(2)本番認証情報をその環境から外す、(3)外部通信をアローリスト化する、の3つです。この3つだけでも被害の成立条件をほぼ断てます。
Q. 信頼できる有名リポジトリなら安全ですか。 星の多さや更新の新しさは、この攻撃には信頼シグナルになりません。悪意ある本体をリポジトリ外(DNSレコード等)に置ける手口では、クローン時点で無害に見えても後から中身を差し替えられます。「有名だから」ではなく「未検証の入力として扱う」姿勢を既定にしてください。
Q. コードレビューを厳しくすれば足りますか。 人手レビューは必要ですが、それだけでは不十分です。狙われるのは自分が書くコードではなく、エージェントが読む他人の文章と、エージェントが持つ実行権限だからです。レビューに加えて、実行環境の隔離・通信経路の制御・認証情報の分離を仕組みで用意する必要があります。
Q. 秘密情報を誤って露出させてしまったら、まず何をしますか。 最優先は該当トークン・鍵の即時失効と再発行です。並行して、いつ・どこから読まれ・どこへ送られた可能性があるかをログで確認します。失効より調査を優先して時間を空けると被害が広がるため、「止血(失効)を先、原因調査を後」が基本です。初動に不安がある場合は外部のインシデント対応支援の併用を検討してください。
Q. 委託先が「AIは使っていません」と言えば安心ですか。 むしろ注意が必要です。禁止していても現場は便利さから隠れて使うことが多く、実態と回答が乖離しがちです。禁止しているかどうかより、どの条件なら安全に使ってよいかを規程化し、隔離環境や承認範囲を運用に落とせているベンダーのほうが実務では信頼できます。
90日で防御を運用に定着させる
一度に完璧を目指すより、90日で「使いながら守れる状態」に持っていくほうが現実的です。
横にスクロールして確認できます
| 期間 | 実施内容 | 確認する成果 |
|---|---|---|
| 1〜30日 | 利用実態の棚卸し、隔離環境の用意、本番認証情報の切り離し | どこで誰がエージェントを使い、何が同居しているかが見える |
| 31〜60日 | 外部通信のアローリスト化、コマンド承認範囲の設定、秘密情報スキャン導入 | 危険操作と情報持ち出し経路が制御下に入る |
| 61〜90日 | 利用規程の明文化、委託先への基準展開、四半期見直しの定例化 | 統制が仕組みとして回り、更新に追随できる |
自社だけで環境分離やCI権限設計、委託先を含めた運用基準の整備まで一気に進めるのが難しい場合は、現状の棚卸しから発注先への要件反映まで、システム開発・AI基盤の相談で一緒に設計できます。
あわせて読みたい記事
- AIによるコード修正を本番に入れる前のレビュー基準
- Claude Code全社展開の前に決めるべきAI開発体制とレビュー責任
- AIコーディングは速いが壊れやすい|レビュー・セキュリティ・運用設計込みで見積もる
- セキュリティ事業
- インシデント対応支援
- セキュリティ運用伴走
- セキュリティ対策の優先順位整理
- システム開発の発注前相談
まとめ
AIコーディングエージェントへの攻撃は、もはや「悪いコードを書かせる」段階を超え、「無害に見える文章を読ませて、エージェント自身に認証情報を盗ませる」段階に入りました。守りの発想を、コードの中身のレビューから、実行環境・通信経路・認証情報の分離へ切り替えることが要点です。エージェントが未知の入力を扱うときは、盗まれて困るものを同じ場所に置かない。この一点を、隔離環境・既定拒否の通信・承認制の実行・トークン最小化という形で仕組みに落とせば、便利さを捨てずにリスクを大きく下げられます。
まずは、自社と委託先で「誰が・どの環境で・何の権限を持って」エージェントを動かしているかを1枚に並べてみてください。その棚卸しができない状態こそ、最初に手を打つべきサインです。
参考・出典
以下のリンクは2026年7月10日に有効性と内容を確認しました。攻撃手法やツールの挙動はバージョンで変わるため、社内共有前に最新の一次情報を再確認してください。
- Tom's Hardware「AI coding agents can be tricked into installing malware via 'clean' GitHub repositories(Mozilla 0din)」: https://www.tomshardware.com/tech-industry/cyber-security/ai-coding-agents-can-be-tricked-into-installing-malware-via-clean-github-repositories-mozillas-0din-team-shows-how-claude-code-can-be-exploited-by-its-own-helpfulness
- TechRadar「Agentic coding tools have access to everything they need(Claude Code exploit)」: https://www.techradar.com/pro/security/agentic-coding-tools-have-access-to-everything-they-need-for-this-security-experts-warn-claude-code-can-be-exploited-simply-by-trying-to-be-helpful
- NIST AI Risk Management Framework: https://www.nist.gov/itl/ai-risk-management-framework
- OWASP GenAI Security Project: https://genai.owasp.org/
- 総務省・経済産業省 AI事業者ガイドライン(検討会): https://www.meti.go.jp/shingikai/mono_info_service/ai_shakai_jisso/index.html
- 個人情報保護委員会: https://www.ppc.go.jp/personalinfo/






