Microsoft SecurityのAutoJack AI agent RCE研究は、「AIエージェントが外部Webページを閲覧し、同じ端末上のローカルサービスへアクセスできる状態」に潜むリスクを示したセキュリティ研究です。結論から言うと、PyPIから通常インストールしたAutoGen Studio利用者が、この特定のAutoJack攻撃チェーンにそのままさらされていたわけではありません。一方で、AIエージェント開発者、MCP連携を試している担当者、Microsoft Defenderで開発端末を監視するセキュリティ担当者は、同じ構造のリスクを確認しておく価値があります。Microsoft Security Blogでは、この情報はResearchとして公開されています。(Microsoft)
この記事では、2026年6月18日にMicrosoft Security Blogで公開された「AutoJack: How a single page can RCE the host running your AI agent」をもとに、AutoJackとは何か、誰が確認すべきか、何が危険なのか、設定や検知が「見えない」「使えない」ときにどこを確認すべきかをQ&A形式で整理します。攻撃手順を再現するためではなく、AI agent securityを実務で点検するための読み方に絞って解説します。
Microsoft SecurityのAutoJack AI agent RCE研究とは何ですか?
Microsoft SecurityのAutoJack AI agent RCE研究は、AIエージェントが閲覧した1つのWebページを起点に、エージェントが動作しているホスト上で任意のプロセス実行につながり得る攻撃チェーンを示した研究です。Microsoftは、AutoGen Studioの開発中コードに存在した複数の弱点を組み合わせることで、ローカルのMCP WebSocket制御面に到達できることを説明しています。(Microsoft)
重要なのは、「悪意あるWebページを人間がブラウザーで開いたら即アウト」という単純な話ではない点です。問題の本質は、AIエージェントが外部ページを読み込み、そのエージェントが同じ端末上のローカルサービスへアクセスできる場合、従来は比較的安全だと考えられがちだったlocalhostやloopbackが攻撃面になり得ることです。
Microsoft Security Blogでは、この研究を通じて「AIエージェントが便利になるほど、ファイル操作、ブラウジング、API呼び出し、ツール実行などの権限管理が重要になる」という点を強調しています。(Microsoft)
AutoJackという名前は何を意味していますか?
AutoJackは、攻撃者がAIエージェントを「乗っ取られた中継役」のように利用し、localhostの信頼境界をまたいでローカルの制御面へ到達する、という意味合いで名付けられた研究上の呼称です。
Microsoft Security Blogでは、外部のページを閲覧したエージェントが、同じマシン上で動くAutoGen StudioのMCP制御面に接続し、結果としてホスト上のプロセス実行につながる構造が説明されています。ここで問題になるのは、AIモデルそのものの「賢さ」ではなく、エージェントに接続されたツール、ローカルサービス、認証、プロセス実行権限の組み合わせです。(Microsoft)
RCEとは何ですか?
RCEはRemote Code Executionの略で、日本語では「リモートコード実行」と呼ばれます。攻撃者が離れた場所から、対象端末やサーバー上で意図しないコードやコマンドを実行できる状態を指します。
今回のAutoJack研究で注目すべき点は、典型的なサーバー侵害だけではなく、開発者の端末やAIエージェントの実験環境がRCEの到達点になり得ることです。AIエージェント開発では、検証のためにローカル環境でブラウジング機能、コード実行機能、MCPサーバー、API連携を同時に動かすことがあります。この「便利な全部入り環境」が、分離されていないと攻撃面を広げます。
この研究はどのサービスや製品に関係しますか?
主に関係するのは、Microsoft Security、Microsoft Defender、AI agent security、AutoGen Studio、AutoGen、MCPを使ったAIエージェント開発環境です。Microsoft Security Blog上では、Products and servicesとしてMicrosoft Defender、TopicsとしてAI and agentsが示されています。(Microsoft)
ただし、この記事を読むべき対象はAutoGen Studio利用者だけではありません。次のような環境を扱う人にも関係します。
| 対象者 | 確認すべき理由 |
|---|---|
| AIエージェント開発者 | エージェントにWeb閲覧、コード実行、MCP、ローカルAPIを持たせる場合、権限境界の設計が必要になる |
| セキュリティ担当者 | 開発端末でAIエージェントが何を実行しているかをMicrosoft Defenderなどで監視する必要がある |
| 情シス・IT管理者 | 開発者PC、VDI、Dev Box、検証用VMでのAIツール利用ルールを整備する必要がある |
| SOC担当者 | PythonやNode.jsプロセスから不審な子プロセスが起動する挙動を調査対象にできる |
| MCP連携を試すチーム | MCPサーバーの起動方法、許可する実行ファイル、認証の有無を設計する必要がある |
PyPIからAutoGen Studioをインストールした利用者も危険ですか?
Microsoft Security Blogによると、この特定のAutoJack攻撃チェーンに関係するMCP WebSocketの攻撃面は、PyPIで公開されたAutoGen Studioパッケージには含まれていなかったと説明されています。Microsoftは、該当の問題は開発中に特定・修正され、PyPIリリースには含まれなかったとしています。(Microsoft)
そのため、通常のpip install autogenstudioで導入した利用者が、この記事で説明された特定のチェーンにそのまま該当するとは限りません。ここで注意したいのは、「該当しない可能性が高いから何もしなくてよい」ではなく、「同じ設計パターンが別のAIエージェント環境でも起こり得る」と読むことです。
特に、GitHubのmainブランチなどから開発版を直接ビルドしていた場合、どの時点のコードを使っていたかを確認する必要があります。Microsoft Security Blogでは、修正はAutoGenのmainブランチのcommit b047730に含まれると説明されています。(Microsoft)
どのような条件がそろうと危険になるのですか?
AutoJack研究で示された危険な構造は、単独のバグというより、複数の条件が重なったときに成立します。
| 条件 | なぜ危険か |
|---|---|
| AIエージェントが外部Webページを閲覧できる | 攻撃者が用意したページや、改ざんされたコンテンツをエージェントが読み込む可能性がある |
| 同じ端末上に強い権限を持つローカル制御面がある | localhostで動く開発用API、MCP制御面、コード実行機能などが到達先になる |
| localhostを信頼境界として扱っている | 「ローカルからの接続だから安全」という前提が崩れる |
| WebSocketやAPIに十分な認証・認可がない | エージェント経由で制御面へ接続された場合に止められない |
| 実行するコマンドやツールがallowlistで制限されていない | 本来のMCPサーバー以外のプロセス起動につながるおそれがある |
Microsoft Security Blogでは、AutoJackの教訓として、AIエージェントが未信頼コンテンツを閲覧し、特権的なローカルサービスと通信できる場合、loopbackは攻撃面になり、制御面には認証・認可・分離が必要だと説明しています。(Microsoft)
なぜlocalhostだけでは守れないのですか?
従来の開発ツールでは、「127.0.0.1やlocalhostにだけバインドしているから外部から直接アクセスされない」という考え方がよく使われます。人間が通常のブラウザーで外部サイトを開くケースでは、Originチェックが一定の防御になります。
しかし、AIエージェントがヘッドレスブラウザーやWeb閲覧ツールを使って外部ページを読み込む場合、状況が変わります。エージェントは開発者の端末上で動作しており、その端末上のlocalhostサービスへアクセスできる場合があります。つまり、攻撃者は外部からlocalhostへ直接接続するのではなく、エージェントに外部ページを読ませ、そのエージェントを経由してlocalhostへ近づく形になります。
実務上は、次のように考えると分かりやすいです。
「localhostに閉じているから安全」ではなく、「同じ端末上で動くAIエージェント、ブラウザー自動化、コード実行ツール、MCPクライアントから到達できるものは、認証と権限分離が必要」と考えるべきです。
AutoJackはプロンプトインジェクションの話ですか?
一部は関係しますが、AutoJackを単なるプロンプトインジェクションの問題として捉えると不十分です。
プロンプトインジェクションは、AIエージェントを攻撃者の意図したページへ誘導したり、特定の行動を取らせたりする入口になり得ます。一方で、AutoJack研究の核心は、その後にエージェントがローカル制御面へ到達し、認証不足やパラメーター処理の問題と組み合わさる点です。
つまり、対策もプロンプトだけを見ればよいわけではありません。AIへの入力監視に加えて、ローカルAPIの認証、MCPサーバーのallowlist、ブラウザー実行環境の分離、OSユーザー権限の制限、EDRによるプロセス監視を組み合わせる必要があります。
使えない時・見えない時は何を確認すべきですか?
AutoJack研究を読んで自社環境を点検しようとしても、「該当する設定が見えない」「Microsoft Defenderで検知できない」「AutoGen StudioのMCP設定が見つからない」といった状況があります。その場合は、まず自分の環境が研究で説明された前提に当てはまるかを切り分けます。
| 困っている状態 | 確認する観点 |
|---|---|
| AutoGen StudioにMCP関連の設定が見えない | PyPI版を使っているか、GitHub mainブランチからビルドしているかを確認する |
| 公式記事の攻撃面が自分の環境にない | その特定チェーンではなく、類似パターンの有無を確認する |
| Microsoft Defenderで関連アラートが見えない | Defenderのライセンス、オンボーディング、EDR telemetry、Advanced Huntingの利用可否を確認する |
| KQLで何もヒットしない | AutoGen Studioの実行履歴、端末名、対象期間、Python/Node.jsのプロセス名を自社環境に合わせて調整する |
| localhostサービスの一覧が分からない | 開発端末上で待ち受けポート、MCPサーバー、ローカルAPI、デバッグ用Web UIを棚卸しする |
| AIエージェントの動作範囲が分からない | Web閲覧、ファイル読取、コマンド実行、外部API呼び出しの有無を機能単位で確認する |
特に重要なのは、特定のCVEや特定バージョンだけを探すのではなく、「AIエージェントが外部コンテンツを読み、同じ端末の強い権限を持つサービスへ届く構造があるか」を確認することです。
AutoGen Studioを使っている場合、最初に何を確認すべきですか?
AutoGen Studioを使っている場合は、まずインストール方法と実行環境を確認します。
| 確認項目 | 判断基準 |
|---|---|
| インストール元 | PyPIからの通常インストールか、GitHubの開発ブランチからのビルドか |
| 実行場所 | 個人PC、開発用VM、コンテナ、Microsoft Dev Box、共有サーバーのどれか |
| 外部公開 | localhost限定か、社内ネットワークやインターネットから到達可能か |
| エージェント機能 | Web閲覧、コード実行、ファイル操作、MCP連携を有効にしているか |
| 実行ユーザー | 管理者権限、通常ユーザー、専用の低権限ユーザーのどれで動かしているか |
| 認証 | Web UI、API、WebSocket、MCP経路すべてで認証がかかっているか |
Microsoft Security Blogでは、AutoGen Studioをインターネット公開サービスとしてではなく、隔離された開発プロトタイプとして扱うこと、loopbackのみにバインドすること、必要に応じて認証付きリバースプロキシや低権限アカウント、サンドボックス、コンテナを使うことが推奨されています。(Microsoft)
GitHubのmainブランチからビルドしていた場合はどうすればよいですか?
GitHubのmainブランチからAutoGen Studioをビルドしていた場合は、使用していたコミットを確認します。Microsoft Security Blogでは、該当の強化策がcommit b047730以降に含まれると説明されています。(Microsoft)
実務では、次の順番で確認すると整理しやすくなります。
| 手順 | 内容 |
|---|---|
| 使用コミットを確認 | 開発端末やCIのビルドログ、リポジトリのcheckout履歴を確認する |
| MCP関連機能の有無を確認 | MCP WebSocketやMCPサーバー起動の設定を使っていたかを見る |
| 実行期間を確認 | 該当ビルドをいつ、どの端末で動かしていたかを洗い出す |
| 端末を調査 | 不審な子プロセス、外部通信、永続化設定、資格情報アクセスを確認する |
| 環境を更新 | 修正済みのコード、または安全なリリース版へ切り替える |
| 再発防止 | MCP、WebSocket、ローカルAPIに認証とallowlistを設定する |
「動いていたから大丈夫」ではなく、「どのコードを、どの権限で、どの端末で、どの外部入力と組み合わせて動かしていたか」を確認するのがポイントです。
Microsoft Defenderでは何を見ればよいですか?
Microsoft Security Blogでは、AutoJack型の挙動を調査する観点として、AutoGen Studioを実行しているホストでの不審な子プロセス作成や、MCP制御面へのWebSocket接続に関連する高度なハンティングの考え方が示されています。(Microsoft)
実務で見るべきポイントは次の通りです。
| 監視対象 | 見るべき挙動 |
|---|---|
| プロセス作成 | Python、Node.js、AutoGen Studio関連プロセスから、想定外のシェルや管理系コマンドが起動していないか |
| ネットワーク | 開発端末上のエージェントやヘッドレスブラウザーが、不審な外部ドメインへ接続していないか |
| ローカルポート | 8081など開発ツールの待ち受けポートが意図せず公開されていないか |
| 認証イベント | 開発端末からの不自然なクラウドアクセスや特権操作がないか |
| 永続化 | スタートアップ、スケジュールタスク、サービス登録などに不審な変更がないか |
| 資格情報 | 開発端末上のトークン、SSHキー、環境変数、設定ファイルがアクセスされていないか |
Microsoft DefenderのAdvanced Huntingを使える環境では、公式ブログに示された考え方をそのままコピーして終わるのではなく、自社のプロセス名、インストールパス、端末命名規則、開発ツールに合わせて調整することが重要です。
Microsoft Defenderで何も検知されない場合は安全ですか?
何も検知されないことは、必ずしも安全の証明ではありません。検知が出ない理由には、実際に不審な挙動がない場合だけでなく、ログが取れていない、対象端末がオンボーディングされていない、Advanced Huntingの対象期間が短い、プロセス名が想定と違う、ヘッドレスブラウザーの通信が別経路を通っている、といった可能性があります。
確認の順番は次の通りです。
| 確認順 | チェック内容 |
|---|---|
| 端末がDefenderに登録されているか | Microsoft Defender for Endpointに対象端末が表示されるか |
| 対象期間が合っているか | AutoGen StudioやAIエージェントを実行していた日付を含めて検索しているか |
| プロセス名が合っているか | python.exe、pythonw.exe、node.exe、独自ラッパー名などを含めているか |
| ログ種別が足りているか | DeviceProcessEvents、DeviceNetworkEventsなど必要なテーブルを見ているか |
| ライセンスと権限があるか | Advanced Huntingを利用できるMicrosoft Defenderプランと権限があるか |
| 端末外の実行環境を見落としていないか | WSL、コンテナ、Dev Box、VDI、リモート開発環境で動かしていないか |
「検知がない」だけで判断せず、実行環境の棚卸しとログ取得状況の確認をセットで行うのが現実的です。
AIエージェント開発では何を禁止すべきですか?
すべてを禁止するよりも、危険な組み合わせを制限する方が実務に向いています。特に避けるべきなのは、次のような構成です。
| 避けたい構成 | 理由 |
|---|---|
| 日常業務用PCで、管理者権限のままAIエージェント実験を行う | RCE発生時の影響範囲が大きくなる |
| 外部Web閲覧と任意コード実行を同じエージェントに無制限で持たせる | 外部コンテンツから実行系ツールへつながりやすい |
| localhostの制御APIを認証なしで起動する | エージェントや自動化ブラウザー経由で到達される可能性がある |
| MCPサーバー起動コマンドを入力値から自由に指定できる | 想定外の実行ファイルを起動される可能性がある |
| 検証用ツールを社内ネットワークやインターネットへ公開する | 開発前提の緩い設定が外部攻撃面になる |
現場での落としどころは、AIエージェント検証を専用の低権限ユーザー、コンテナ、VM、Microsoft Dev Box、Windows Sandboxなどに分離することです。Microsoft Security Blogでも、開発環境自体のハードニングとして、管理された開発ワークステーションやサンドボックスの利用が紹介されています。(Microsoft)
MCPを使う場合の注意点は何ですか?
MCPはAIエージェントと外部ツールをつなぐうえで便利ですが、設計を誤ると「AIからローカルの強力な操作へつながる入口」になります。AutoJack研究では、MCPサーバーとして起動するプロセスの指定や、MCP制御面への認証が重要な論点として扱われています。(Microsoft)
MCPを使う場合は、少なくとも次の点を確認してください。
| 項目 | 推奨される考え方 |
|---|---|
| 起動できるMCPサーバー | 事前に許可した実行ファイルだけに限定する |
| パラメーター | モデル出力や外部ページ由来の値をそのままコマンドに渡さない |
| 認証 | WebSocket、HTTP API、管理画面を含めて認証を要求する |
| 認可 | エージェントごとに使えるツールを分ける |
| 実行権限 | 管理者権限ではなく低権限ユーザーで動かす |
| ネットワーク | localhost限定でも、エージェントから到達できる前提で設計する |
| ログ | どのエージェントが、どのMCPサーバーを、いつ起動したかを残す |
「MCPだから危険」なのではありません。危険なのは、MCPに限らず、AIエージェントから到達できる制御面に認証・認可・allowlist・分離がない状態です。
情シスやセキュリティ担当者は何をルール化すべきですか?
情シスやセキュリティ担当者は、AIエージェントを単なるチャットツールではなく、開発端末上で動く自動化プロセスとして扱う必要があります。特に、ブラウザー自動化やコード実行を伴うエージェントは、RPAやCI/CDエージェントに近い統制が必要です。
最低限、次のルールを整備すると実務で運用しやすくなります。
| ルール | 具体例 |
|---|---|
| 実験環境の分離 | 個人PCではなく、専用VM、コンテナ、Dev Box、Sandboxで実行する |
| 権限の最小化 | 管理者権限や本番アクセス権を持つユーザーでAIエージェントを実行しない |
| 外部Web閲覧の制限 | 未信頼URLを読むエージェントと、コード実行ツールを同一環境に置かない |
| ローカルサービスの認証 | localhost限定でも管理API、WebSocket、MCP経路には認証をかける |
| ツール実行のallowlist | 起動できるコマンド、アクセスできるディレクトリ、外部通信先を制限する |
| ログと監視 | DefenderやEDRでプロセス作成、ネットワーク接続、資格情報アクセスを監視する |
| 事前レビュー | 新しいAIエージェントやMCPサーバーを導入する前に脅威モデリングを行う |
ポイントは、AIエージェントの「入力」だけをレビューするのではなく、エージェントが接続できる「道具」と「実行環境」をレビューすることです。
開発者が今日確認すべきチェックリスト
AutoJack研究を受けて、AIエージェント開発者がまず確認すべき項目をまとめると次の通りです。
| チェック | 確認内容 |
|---|---|
| インストール元 | PyPI版か、GitHubからの直接ビルドか |
| バージョン・コミット | 修正済みのコミット以降か、古い開発版を使っていないか |
| 実行権限 | 管理者権限や日常業務アカウントで動かしていないか |
| Web閲覧機能 | 未信頼ページを読み込むエージェントがあるか |
| コード実行機能 | shell、Python、Node.js、MCP経由のプロセス起動が可能か |
| localhostサービス | 認証なしのAPI、WebSocket、デバッグUIが起動していないか |
| ネットワーク公開 | 127.0.0.1以外から到達できる設定になっていないか |
| allowlist | 起動可能なツールや外部通信先を制限しているか |
| ログ | プロセス作成と外部通信を追跡できるか |
| 分離 | VM、コンテナ、Sandbox、専用ユーザーで実験しているか |
このチェックリストで1つでも曖昧な項目があれば、AIエージェントの機能追加より先に、実行環境の分離と認証を見直すべきです。
よくある疑問
AutoJackはMicrosoft製品の脆弱性ですか?
Microsoft Security Blogで扱われているのは、AutoGen Studioの開発中の攻撃面に関する研究です。公式記事では、該当の挙動はMSRCに報告され、maintainersによって上流のmainブランチで強化策が適用されたと説明されています。(Microsoft)
ただし、読むべきポイントは「特定製品だけの問題」ではありません。AIエージェントが未信頼コンテンツを読み、ローカルの強力な制御面にアクセスできる構成は、他のフレームワークや自社製エージェントでも起こり得ます。
AutoJack対策はAIモデルを変えれば解決しますか?
AIモデルを変えるだけでは不十分です。AutoJack型のリスクは、モデルの回答品質だけでなく、エージェントが接続するブラウザー、MCP、ローカルAPI、コード実行ツール、OS権限の問題です。
対策は、入力の安全性確認、ツール実行の制限、ローカル制御面の認証、低権限実行、実行環境の分離、EDR監視を組み合わせる必要があります。
Prompt Shieldsだけで防げますか?
Microsoft Security Blogでは、Azure AI Content Safety Prompt Shieldsがユーザープロンプトインジェクションや間接プロンプトインジェクションの早期段階を検出する助けになる一方で、その後のクライアントサイドJavaScript実行までは直接止めないと説明されています。(Microsoft)
つまり、Prompt Shieldsは有効な防御層の1つですが、単独で完結する対策ではありません。ローカル制御面の認証、ネットワーク制御、エンドポイント監視と併用する必要があります。
Microsoft Defenderを導入していれば十分ですか?
Microsoft Defenderは、プロセス作成、ネットワーク接続、不審な挙動の調査に役立ちます。しかし、検知製品だけで設計上のリスクを消せるわけではありません。Microsoft Security Blogでも、Defenderの検知やAdvanced Huntingの観点が紹介されていますが、あわせて環境の分離、低権限化、認証、allowlistが重要です。(Microsoft)
実務では、「防ぐ設計」と「見つける監視」を両方用意する必要があります。
自社製AIエージェントにも関係ありますか?
関係します。自社製AIエージェントがWebページを読み、社内APIやローカルツール、ファイル操作、コード実行機能に接続しているなら、AutoJack研究と同じ観点で点検すべきです。
特に、次のようなエージェントは注意が必要です。
| エージェントの種類 | 注意点 |
|---|---|
| Web要約エージェント | 未信頼URLや外部ページを読み込む |
| 調査支援エージェント | ブラウザー自動化とファイル保存を組み合わせることがある |
| 開発支援エージェント | コード実行、シェル、リポジトリ操作に近い権限を持つ |
| 社内業務エージェント | 社内API、SaaS、認証済みデータにアクセスする |
| MCP連携エージェント | 外部ツール起動やローカルサービス接続を行う |
AutoJack研究から得られる実務上の結論
Microsoft SecurityのAutoJack AI agent RCE研究で最も重要な教訓は、「AIエージェント時代のlocalhostは、無条件に安全な境界ではない」という点です。AIエージェントが外部コンテンツを読み、同じ端末上のローカル制御面へアクセスできるなら、その制御面にはインターネット公開サービスに近い慎重さで認証・認可・ログ・権限分離を設計する必要があります。
まず行うべきことは、AutoGen StudioやMCPの利用有無だけを確認することではありません。開発端末上で動いているAIエージェントが、どのWebページを読み、どのツールを呼び出し、どのローカルサービスへ到達でき、どの権限でプロセスを起動できるのかを棚卸しすることです。
そのうえで、未信頼Web閲覧とコード実行を分離し、localhostの制御面にも認証をかけ、MCPサーバーやコマンド実行はallowlistで制限し、Microsoft Defenderなどでプロセス作成と外部通信を監視します。AIエージェントの利便性を活かすには、プロンプトの安全性だけでなく、エージェントが動く「足場」の安全性を設計することが欠かせません。

コメント