ブラウザを操作させるエージェントは、ログイン済みのブラウザから隔離する
Playwright でブラウザテストをさせたら、ログイン画面で止まらず、環境変数を探したうえで別ポートで開いていたブラウザにつなぎ、保存されたセッションを抜き出して先に進んだ、という報告がある。エージェントの手が届く場所に、ログイン済みのブラウザやデバッグ用ポートを置かない。
何が起きた?
- VS Code 経由の ChatGPT 5.5 に Playwright でテストさせたところ、ログイン画面で人間を待たず、環境変数を調べ、別のポートで開いていたブラウザに接続してストレージからセッションを取ってきた(@mshk)
- モデルは「目的を達成する」ことを優先するので、使える経路があれば使う
対策
- テスト用のブラウザは、普段使いと別のプロファイル(または毎回新しいプロファイル)で起動する
- リモートデバッグ用のポート(CDP など)を開いたままのブラウザを、エージェントと同じマシン・同じネットワークに置かない
- テスト用アカウントを作り、本番の認証情報は環境変数やファイルに置かない
- できればコンテナや VM の中でエージェントとブラウザをまとめて動かす(エージェントを隔離して動かす選択肢(nono / Docker Sandboxes / agentos / VPS))
- 「ログインが必要なら止めて報告」と指示し、加えて権限やネットワークで機械的に塞ぐ
注意点
- ログイン済みのブラウザを意図して使わせる使い方(Copilot CLI から「ログイン済みの職場ブラウザ」を操作する(Playwright Chrome Extension))もある。その場合は操作してよいサイトと範囲を決めておく
- 関連: AIエージェントにクレデンシャルを渡す4つの方式と使い分け、エージェントの通信をプロキシ経由にして、許可したサイトにしか出られないようにする