開発者のノートPCが「本番環境」になった。その先をどう守るか

オピニオン

2026年11月12日8分

開発者のノートPCには本番環境の鍵が保存され、見つけた認証情報を何でも使うAIエージェントが動いています。アクセス権限はタスク単位で絞り込む必要があります。

これまでエンタープライズのソフトウェア開発は、開発者が比較的安全に試行錯誤できることを前提にしてきました。作業と本番環境の間に安全策があったからです。開発、ステージング、本番では適用されるルールが異なり、何を先に進めてよいかは人間が判断していました。また、テストでは、ソフトウェアを再実行しても同じように動作することが前提でした。

コーディングエージェントは、この2つの前提を揺るがしています。開発者は今、GitHubトークン、SSH鍵、クラウドの認証情報、認証済みのブラウザセッションが入ったノートPC上で、自律型ソフトウェアを動かしています。エージェントをMCPサーバーに接続し、リポジトリやサービスへのアクセスを許可します。提案されたコマンドの内容を十分に理解しないまま、ターミナルにコピーすることもあります。許可を求めるプロンプトが作業の妨げになれば、そのままクリックして通過したり、無制限のアクセスを有効にしたりしたくなります。開発者がその場しのぎでセキュリティポリシーを作っているのが実情です。

その結果、開発者のノートPCは本番環境の延長になりました。エージェントは、以前なら人間が意図的に介入しなければ到達できなかったシステムにも手が届きます。しかも、まったく別の目的で付与された権限を使うことが少なくありません。従来のソフトウェアと違い、エージェントは文脈や判断が変わるため、同じタスクでも異なる行動を取る可能性があります。CISOはいま、根本的に異なる課題に直面しています。すでに本番環境への経路を持つ自律型ソフトウェアを、どう統制するかという課題です。

私たちが認識していなかったセキュリティ統制、それは人間の判断

人間の開発者とコーディングエージェントが最も大きく異なるのは、技術力ではなく判断力です。

開発者は、自分のコードがどの段階にあるかを理解しています。テスト中なのか、本番に出せる状態なのかを把握しているということです。自分の認証情報で何ができるかだけでなく、いつ、どのように使うべきかも理解しています。アクセス権を持つことと、それを行使することの間には、暗黙の線引きがあります。

AIエージェントははるかに一途です。利用可能な認証情報がタスクの達成に役立つなら、それを使います。技術的に可能なことと、ポリシーで許されていることを区別しません。

たとえば、動作しないアプリケーションのトラブルシューティングをエージェントに任せたとします。エージェントは開発者のノートPCで本番環境の認証情報を見つけ、稼働中のデータベースに問い合わせるのが原因特定の最短ルートだと判断します。開発者はローカルの問題を調べるだけのつもりでも、エージェントは修正を試みる過程で本番データを書き換えてしまうかもしれません。脆弱性を悪用する必要はありません。エージェントは、手元にある権限を使って与えられた目的を追求しただけです。

従来の開発パイプラインは、どのシステムにアクセスし、どんな操作をするかを自ら決めるソフトウェアを想定していません。セキュリティ統制は、最初の指示からは完全に予測できない挙動も考慮しなければなりません。

サンドボックスはエージェントを閉じ込めても、権限までは閉じ込められない

自律型エージェントのリスクへの対策として、サンドボックスが有力な選択肢に浮上しています。コンテナ、仮想マシン、microVMの内部で実行を隔離すれば、エージェントがホストや他のワークロードに干渉する余地を抑えられます。

強力な隔離は、特にエージェントが信頼できないコードを実行したり、悪意のある可能性があるツールとやり取りしたりする場合に不可欠です。独自のゲストカーネルを持つmicroVMは、ホストカーネルを共有する従来型のコンテナより強固な境界になります。それでも、隔離が答えられるのはセキュリティ課題の一部にすぎません。

外部へのアクセスをすべて遮断するエージェント用サンドボックスは、海底でコンクリート詰めにされたコンピューターと同じくらい役に立ちません。

エージェントがセキュリティインシデントを起こすのに、サンドボックスから脱出する必要はありません。正当に与えられた権限を悪用する、許可されたネットワーク接続から機密情報を送信する、意図的に渡された認証情報で破壊的な変更を加える、といったことが可能です。

実行の隔離だけでは意味がなく、そのワークロードが到達できる範囲を厳密に制御して初めて効果を発揮します。無制限の認証情報を抱えたままでは、安全なサンドボックスでも攻撃対象領域は巨大なままです。

開発者を止めずに、エージェントの権限だけを取り消せるか

セキュリティ担当者は最小権限の原則をよく知っています。しかし、エージェントを使った開発では、従来のID・アクセス管理の限界が露呈します。

開発者が、1つのGitHubリポジトリを変更する権限をエージェントに与えたとします。エージェントが開発者個人のトークンを使えば、その開発者がアクセスできるすべてのリポジトリの権限を引き継ぐ可能性があります。マージ権限やCI/CD環境、それらのシステムに紐づく下流の認証情報まで含まれかねません。

これが「アンビエント権限」です。アクセス権を付与した本来のタスクを超えて、操作を実行できる状態を指します。エージェントが1回だけ操作できればよかった場合でも、比較的範囲の狭いトークンで同じ操作を繰り返せてしまうことがあります。

エージェントが開発者の認証情報で動作していると、エージェントの権限を取り消すことは、開発者を使えなくすることにもなり得ます。セキュリティチームは、自律型ワークロードを人間のIDから切り離す必要があります。

エージェントには、独立して定義されたIDを持たせ、目的ごとに権限を委任すべきです。そうすれば、各エージェントの行動を追跡し、問題が起きた箇所を調査し、開発者の作業を止めずに個々のエージェントの権限だけを取り消せます。

エージェントのセキュリティで特に興味深い動きの1つが、エージェントとアクセス先のシステムの間に入る「信頼できるブローカー」という考え方の登場です。

MCPプロキシと呼ばれるアプローチもあれば、認可サービスやゲートウェイ、別のアーキテクチャを使うものもあります。いずれも同じ根本的な問いを巡っています。どのエージェントが、どのリソースに、どのような状況で、どれだけの期間アクセスできるかを、どう決めるのかということです。

重要なのは、エージェント自身に自らの権限の上限を決めさせてはならないという点です。その判断は別のシステムが強制する必要があります。このシステムは、操作を可能にする認証情報を渡さずに、個々の操作を認可できなければなりません。

たとえば、GitHubのIssueの修正をエージェントに依頼するとします。リポジトリへの無制限のアクセスを与える代わりに、開発者はそのタスクを1回だけ承認します。信頼できる仲介役は、エージェントにリポジトリの読み取り、指定ブランチへの変更のプッシュ、プルリクエストの作成だけを許可できます。これらの権限は1時間で失効させることもでき、広く再利用できる開発者の認証情報をさらすこともありません。

エージェントのセキュリティが解決すべき核心的な緊張関係はここにあります。与えるアクセスが少なすぎれば、開発者は統制を回避してしまいます。多すぎれば、認可されたエージェントが引き起こす被害に対して、隔離は意味を失います。目標は、安全な権限委任を、無制限のアクセスと同じくらい手間のないものにすることです。

エージェントのセキュリティも、これに似たアーキテクチャ上の転換点に近づいているのかもしれません。開発者、オープンソースプロジェクト、商用ベンダーが、ID、委任、認可、ポリシー適用のアプローチを試行しています。既存のIAMシステムを軸に独自の統制を構築する組織もあれば、エージェントが外部リソースに到達する前にリクエストを評価する専用の仲介役を探る組織もあります。

信頼できるブローカーは、まだ広く定義された構成要素ではありません。1つの実装がKubernetesのような存在になる保証もありません。ポリシー判断、認証情報の保管、レイテンシ、可用性、監査可能性といった課題も未解決です。

それでも、欠けている機能の輪郭は明確になりつつあります。必要なのは、人間の意図を、自律型ソフトウェアに対する範囲の狭い、強制力のある権限へと変換する、信頼できる仲介役です。

MCPサーバーは新たなソフトウェアサプライチェーンに

MCPは、エージェントが外部のツールや情報に接続する主要な手段の1つです。そのため、重要な統合の仕組みであると同時に、セキュリティ上の境界でもあります。

悪意のあるMCPサーバーは、エージェントのワークフローへの間接的な侵入経路になり得ます。サーバーやツールが共有ファイルシステム、プロセス、認証情報ストアにアクセスできる状態で動作していれば、侵害されたコンポーネントが別のツールの秘密情報を読み取れるかもしれません。

ただし、懸念は認証情報の窃取だけではありません。侵害されたサーバーは、エージェントがツールを使う前の段階から、改ざんした情報を返してその後の行動を左右できます。攻撃者がエージェントそのものを侵害する必要はなく、エージェントが取り込むコンテキストだけを押さえれば足ります。

おなじみの来歴管理、署名、ビルドの完全性という考え方は、MCPサーバー、エージェントのツール、モデルの重みにも広げる必要があります。組織は、これらのコンポーネントがどこから来たのか、改変されていないか、環境に導入した際にどんな権限を得るのかを把握しておくべきです。

答えは多層防御です。強力な隔離、独立して管理されるID、範囲を絞った権限、制御されたネットワークアクセス、そしてエージェントが実際に何をしているかを把握できる十分な可観測性が求められます。

ニュースレター

CSOニュースレターで最新のセキュリティ情報を入手

最新の脅威、リスク、セキュリティ戦略に関する重要な情報で、企業を守りましょう

エージェントのセキュリティを実行経路に組み込むべき理由

コンテナ化は、スピードを損なうことなく、ガードレールを開発者向けプラットフォームに直接組み込むのが最も効果的だと示しました。Kubernetesの登場により、すべての開発者がインフラの専門家にならなくても、分散ワークロード全体に共通のセキュリティ・運用ポリシーを適用できるようになりました。エージェントを使った開発にも、同様の転換が必要です。

長期的な好機は、恒久的なアクセス権の付与から、タスク単位の権限委任への移行にあります。開発者には、常時有効な鍵を手放すことなく、1件のIssueの修正や1件のプルリクエストの作成だけをエージェントに認可する手段が必要です。

ノートPCはもはや本番環境のエンドポイントであり、安全なサンドボックスには戻りません。セキュリティチームは、人間の判断がこれまで手作業で担ってきた境界をインフラに直接組み込み、開発者のスピードを守る必要があります。

マリーナ・ムーア氏は、Ederaのリサーチ責任者であり、Cloud Native Computing Foundationの技術諮問グループ(TAG)Securityの共同議長、オープンソースのメンテナーも務めています。クラウドネイティブセキュリティと、研究と実社会での応用の相互作用を専門としています。CloudNativeSecurityConやKubeConなどのカンファレンスにも頻繁に登壇しています。Edera入社前は、ニューヨーク大学で博士号を取得し、ソフトウェアサプライチェーンセキュリティを研究しました。過去にはChainguardでリサーチインターン、GoDaddyでソフトウェアエンジニア、Appleでプライバシーエンジニアリングのインターンも務めました。

翻訳元: https://www.csoonline.com/article/4247458/the-developer-laptop-just-became-production-now-what.html

本記事は csoonline.com の記事を翻訳・要約したものです。