セキュリティ · ツール
エージェントのセキュリティチェックリスト
エージェントに実データや認証情報を扱わせる前に、これらの項目を確認してください。各項目から対応する防御策を確認できます。進捗は Markdown ファイルとしてエクスポートできるため、レビューや pull request に添付できます。
信頼できない入力
ツールと認証情報
ランタイムとネットワーク
MCPサーバーとクライアント
CIとコードレビュー
運用
Markdownとしてエクスポート
## 信頼できない入力
- [ ] エージェントに入るすべての信頼できないコンテンツにラベルを付ける
- [ ] 3つの要素すべてを持つエージェントがないように分割する
- [ ] 接続するすべてのツールの説明を確認し、固定する
- [ ] モデルの出力は、表示または実行する前にエスケープする
## ツールと認証情報
- [ ] すべてのツール接続を読み取り専用で開始する
- [ ] 各トークンを単一のプロジェクトに限定し、権限を最小限にする
- [ ] 書き込み、削除、送信には人間の承認を必須にする
- [ ] スキル、プラグイン、MCPサーバーのバージョンを正確に固定する
- [ ] 各ツールが必要とするホストへの送信通信のみ許可する
## ランタイムとネットワーク
- [ ] コードとシェルのツールをサンドボックスで実行する
- [ ] ゲートウェイとダッシュボードはループバックのみにバインドする
- [ ] エージェントにメッセージを送れるユーザーを制限する
- [ ] ユーザーまたは送信者ごとに別のセッションを割り当てる
## MCPサーバーとクライアント
- [ ] 自分のサーバー向けに発行されていないMCPトークンを拒否する
- [ ] クライアントのトークンを上流APIに転送しない
- [ ] MCP SDKとツールを修正済みのバージョンに保つ
## CIとコードレビュー
- [ ] 外部ユーザーが起動できるCIエージェントにシークレットを渡さない
- [ ] プルリクエストとissueの内容を敵対的な入力として扱う
## 運用
- [ ] すべてのツール呼び出しについて、引数と結果を記録する
- [ ] エージェントをすぐに停止し、トークンを失効できる手段を用意する
- [ ] リリース前にプロンプトインジェクションへの耐性をテストする
- [ ] エージェントからの通信を信頼する前に署名を検証する