mcpField
G
ghost-validate

ghost-validate

github.com/ghostsecurityセキュリティ4273.9k 回インストール4 週間前に更新
リポジトリ

ghost-validate について

ghost-validate は、セキュリティ指摘が真陽性か誤検知かを判断するスキルです。ソースコードのレビューを案内し、実行環境が利用可能な場合はプロキシ経由でテストして、証拠と推奨事項をまとめます。

主な機能

  1. 01指摘内容とエンドポイントの分析
  2. 02ソースコードとリクエストフローの確認
  3. 03任意の実環境での悪用可能性テスト
  4. 04証拠に基づく判定とレポート
  5. 05任意の検証記録の指摘ファイルへの追記

活用シーン

  1. 01報告されたセキュリティ指摘のトリアージ
  2. 02到達可能なエンドポイントの悪用可能性テスト
  3. 03検証の証拠と推奨事項の記録

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/ghostsecurity/skills --skill ghost-validate

インストール後、Claude Code で/ghost-validateを入力して読み込まれたか確認します。

同梱ファイルVULNERABILITY_PATTERNS.md

詳細

セキュリティ指摘の検証

セキュリティ指摘が真陽性か偽陽性かを判定します。根拠を添えて判定を提示します。

入力

ユーザーは、ファイルパスまたは貼り付けたテキストで指摘を提示します。どちらも提示されていない場合は、どちらかを求めてください。

次の情報を抽出します:脆弱性クラス、具体的な主張、影響を受けるエンドポイント、コードの場所、既存の検証根拠。

検証ワークフロー

Step 1: 指摘の内容を把握する

次を特定します:

  • 脆弱性クラス(BFLA、BOLA、XSS、SQLi、SSRF など)
  • 具体的な主張(どの認可チェックが欠落しているか、どの入力がサニタイズされていないかなど)
  • 影響を受けるエンドポイントと HTTP メソッド
  • コードの場所
Step 2: ソースコードを分析する
  1. 指定された行番号にある脆弱なファイルと、関連するすべてのファイルを読みます
  2. ルート登録からミドルウェアを経てハンドラーに至るまで、リクエストの流れを追跡します
  3. 具体的な主張を検証します。コードには実際に説明されたチェックが欠けていますか?
  4. スキャナーが見落とした可能性のある間接的な保護(ミドルウェア、ヘルパー、ORM の制約)を探します
  5. 説明された条件下で、脆弱なコードパスに到達できることを確認します
Step 3: ライブ検証(可能な場合)

アプリケーションのライブインスタンスにアクセスでき、ライブでのやり取りを通じて脆弱性を確認できる場合は、proxy スキルを使って悪用可能性を確認します。

  1. 対象ドメインにスコープを限定して reaper プロキシを起動します
  2. 正当なユーザーとして認証する(またはユーザーに認証してもらう)とともに、脆弱なエンドポイントへの有効なリクエストを取得します
  3. 指摘で説明された攻撃を試みるため、リクエストを再送信するか変更します
  4. レスポンスを期待される動作と比較します:
    • 未認可の操作が成功しますか?(真陽性)
    • サーバーは 401/403/404 で拒否しますか?(偽陽性)
  5. reaper get <id> を使って、リクエストとレスポンスのペアを証拠として取得します
Step 4: 判定する

指摘を次のいずれかに分類します。

  • True Positive:脆弱性が存在し、悪用可能です。コードに説明された保護がなく、エンドポイントに到達できます。
  • True Positive (Confirmed):上記と同じで、さらにライブテストで悪用の成功が実証されています。
  • False Positive:脆弱性は存在しません。具体的な理由(間接的な保護が見つかった、コードパスに到達できないなど)を示します。
  • Inconclusive:追加情報なしでは判定できません。必要な情報を明記します。
Step 5: 報告する

次の形式で概要を出力します。

  1. 判定:True Positive、False Positive、または Inconclusive
  2. 確信度:High、Medium、または Low
  3. 根拠の概要:コードレビューおよび/またはライブテストで確認した主な事項
  4. コード分析:判定を裏付ける具体的な行とロジック
  5. ライブテスト結果(実施した場合):動作を示すリクエストとレスポンスのペア
  6. 推奨事項:真陽性の場合は修正、偽陽性の場合はクローズ、判定不能の場合は追加情報を収集

例:

## Validation Result
- **Determination**: True Positive
- **Confidence**: High
- **Evidence**: Handler at routes/transfers.go:142 queries transfers by ID without checking ownership. No middleware or ORM-level constraint enforces user scoping.
- **Recommendation**: Add ownership check — include user_id in the WHERE clause.
Step 6: 結果を保存する

指摘がファイルパスで提示された場合は、検証の詳細を元の指摘ファイルに追記するか、ユーザーに確認します。承諾された場合は、判定、確信度、根拠の概要、推奨事項を含む ## Validation セクションをファイルに追記します。

脆弱性クラスのリファレンス

認可の欠陥(BFLA/BOLA/IDOR)、インジェクション(SQLi/XSS)、認証の欠陥を検証する際に確認すべきパターンについては、このスキルディレクトリ内の VULNERABILITY_PATTERNS.md を参照してください。

コメント