---
title: "AIエージェントのセキュリティチェックリスト：リリース前の22項目 · DotsAgent"
description: "信頼できない入力、ツールの認証情報、サンドボックス、MCP トークン、CI のシークレットを網羅した、AIエージェント向け22項目のセキュリティチェックリストです。進捗はブラウザーに保存されます。"
url: https://dotsagent.io/ja/security/checklist
---

セキュリティ · ツール

# エージェントのセキュリティチェックリスト

エージェントに実データや認証情報を扱わせる前に、これらの項目を確認してください。各項目から対応する防御策を確認できます。進捗は Markdown ファイルとしてエクスポートできるため、レビューや pull request に添付できます。

0/22 完了

チェック状態はこのブラウザにのみ保存されます。

## 信頼できない入力

- [ ] **エージェントに入るすべての信頼できないコンテンツにラベルを付ける** Webページ、メール、issue、チケット、ツールの結果など、外部の人が書き込めるコンテンツを明示します。これらには指示が含まれている可能性があります。 [危険な3要素を断つ →](https://dotsagent.io/ja/security#lethalTrifecta)

- [ ] **3つの要素すべてを持つエージェントがないように分割する** エージェントが信頼できないコンテンツを読む場合は、機密データか外部への送信経路のいずれかを取り上げます。1つのエージェントに3つすべてが必要な場合は、計画してから実行する方式か、dual-LLM設計を使います。 [信頼できない入力を受けた後のエージェントを制限する →](https://dotsagent.io/ja/security#designPatterns)

- [ ] **接続するすべてのツールの説明を確認し、固定する** ツールの説明はそのままモデルのコンテキストに入ります。サーバーを接続する前に内容を確認し、ハッシュを記録して、後から変更された場合に検知できるようにします。 [スキル、プラグイン、MCPサーバーを審査する →](https://dotsagent.io/ja/security#supplyChainVetting)

- [ ] **モデルの出力は、表示または実行する前にエスケープする** 表示する出力内の外部画像やリンクが自動読み込みされないようにし、厳格なCSPを設定します。未加工の出力をシェル、SQLクエリ、evalに渡してはいけません。 [モデル出力を信頼できないデータとして扱う →](https://dotsagent.io/ja/security#outputHandling)

## ツールと認証情報

- [ ] **すべてのツール接続を読み取り専用で開始する** 書き込み、削除、送信の権限は、それを必要とする特定のツールに、そのタスクの間だけ付与します。 [最小権限の認証情報を使う →](https://dotsagent.io/ja/security#leastPrivilege)

- [ ] **各トークンを単一のプロジェクトに限定し、権限を最小限にする** エージェントにadminやservice_roleのキーを使わせてはいけません。有効期間が短く、プロジェクトに限定されたトークンを使えば、漏えい時の被害を最小限に抑えられます。 [最小権限の認証情報を使う →](https://dotsagent.io/ja/security#leastPrivilege)

- [ ] **書き込み、削除、送信には人間の承認を必須にする** 承認プロンプトにツールの引数をすべて表示し、応答がなければ拒否します。OpenClawではtools.exec.askをalwaysに設定します。 [重大な操作には承認を必須にする →](https://dotsagent.io/ja/security#humanApproval)

- [ ] **スキル、プラグイン、MCPサーバーのバージョンを正確に固定する** 更新のたびにdiffを確認し、VirusTotalのスキャナー判定やClawHubの監査結果を確認します。OpenClawではsecurity.installPolicyを設定します。 [スキル、プラグイン、MCPサーバーを審査する →](https://dotsagent.io/ja/security#supplyChainVetting)

- [ ] **各ツールが必要とするホストへの送信通信のみ許可する** エージェントとMCPサーバーの送信通信は、デフォルトですべて拒否します。誰でもコンテンツを公開できるマルチテナントホストは、自動承認リストに含めないでください。 [外向きのネットワークアクセスを制限する →](https://dotsagent.io/ja/security#egressControl)

## ランタイムとネットワーク

- [ ] **コードとシェルのツールをサンドボックスで実行する** 認証情報を含まず、ワークスペースだけをマウントしたコンテナまたはVMを使います。OpenClawではサンドボックスを有効にし、tools.exec.securityをdenyまたはallowlistに設定して、elevatedモードは無効のままにします。 [コードとツールの実行をサンドボックス化する →](https://dotsagent.io/ja/security#sandboxing)

- [ ] **ゲートウェイとダッシュボードはループバックのみにバインドする** リモートからアクセスする場合は、SSHトンネルまたはTailscale Serveを使い、24文字以上のトークンを設定します。openclaw security audit --deepを実行して確認してください。 [コントロールプレーンをインターネットに公開しない →](https://dotsagent.io/ja/security#noPublicControlPlane)

- [ ] **エージェントにメッセージを送れるユーザーを制限する** DMペアリングまたは許可リストを使い、グループチャットではメンションを必須にします。エージェントにメッセージを送れる人は誰でも、指示を試みることができます。 [エージェントにメッセージを送れる人を制限する →](https://dotsagent.io/ja/security#inboundAccessControl)

- [ ] **ユーザーまたは送信者ごとに別のセッションを割り当てる** 異なるユーザーが同じ会話コンテキストを共有しないようにします。OpenClawではsession.dmScopeをper-channel-peerに設定します。 [MCPのセッションとテナントを分離する →](https://dotsagent.io/ja/security#sessionIsolation)

## MCPサーバーとクライアント

- [ ] **自分のサーバー向けに発行されていないMCPトークンを拒否する** すべてのアクセストークンのaudienceを確認し、クライアントにはRFC 8707のresource indicatorを送信させて、各トークンを1つのサーバーに紐付けます。 [MCPトークンのaudienceを検証する →](https://dotsagent.io/ja/security#mcpTokenAudience)

- [ ] **クライアントのトークンを上流APIに転送しない** 上流へのリクエストには別のトークンを取得します。サーバーがサードパーティにリクエストをプロキシする場合は、confused deputy問題を避けるため、各クライアントから同意を得ます。 [MCPトークンのaudienceを検証する →](https://dotsagent.io/ja/security#mcpTokenAudience)

- [ ] **MCP SDKとツールを修正済みのバージョンに保つ** 最低限、TypeScript SDKは1.26.0、Python SDKは1.27.2、mcp-remoteは0.1.16、MCP Inspectorは0.14.1を使います。セッションごとにサーバーとトランスポートを1つずつ作成します。 [MCPのセッションとテナントを分離する →](https://dotsagent.io/ja/security#sessionIsolation)

## CIとコードレビュー

- [ ] **外部ユーザーが起動できるCIエージェントにシークレットを渡さない** 外部ユーザーによるプルリクエスト、issue、コメントで実行されるエージェントのジョブには、読み取り専用トークンだけを渡し、リポジトリのシークレットは渡しません。 [信頼できないCI実行からシークレットを隔離する →](https://dotsagent.io/ja/security#ciSecretIsolation)

- [ ] **プルリクエストとissueの内容を敵対的な入力として扱う** 外部ユーザーによるタイトル、説明、コメント、差分には指示が含まれている可能性があります。それらを対象にシークレットを使うジョブを実行する前に、メンテナーの承認を必須にします。 [信頼できないCI実行からシークレットを隔離する →](https://dotsagent.io/ja/security#ciSecretIsolation)

## 運用

- [ ] **すべてのツール呼び出しについて、引数と結果を記録する** エージェントが編集できない場所にログを保管します。インシデントの経緯を再構成し、異常な呼び出しを見つけるために必要です。

- [ ] **エージェントをすぐに停止し、トークンを失効できる手段を用意する** 実行中のすべてのエージェントを停止し、認証情報を数分以内に失効させる方法を把握しておきます。必要になる前に手順をリハーサルしてください。

- [ ] **リリース前にプロンプトインジェクションへの耐性をテストする** issue、メール、Webページなど、エージェントが読むコンテンツに指示を埋め込み、重大なアクションが実行されないことを確認します。ツールやプロンプトを変更するたびにテストを繰り返します。

- [ ] **エージェントからの通信を信頼する前に署名を検証する** Web Bot Authの署名をオペレーターのキーディレクトリと照合し、エージェントを特定します。署名が示すのはオペレーターでありユーザーではないため、実行を許可する操作は別途認可してください。 [エージェントの署名を検証してから認可する →](https://dotsagent.io/ja/security#verifyAgentSignatures)

## Markdownとしてエクスポート

`SECURITY-CHECKLIST.md`

```
## 信頼できない入力
- [ ] エージェントに入るすべての信頼できないコンテンツにラベルを付ける
- [ ] 3つの要素すべてを持つエージェントがないように分割する
- [ ] 接続するすべてのツールの説明を確認し、固定する
- [ ] モデルの出力は、表示または実行する前にエスケープする

## ツールと認証情報
- [ ] すべてのツール接続を読み取り専用で開始する
- [ ] 各トークンを単一のプロジェクトに限定し、権限を最小限にする
- [ ] 書き込み、削除、送信には人間の承認を必須にする
- [ ] スキル、プラグイン、MCPサーバーのバージョンを正確に固定する
- [ ] 各ツールが必要とするホストへの送信通信のみ許可する

## ランタイムとネットワーク
- [ ] コードとシェルのツールをサンドボックスで実行する
- [ ] ゲートウェイとダッシュボードはループバックのみにバインドする
- [ ] エージェントにメッセージを送れるユーザーを制限する
- [ ] ユーザーまたは送信者ごとに別のセッションを割り当てる

## MCPサーバーとクライアント
- [ ] 自分のサーバー向けに発行されていないMCPトークンを拒否する
- [ ] クライアントのトークンを上流APIに転送しない
- [ ] MCP SDKとツールを修正済みのバージョンに保つ

## CIとコードレビュー
- [ ] 外部ユーザーが起動できるCIエージェントにシークレットを渡さない
- [ ] プルリクエストとissueの内容を敵対的な入力として扱う

## 運用
- [ ] すべてのツール呼び出しについて、引数と結果を記録する
- [ ] エージェントをすぐに停止し、トークンを失効できる手段を用意する
- [ ] リリース前にプロンプトインジェクションへの耐性をテストする
- [ ] エージェントからの通信を信頼する前に署名を検証する
```

AIエージェント開発者向けの独立したリファレンスです。ここに記載されているいずれのベンダーとも提携していません。

© 2026 DotsAgent · 確認日: 2026年10月1日
