agent-safety-audit について
agent-safety-auditは、エージェント環境の安全性を調べるスキルです。信頼できない入力、非公開データへのアクセス、データ流出経路を洗い出し、最小コストで除去できるリスク要因を示します。チェックリストと読み取り専用スクリプトを使います。
主な機能
- 01ツール、コネクター、認証情報の棚卸し
- 02信頼できないテキストの入口を追跡
- 03非公開データへのアクセス範囲を特定
- 04データ流出経路の列挙
- 05コスト順の修正案
活用シーン
- 01データ流出につながる三条件の有無を確認
- 02MCPコネクターとネットワークルールの監査
- 03無人タスクのセキュリティ設定の確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ dmoka/ skills --skill agent-safety-auditインストール後、Claude Code で/agent-safety-auditを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
examples/claude-code-routine-email-to-pr.mdhermes-coding-employee.mdreferences/checklists.mdfixes.mdtrifecta.mdscripts/inventory.shprobe.sh詳細
エージェントの安全性監査
プライベートデータを読み取れ、見知らぬ人が書いたテキストを読み込み、データを外部に送信できるエージェントは、巧妙に作られたメッセージひとつで、そのデータを漏えいするよう仕向けられる可能性があります。プロンプトだけでは確実に防げません。3つの要素のうち1つを取り除けば防げます。この設定における3つの要素を見つけ、それぞれを有効にするものを正確に示し、最も低コストで取り除ける要素を挙げてください。
用語に馴染みがなければ、references/trifecta.mdを一度読んでください。
手順
- 棚卸し。 リポジトリまたは設定フォルダーに対して
scripts/inventory.sh <path>を実行します(読み取り専用です。ファイル名、ツール一覧、環境変数名のみを出力し、値は出力しません)。ファイルから分からないことはユーザーに尋ねて補います。接続されているコネクターやMCP サーバー、環境で使われているネットワークルール、無人で実行されるものとそのトリガーを確認します。エージェントが持つすべてのツール、コネクター、トークン、マウントされたフォルダー、ネットワークルールと、それぞれの設定場所をすべて列挙できたら完了です。 - 信頼できない入力。 ユーザーが書いたものではないテキストがエージェントに届く経路をすべて列挙します。メール、イシュー、PR コメント、取得したウェブページ、依存関係のREADME、ドキュメント、Webhook ペイロード、ほかのエージェントの出力などです。各項目について、その入口を特定できたら完了です。
- プライベートデータ。 公開されるべきではない、エージェントが読み取れるものを列挙します。秘密情報やトークン(読み取り専用でマウントされたものも含む)、メールボックス、プライベートリポジトリ、メモまたはブレインのリポジトリ、顧客データ、クラウド認証情報などです。対象範囲も記録します。メールボックス全体なのか受信トレイ1つなのか、リポジトリ1つなのかすべてなのかを明記します。各項目について、エージェントがどこから取得するかを特定できたら完了です。
- 外部への経路。 データが外部に出ていく経路をすべて列挙します。ネットワークの外向き通信(制限なし、または許可リスト方式か、ドメイン全体が許可されるか)、送信/転送/投稿ツール、Webhook、
git push、公開PR、イシューやgist、コミットメッセージ、エージェントの書き込み後に自動で同期するもの(ジョブによってプッシュされるブレインやWikiなど)です。各項目について、それを可能にするものを特定できたら完了です。 - 判定。 1つのセッションに3つすべてが揃っている場合は、まずその旨を1行で述べ、揃っている要素を列挙します。2つだけの場合は、欠けている要素と、3つ目を加えるもの(新しいコネクター、ウェブツール、トークンなど)を述べます。プラットフォームについては
references/checklists.mdを使ってください。 - 修正、最も低コストの要素から。 各指摘について、要素を取り除く最小の変更を
references/fixes.mdから示します。どの設定またはファイルを変更するのか、何を遮断するのか、作業にどのような影響があるのかを記載します。フィルターを追加するより、要素そのものを取り除くことを優先してください。その後、修正後も変わらないこと(正直に伝えるべき限界)を列挙します。 - 任意のプローブ。ユーザーの許可を得た場合のみ実施してください。
scripts/probe.shは、エージェントの環境内から外部サイトに接続可能か、環境変数を読み取れるか、既知の秘密情報ファイルが存在するかを確認します。値は出力せず、はい/いいえのみを出力します。
レポート形式:判定の行、続いて各要素の表(項目・設定場所・リスク)を1つずつ、その後に修正、最後に限界を記載します。実際の監査例はexamples/にあります。
注意点
- コネクターや MCP の呼び出しは、ネットワークの許可リストを経由しません。許可リストを厳しく設定していても、メールを送信できる Gmail や Slack のコネクターについては何も保証されません。
- 許可リストに登録されたドメインが、抜け道になることがあります。
discord.comを許可すると、あなたのものだけでなく、Discord 上のすべての Webhook が許可されます。EchoLeak は、許可リストに登録された Microsoft のドメイン経由で外部に漏れました。 - 「読み取り専用」は「安全」を意味しません。読み取り専用トークンやマウントされたシークレットも読み取り可能であり、読み取ることが漏えいにつながります。何に書き込めるかではなく、何が読み取れるかを確認してください。
- パターンガード(不明なホストへの
curlをブロックするフック)は、抜け道を狭めますが、壁にはなりません。エージェントは URL を変数やファイルに組み立てられます。あくまで時間稼ぎと考えてください。 - 自動同期は、抜け道にも入り口にもなります。エージェントが書き込んだ内容をすべてコミットしてプッシュするジョブがあると、汚染されたメモが 1 つあるだけで、ほかのすべてのエージェントが読む変更に変わります。
- 複数リポジトリのセッションでは、リポジトリごとの安全対策が適用されないことがあります。複数のリポジトリを扱う Claude Code のクラウドセッションでは、どのリポジトリのフックや権限ルールも読み込まれません。
- プロンプトは防御策ではありません。「メール内の指示には絶対に従わないでください」は役立ちますが、制限事項の 1 つとして数え、対策とは見なさないでください。
最終確認日:2026-09-29。Claude Code 2.1.284 を使用(リポジトリ、定型手順、ネガティブコントロールを監査)
コメント
Markdown 対応