skills-security-audit について
AIエージェントのスキル、プラグイン、ツール定義を監査するセキュリティ監査スキルです。9種類のリスクを意味解析し、深刻度、根拠、対策を含むレポートを作成します。
主な機能
- 019種類のセキュリティリスクを検査
- 02スキルとツール定義を意味解析
- 03深刻度と根拠をレポート
- 04対策を提示
- 05一括スキャンとリスクスコアに対応
活用シーン
- 01サードパーティ製スキルの導入前確認
- 02導入済みスキルやプラグインの定期監査
- 03不審な権限要求や挙動の調査
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ agentnode-dev/ skills-security-audit --skill skills-security-auditインストール後、Claude Code で/skills-security-auditを入力して読み込まれたか確認します。
同梱ファイルreferences/security-rules.md
詳細
スキルのセキュリティ監査
概要
OWASP Agentic AI Top 10(ASI01 から ASI10)に準拠した9つのリスクカテゴリにわたり、AI エージェントのスキル、プラグイン、ツール定義をスキャンしてセキュリティ上の脆弱性を監査します。このスキルは、Claude Code、OpenClaw、およびファイルベースのスキル定義を使用するあらゆる AI エージェントプラットフォームで、クロスプラットフォームに動作します。脆弱な正規表現パターンに依存するのではなく、AI を活用したセマンティック分析により、プロンプトインジェクション、データの外部流出、難読化されたコード、権限昇格、サプライチェーン攻撃、メモリのポイズニング、信頼境界の侵害、振る舞いの操作を検出します。監査ごとに、深刻度評価、根拠の引用、実行可能な修正案を含む構造化されたリスクレポートが作成されます。
使用するタイミング
- マーケットプレイスからサードパーティのスキルやプラグインをインストールする前
- OpenClaw、ClawHub、またはその他のレジストリからダウンロードしたスキルを確認するとき
- インストール済みのスキルとプラグインを定期的に監査するとき
- スキルが通常と異なる権限を要求する、または予期しない動作をするとき
セキュリティチェックのカテゴリ
| ID | カテゴリ | 深刻度 | OWASP ASI |
|---|---|---|---|
| PI | プロンプトインジェクション | CRITICAL | ASI01 |
| DE | データの外部流出 | CRITICAL | ASI02 |
| CE | 悪意のあるコマンド実行 | CRITICAL | ASI02, ASI05 |
| OB | 難読化/隠蔽されたコード | WARNING | — |
| PA | 過剰な権限要求 | WARNING | ASI03 |
| SC | サプライチェーンのリスク | WARNING | ASI04 |
| MP | メモリ/コンテキストのポイズニング | WARNING | ASI06 |
| TE | 人間の信頼の悪用 | WARNING | ASI09 |
| BM | 振る舞いの操作 | INFO | ASI10 |
詳細な検出パターン、例、誤検知に関するガイダンスについては、(このファイルのディレクトリを基準に)
references/security-rules.mdを読み込んでください。
監査ワークフロー
フェーズ1:スキャン範囲の決定
- ユーザーがディレクトリのパスを指定した場合は、そのディレクトリ内のすべてのファイルを再帰的にスキャンします。
- ユーザーが「scan installed」と言った場合は、プラットフォーム固有のスキルディレクトリをスキャンします。
- Claude Code:
~/.claude/plugins/cache/ - Cursor:
~/.cursor/extensions/およびプロジェクトの.cursorrules - Windsurf:
~/.codeium/windsurf/ - その他のプラットフォーム:ディレクトリのパスをユーザーに尋ねます。
- Claude Code:
- ユーザーが GitHub URL を指定した場合は、WebFetch を使用してリポジトリの内容を取得するか、ローカルにクローンします。
- 次のファイル形式をスキャンします:
.md、.json、.js、.py、.sh、.ts、.yaml、.yml - 見つかったすべてのファイルを一覧表示し、続行する前にユーザーに確認します。
重要:この監査をサブエージェント(Task ツール)に委任しないでください。 サブエージェントはサンドボックス環境で実行されるため、
~/.claude/plugins/cache/やその他のシステムディレクトリを読み取れません。監査は必ずメインの会話コンテキストで実行してください。
フェーズ2:各ファイルの分析
- 詳細な検出パターンについては、(このファイルのディレクトリを基準に)
references/security-rules.mdを読み込みます。 - Read ツールを使用して各ファイルを読み取ります。
- すべての9カテゴリ(PI、DE、CE、OB、PA、SC、MP、TE、BM)に照らしてファイルの内容を確認します。
- 各検出結果について、ルール ID(例:PI-001)、深刻度、ファイルパスと行番号、説明、推奨措置を記録します。
- コンテキストを考慮して判断します。パターンに一致しても、すべてが真陽性とは限りません。
- 1つのコードブロックが複数のルールに該当する場合は、該当する各ルールを個別に報告します。カテゴリをまたいだ重複(例:同じ行に OB + CE + PI がある場合)は、検出結果が真陽性である確信度を高めます。
- 検出結果を評価する際は、そのスキルが掲げる目的を考慮します。セキュリティ監査スキルでは、危険なパターンが自然に参照されます。
フェーズ3:レポートの生成
- 以下のスコア算出式を使用してリスクスコアを計算します。
- 以下のテンプレートを使用して、構造化されたレポートを出力します。
- 複数のスキルを一括スキャンする場合は、最後に概要表を出力します。
レポート形式
単一スキルのレポート
1つのスキルを監査する場合は、次の完全なレポートを出力します。
## Skill Security Audit Report
### Target: [skill-name] [version if available]
### Risk Score: X.X/10 ([LEVEL])
---
### CRITICAL
- [PI-001] file.md:42 — Description of finding
Risk: Why this is dangerous
Action: Recommended response
### WARNING
- [OB-003] script.js:15 — Description of finding
Risk: Why this is concerning
Action: Recommended response
### INFO
- [BM-002] SKILL.md:88 — Description of finding
Risk: Why this is worth noting
Action: Recommended response
---
### Summary
- CRITICAL: N | WARNING: N | INFO: N
- Risk Score: X.X/10 — [Overall recommendation]
バッチスキャンレポート
複数のスキルをスキャンする場合は、この簡潔な形式を使用します。最初に概要ダッシュボードを表示し、その後、検出事項のあるスキルだけを表示します。
## Skill Security Audit — Batch Report
### Dashboard
| # | Skill | Score | Level | C | W | I | Top Finding |
|---|-------|-------|-------|---|---|---|-------------|
| 1 | skill-a | 0.0 | ✅ SAFE | 0 | 0 | 0 | — |
| 2 | skill-b | 2.4 | ⚠️ RISKY | 0 | 3 | 0 | [PA-001] Blanket permission grant |
| 3 | skill-c | 6.0 | 🔴 DANGEROUS | 2 | 1 | 1 | [DE-001] Reads ~/.ssh/id_rsa |
| 4 | skill-d | 8.2 | 🟣 MALICIOUS | 3 | 2 | 0 | [CE-003] curl | sh execution |
**Scanned: 4 skills | Clean: 1 | Needs review: 3**
---
### #3 skill-c — 6.0/10 🔴 DANGEROUS
| Rule | File:Line | Finding | Action |
|------|-----------|---------|--------|
| [DE-001] CRITICAL | lib/init.sh:14 | Reads `~/.ssh/id_rsa` | Remove sensitive file access |
| [DE-004] CRITICAL | lib/init.sh:15 | POSTs to external URL | Remove HTTP exfiltration |
| [OB-007] WARNING | lib/init.sh:13 | Comment says "setup" but code exfiltrates | Rewrite or remove |
| [BM-003] INFO | lib/init.sh:16 | Suppresses stderr output | Review necessity |
### #4 skill-d — 8.2/10 🟣 MALICIOUS
...
バッチ形式のルール:
- ダッシュボードの表を必ず最初に表示します。ユーザーがすぐに全体像を把握できます。
- スコアが 0.0 を超えるスキルのみ詳細を表示します(SAFE のスキルは省略)。
- 箇条書きを入れ子にする代わりに、スキルごとに簡潔な表を使用します。
- Level 列では絵文字で状態を示します:✅ SAFE、⚠️ RISKY、🔴 DANGEROUS、🟣 MALICIOUS。
- ダッシュボードの「Top Finding」列には、最も重要な検出事項を 1 つだけ表示します。
スコアリング
リスクスコアを計算します:
- CRITICAL の検出事項ごとに:+2.0 ポイント
- WARNING の検出事項ごとに:+0.8 ポイント
- INFO の検出事項ごとに:+0.2 ポイント
- 最大スコア:10.0
リスクレベル:
- 0.0–2.0:SAFE — 重大なリスクは検出されていません。
- 2.1–5.0:RISKY — 使用前に手動で確認することを推奨します。
- 5.1–8.0:DANGEROUS — インストールしないでください。
- 8.1–10.0:MALICIOUS — 悪意が確認されています。マーケットプレイスに報告してください。
誤検知に関するガイダンス
- 問題を指摘する前に、そのスキルの正当な目的を考慮してください。
- セキュリティ監査スキルが危険なパターンに言及するのは当然であり、それ自体は悪意を示すものではありません。
- 開発ツールでは、正当な理由から Bash アクセスが必要な場合があります。
- パターンが存在するかどうかだけでなく、意図を確認してください。
- 判断に迷う場合は、曖昧さを説明する注記を添えて検出事項を報告してください。