mcpField
P
pentest-validation

pentest-validation

github.com/proffesor-for-testingセキュリティ519142 回インストール今日更新
リポジトリ

pentest-validation について

pentest-validationは、報告された脆弱性を検証するセキュリティテストスキルです。明示的な許可と非本番環境でのテストを必須とし、再現可能なPoCを根拠に報告します。

主な機能

  1. 014段階の検証パイプライン
  2. 02脆弱性の種類ごとの並列検証
  3. 03費用・時間上限付きの段階的検証
  4. 04証拠に基づく検出結果の報告
  5. 05テスト記録とエクスプロイト手順の更新

活用シーン

  1. 01プルリクエストのソースコード検査
  2. 02ステージング環境での脆弱性検証
  3. 03コンプライアンス監査用PoCの収集

インストール

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

$npx skills add https://github.com/proffesor-for-testing/agentic-qe --skill pentest-validation

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

evals/
pentest-validation.yaml
schemas/
output.json
scripts/
validate-config.json

詳細

ペネトレーションテストの検証

<default_to_action> セキュリティ上の指摘を検証する際は、次の手順に従います。

  1. 対象 URL について明示的な許可を必須とします
  2. qe-security-scanner でスキャンします(SAST + 依存関係 + シークレット)
  3. qe-security-reviewer + qe-security-auditor で並行して分析します
  4. qe-pentest-validator で検証します(段階的なエクスプロイトを実施し、脆弱性の種類ごとに並行処理)
  5. PoC の証拠で確認できた指摘のみ報告します(「エクスプロイトがなければ、報告しない」)
  6. 新しいパターンをエクスプロイトのプレイブックに反映します

品質ゲート:

  • いかなるエクスプロイトの前にも、許可を確認します
  • 対象 URL はステージング/開発環境とします(本番環境は対象外)
  • 予算上限を適用します(デフォルトは $15)
  • 時間上限を適用します(デフォルトは 30 分)
  • すべてのエクスプロイト試行をログに記録します </default_to_action>

クイックリファレンスカード

4 フェーズのパイプライン
フェーズエージェント目的並列処理
1. 偵察qe-security-scannerSAST、DAST、依存関係スキャン、シークレット内部で並行処理
2. 分析qe-security-reviewer + qe-security-auditorコードレビュー + コンプライアンスチェック両方を並行処理
3. 検証qe-pentest-validator段階的なエクスプロイト検証脆弱性の種類ごとに並行処理
4. レポートqe-quality-gate「エクスプロイトがなければ、報告しない」フィルター順次処理
段階的なエクスプロイトのティア
ティアハンドラーコストレイテンシ使用する状況
1Agent Booster (WASM)$0<1msコードパターンから結論を出せる場合(eval、innerHTML、ハードコードされた認証情報)
2Haiku$0.0002~500ms稼働中の対象に対するペイロードテストが必要な場合
3Sonnet/Opus$0.003-$0.0152-5sデータの証拠を伴う完全なエクスプロイトチェーンが必要な場合
このスキルを使用する状況
シナリオティア推定コスト
PR のセキュリティレビュー(ソースのみ)1$0
リリース前の検証(ステージング)1-2$1-5
完全なペネトレーションテストの検証1-3$5-15
コンプライアンス監査の証拠1-3$5-15

設定

pentest:
  target_url: https://staging.app.com    # REQUIRED for Tier 2-3
  source_repo: ./src                      # REQUIRED for Tier 1+
  exploitation_tier: 2                    # 1=pattern-only, 2=payload-test, 3=full-exploit
  vuln_types:                             # Which pipelines to run
    - injection                           # SQL, NoSQL, command injection
    - xss                                 # Reflected, stored, DOM XSS
    - auth                                # Auth bypass, session, JWT
    - ssrf                                # URL scheme abuse, metadata
  max_cost_usd: 15                        # Budget cap per run
  timeout_minutes: 30                     # Time cap per run
  require_authorization: true             # MUST confirm target ownership
  no_production: true                     # Block production URLs
  production_patterns:                    # URL patterns to block
    - "*.prod.*"
    - "api.*"
    - "www.*"

セーフガード(必須)

許可ゲート

ペネトレーションテストの検証を実行するたびに、必ず次の手順を行います。

  1. 対象 URL とエクスプロイトのティアをユーザーに表示します
  2. 明示的な確認を必須とします:「私はこの対象を所有している/テストの許可を得ています」
  3. タイムスタンプとともに許可をログに記録します
  4. 対象 URL が本番環境のパターンに一致する場合はブロックします
このスキルで行わないこと
  • 完全な自律型偵察(Nmap、Subfinder)
  • ゼロデイエクスプロイトの開発
  • 明示的な許可のない対象への攻撃
  • 本番システムのテスト
  • 実際に流出したデータの保存(アクセスの証拠のみを保存)
  • ソーシャルエンジニアリングまたはフィッシングのシミュレーション
  • ポートスキャンまたはサービス検出

検証パイプライン

インジェクションパイプライン
攻撃ティア 1(パターン)ティア 2(ペイロード)ティア 3(完全)
SQL インジェクションクエリ内の文字列連結' OR '1'='1 に対するレスポンスの差分UNION SELECT によるデータ抽出
NoSQL インジェクションクエリ内の $where、$gt演算子インジェクションのテストコレクションの列挙
コマンドインジェクションexec()、system() の呼び出しコマンド区切り文字のテストリバースシェルの証明
LDAP インジェクションフィルター内の文字列連結ワイルドカードインジェクションディレクトリの列挙
XSS パイプライン
攻撃ティア 1(パターン)ティア 2(ペイロード)ティア 3(完全)
反射型 XSS出力エンコーディングなし<img onerror> の反射qe-browser (Vibium) を介したブラウザーでの JS 実行
格納型 XSSinnerHTML への代入ペイロードの格納と取得Cookie 窃取の PoC
DOM XSSdocument.write(location)フラグメントインジェクションDOM 操作の証明
認証パイプライン
攻撃Tier 1(パターン)Tier 2(ペイロード)Tier 3(完全)
JWT noneアルゴリズムの検証なし変更した JWT が受け入れられる偽造トークンによる管理者アクセス
セッション固定化セッションのローテーションなし事前設定したセッションが再利用される他ユーザーのセッション乗っ取り
クレデンシャルスタッフィングレート制限なし100 回の試行がブロックされない有効な認証情報の特定
IDOR認可チェックなし他ユーザーのデータにアクセス他者のリソースに対する完全な CRUD
SSRF パイプライン
攻撃Tier 1(パターン)Tier 2(ペイロード)Tier 3(完全)
内部 URLユーザーが制御する URL の取得http://169.254.169.254クラウドメタデータの抽出
DNS リバインディングURL 検証の回避内部 IP に再バインド内部サービスへのアクセス
プロトコルスマグリングURL スキームが制限されていないfile:///etc/passwdレスポンスにファイルの内容が含まれる

エージェントの連携

オーケストレーションパターン
// Phase 1: Recon (parallel scans)
await Task("Security Scan", {
  target: "./src",
  layers: { sast: true, dast: true, dependencies: true, secrets: true }
}, "qe-security-scanner");

// Phase 2: Analysis (parallel review)
await Promise.all([
  Task("Code Security Review", {
    findings: phase1Results,
    depth: "comprehensive"
  }, "qe-security-reviewer"),

  Task("Compliance Audit", {
    findings: phase1Results,
    frameworks: ["owasp-top-10"]
  }, "qe-security-auditor")
]);

// Phase 3: Validation (graduated exploitation)
await Task("Exploit Validation", {
  findings: [...phase1Results, ...phase2Results],
  target_url: "https://staging.app.com",
  exploitation_tier: 2,
  vuln_types: ["injection", "xss", "auth", "ssrf"],
  max_cost_usd: 15,
  timeout_minutes: 30
}, "qe-pentest-validator");

// Phase 4: Report ("No Exploit, No Report" gate)
await Task("Security Quality Gate", {
  findings: phase3Results.confirmedFindings,
  gate: "no-exploit-no-report",
  require_poc: true
}, "qe-quality-gate");
検出結果の分類
ステータス意味対応
confirmed-exploitablePoC による悪用に成功証拠を添えて報告
likely-exploitable部分的な悪用に成功し、防御機構を検出注意事項を添えて報告
not-exploitableすべての悪用試行に失敗レポートから除外
inconclusiveWAF/防御機構にブロックされ、脆弱性の有無が不明手動レビュー用に報告

エクスプロイト・プレイブックのメモリ

名前空間の構造
aqe/pentest/
 playbook/
  exploit/{vuln_type}/{tech_stack}/{technique}
  bypass/{defense_type}/{technique}
  payload/{vuln_type}/{variant}
 results/
  validation-{timestamp}
 poc/
  {finding_id}-poc
学習ループ
  1. 検証前:検出結果に一致する既知のパターンをプレイブックで照会します
  2. 検証中:まず既知のペイロードを試します(成功率が高いため)
  3. 検証後:新たに成功したパターンを信頼度スコアとともに保存します
  4. 時間の経過とともに:エージェントは技術スタックごとに最も効果的なペイロードへと収束します

コスト最適化

シナリオ別の推定コスト
シナリオTier の割合検出数推定コスト推定時間
PR チェック(ソースのみ)100% Tier 15$0<5s
スプリント検証70% T1、30% T215$2-55-10 min
リリース検証40% T1、40% T2、20% T325$8-1515-30 min
完全なペンテスト20% T1、30% T2、50% T340$15-3030-60 min
Shannon とのコスト比較
指標ShannonAQE ペンテスト検証
1 回あたりのコスト~$50$5-15(段階的な Tier)
実行時間60-90 min15-30 min(並列パイプライン)
誤検知率低(エクスプロイトで実証)低(同じ原則)
学習なし(静的なプロンプト)ReasoningBank プレイブック

成功指標

指標目標測定方法
誤検知の削減検出結果の >60% を排除検証前後の比較
エクスプロイト確認率確認された検出結果の >80% が実際に悪用可能手動での PoC 検証
1 回あたりのコスト<$15 USDパイプラインごとのトークン追跡
1 回あたりの時間<30 分実行時間の指標
プレイブックの拡充6 か月後に 100+ パターンメモリの名前空間数

関連スキル


忘れないでください

「エクスプロイトなしに、報告なし。」 悪用を証明できない脆弱性スキャナーが提供する価値は不確かです。このスキルは、セキュリティ上の検出結果を、理論上のリスクから証拠を伴う実証済みの脆弱性へと変えます。確認された検出結果にはすべて、再現可能な概念実証(PoC)が付属します。すべての誤検知は、レポートに載る前に排除されます。

予測ではなく、証明を重視してください。 脆弱かもしれないものを報告しないでください。脆弱であるものを証明してください。

コメント