security-scan について
security-scan は、複数言語のプロジェクトを対象にセキュリティスキャンを行うスキルです。プロジェクトの目印から言語を判定し、OWASP パターンで検査してレポートを作成します。修正案は sniper エージェントに委任し、自らコードは変更しません。
主な機能
- 01プロジェクトの目印から言語を判定
- 02OWASP パターンによる脆弱性スキャン
- 03OWASP カテゴリー別に検出事項を整理
- 04構造化されたスキャンレポートを作成
- 05ファイルと行番号付きで修正を委任
活用シーン
- 01コードベースの一般的な脆弱性をスキャン
- 02GraphQL エンドポイントのセキュリティパターンを確認
- 03OWASP 分類のセキュリティレポートを作成
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ fusengine/ agents --skill security-scanインストール後、Claude Code で/security-scanを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/graphql-security.mdowasp-top10.mdscan-patterns-extra.mdscan-patterns.mdreferences/templates/scan-report.md詳細
このスキルは、JavaScript/TypeScript、PHP、Python、Swift/iOS、Go、Rust を対象に、セキュリティスキャン全体を統括します。プロジェクトのマーカーから言語を検出し、対応するパターンセットを読み込み、ハーネスの自動スキャナー(OWASP のパターンを `@fusengine/harness` に移植したもの)を実行して、検出結果を OWASP Top 10 のカテゴリに分類し、構造化レポートを生成します。
パターンカテゴリには、XSS、SQL インジェクション、コマンドインジェクション、安全でないコード実行(eval/exec)、SSRF、脆弱な暗号化、ハードコードされたシークレット、安全でないデシリアライゼーション、パストラバーサル/LFI/RFI が含まれます。また、GraphQL エンドポイントが存在する場合は、GraphQL 固有のパターン(イントロスペクション、深度/複雑度の制限、バッチ処理、認可)も対象となります。
スキャン後、ファイルと行番号、脆弱性、修正方法を示して、修正作業をスナイパーエージェントに委任します。修正自体は適用しません。
セキュリティスキャンスキル
概要
サポート対象のすべての言語を対象に、セキュリティスキャンのワークフロー全体を統括します。
サポート対象言語
| 言語 | マーカーファイル | パターン数 |
|---|---|---|
| JavaScript/TypeScript | package.json | 25+ |
| PHP | composer.json | 20+ |
| Python | requirements.txt, pyproject.toml | 18+ |
| Swift/iOS | Package.swift, *.xcodeproj | 15+ |
| Go | go.mod | 12+ |
| Rust | Cargo.toml | 10+ |
ワークフロー
- 検出 プロジェクトのマーカーから言語を検出します
- 読み込み
references/scan-patterns.mdからパターンを読み込みます - 実行 自動スキャンのために
bun ${CLAUDE_PLUGIN_ROOT}/../node_modules/@fusengine/harness/dist/cli/bin.mjs scan <dir>を実行します(OWASP のパターンをハーネスに移植したものです) - 分類
references/owasp-top10.mdを使って検出結果を OWASP カテゴリに分類します - 生成
references/templates/scan-report.mdを使ってレポートを生成します
パターンカテゴリ
- XSS(クロスサイトスクリプティング)
- SQL インジェクション
- コマンドインジェクション
- コード実行(eval、exec)
- SSRF(サーバーサイドリクエストフォージェリ)
- 脆弱な暗号化
- ハードコードされたシークレット
- 安全でないデシリアライゼーション
- パストラバーサル/LFI/RFI
統合
スキャン後、修正作業をスナイパーに委任します:
Agent(subagent_type="fuse-ai-pilot:sniper", prompt="Security fixes: [FILE:LINE] [VULN] [FIX]")
参考資料
- OWASP Top 10 のマッピング
- 言語別スキャンパターン
- レポートテンプレート
- GraphQL セキュリティパターン — 対象が GraphQL エンドポイントを公開している場合に読み込みます(イントロスペクション、深度/複雑度の制限、バッチ処理、認可チェック)。
- スキャンパターン — Python、Swift/iOS、Go、Rust — Python、Swift/iOS、Go、Rust のソースコードをスキャンする場合に読み込みます(
scan-patterns.mdに含まれていないパターン)。
コメント
Markdown 対応