mcpField
V
vulnerability-scanner

vulnerability-scanner

github.com/sickn33セキュリティ48.7k1.3k 回インストール今日更新
リポジトリ

vulnerability-scanner について

脅威モデリング、攻撃対象領域の整理、コードパターンの確認、リスクの優先順位付けを行うセキュリティスキルです。ヒューリスティックな Python スキャナーとチェックリストを含み、結果は手動で検証する必要があります。

主な機能

  1. 01脅威モデリングと攻撃対象領域の整理
  2. 02OWASP のリスク分類とチェックリスト
  3. 03状況に応じた脆弱性の優先順位付け
  4. 04コードパターンとシークレットの確認
  5. 05任意のヒューリスティック Python スキャナー

活用シーン

  1. 01アプリケーションの攻撃対象領域の確認
  2. 02報告された脆弱性の優先順位付け
  3. 03コード内の危険なパターンの確認
  4. 04セキュリティ上の指摘と修正案の整理

インストール

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

$npx skills add https://github.com/sickn33/agentic-awesome-skills --skill vulnerability-scanner

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

同梱ファイルchecklists.mdscripts/security_scan.py

詳細

脆弱性スキャナー

攻撃者のように考え、専門家のように防御しましょう。2025年の脅威情勢を把握します。

🔧 ランタイムスクリプト

任意のヒューリスティック スキャン(セキュリティ検証ではありません):

スクリプト目的使用方法
scripts/security_scan.py適用されているセキュリティ原則を検証するpython scripts/security_scan.py <project_path>

📋 参照ファイル

ファイル目的
checklists.mdOWASP Top 10、認証、API、データ保護のチェックリスト

1. セキュリティ専門家の考え方

基本原則
原則適用方法
侵害を前提とする攻撃者がすでに内部に侵入している前提で設計する
ゼロトラスト決して信頼せず、常に検証する
多層防御複数の防御層を設け、単一障害点をなくす
最小権限必要最小限のアクセスのみを許可する
安全側に失敗させるエラー発生時はアクセスを拒否する
脅威モデリングの質問

スキャンの前に、次の点を確認してください。

  1. 何を保護するのか?(資産)
  2. 誰が攻撃する可能性があるのか?(脅威アクター)
  3. どのように攻撃するのか?(攻撃ベクトル)
  4. どのような影響があるのか?(ビジネスリスク)

2. OWASP Top 10:2025

リスクカテゴリ
順位カテゴリ考慮する点
A01アクセス制御の不備誰が何にアクセスできるか? IDOR、SSRF
A02セキュリティ設定の不備デフォルト設定、ヘッダー、公開されたサービス
A03ソフトウェアサプライチェーン 🆕依存関係、CI/CD、ビルドの完全性
A04暗号化の失敗脆弱な暗号、漏えいした秘密情報
A05インジェクションユーザー入力 → システムコマンド
A06安全でない設計アーキテクチャの欠陥
A07認証の失敗セッション、認証情報の管理
A08完全性の失敗署名のない更新、改ざんされたデータ
A09ロギングとアラート監視の死角、監視機能の欠如
A10例外的な状況 🆕エラー処理、フェイルオープン状態
2025年の主な変更点
2021 → 2025 Shifts:
├── SSRF merged into A01 (Access Control)
├── A02 elevated (Cloud/Container configs)
├── A03 NEW: Supply Chain (major focus)
├── A10 NEW: Exceptional Conditions
└── Focus shift: Root causes > Symptoms

3. サプライチェーンセキュリティ(A03)

攻撃対象領域
ベクトルリスク確認事項
依存関係悪意のあるパッケージ新しい依存関係を監査していますか?
ロックファイル完全性への攻撃コミットされていますか?
ビルドパイプラインCI/CD の侵害誰が変更できますか?
レジストリタイポスクワッティング検証済みのソースですか?
防御の原則
  • パッケージの完全性を検証する(チェックサム)
  • バージョンを固定し、更新を監査する
  • 重要な依存関係にはプライベートレジストリを使用する
  • 成果物に署名し、検証する

4. 攻撃対象領域のマッピング

マッピングする対象
カテゴリ要素
エントリーポイントAPI、フォーム、ファイルアップロード
データフロー入力 → 処理 → 出力
信頼境界認証/認可を確認する場所
資産秘密情報、PII、ビジネスデータ
優先順位付けマトリクス
Risk = Likelihood × Impact

High Impact + High Likelihood → CRITICAL
High Impact + Low Likelihood  → HIGH
Low Impact + High Likelihood  → MEDIUM
Low Impact + Low Likelihood   → LOW

5. リスクの優先順位付け

CVSS + コンテキスト
要因重み質問
CVSS スコア基本的な深刻度脆弱性はどの程度深刻ですか?
EPSS スコア悪用される予測確率今後30日以内に悪用される確率であり、実際に悪用されている証拠ではありません
資産価値ビジネス上のコンテキスト何がリスクにさらされていますか?
露出度攻撃対象領域インターネットに公開されていますか?
優先順位付けの決定木
Is there credible active-exploitation evidence (for example a relevant KEV entry or incident evidence)?
├── YES → CRITICAL: Immediate action
└── NO → Check CVSS
         ├── CVSS ≥9.0 → HIGH
         ├── CVSS 7.0-8.9 → Consider asset value
         └── CVSS <7.0 → Schedule for later

6. 例外的な状況(A10 - 新規)

フェイルオープンとフェイルクローズ
シナリオフェイルオープン(不適切)フェイルクローズ(適切)
認証エラーアクセスを許可するアクセスを拒否する
解析の失敗入力を受け入れる入力を拒否する
タイムアウト無期限に再試行する回数を制限して中止する
確認事項
  • すべての例外を捕捉して無視する例外ハンドラー
  • セキュリティ操作におけるエラー処理の不足
  • 認証/認可における競合状態
  • リソース枯渇のシナリオ

7. スキャン方法

フェーズ別アプローチ
1. RECONNAISSANCE
   └── Understand the target
       ├── Technology stack
       ├── Entry points
       └── Data flows

2. DISCOVERY
   └── Identify potential issues
       ├── Configuration review
       ├── Dependency analysis
       └── Code pattern search

3. ANALYSIS
   └── Validate and prioritize
       ├── False positive elimination
       ├── Risk scoring
       └── Attack chain mapping

4. REPORTING
   └── Actionable findings
       ├── Clear reproduction steps
       ├── Business impact
       └── Remediation guidance

8. コードパターン分析

高リスクパターン
パターンリスク確認するもの
クエリ内の文字列連結インジェクション"SELECT * FROM " + user_input
動的コード実行RCEeval()、exec()、Function()
安全でないデシリアライズRCEpickle.loads()、unserialize()
パスの操作トラバーサルファイルパス内のユーザー入力
セキュリティの無効化さまざまverify=False、--insecure
シークレットのパターン
種類指標
API キーapi_key、apikey、高エントロピー
トークンtoken、bearer、jwt
認証情報password、secret、key
クラウドAWS_、AZURE_、GCP_ のプレフィックス

9. クラウドセキュリティに関する考慮事項

共有責任
レイヤーお客様の責任プロバイダーの責任
データ✅❌
アプリケーション✅❌
OS/ランタイム状況による状況による
インフラストラクチャ❌✅
クラウド固有の確認項目
  • IAM:最小権限が適用されていますか?
  • ストレージ:公開バケットはありませんか?
  • ネットワーク:セキュリティグループは適切に制限されていますか?
  • シークレット:シークレットマネージャーを使用していますか?

10. アンチパターン

❌ やってはいけないこと✅ やるべきこと
理解せずにスキャンするまず攻撃対象領域を把握する
すべての CVE でアラートを出す悪用可能性と資産に基づいて優先順位を付ける
誤検知を無視する検証済みのベースラインを維持する
症状だけを修正する根本原因に対処する
デプロイ前に一度だけスキャンする継続的にスキャンする
サードパーティの依存関係を盲信する整合性を検証し、コードを監査する

11. レポート作成の原則

検出事項の構成

各検出事項では、次の質問に答える必要があります。

  1. 何か? - 脆弱性を明確に説明する
  2. どこか? - 正確な場所(ファイル、行、エンドポイント)
  3. なぜか? - 根本原因を説明する
  4. 影響は? - ビジネス上の影響
  5. どう修正するか? - 具体的な修正方法
重大度の分類
重大度基準
CriticalRCE、認証バイパス、大規模なデータ漏えい
Highデータ漏えい、権限昇格
Medium影響範囲が限定的で、特定の条件が必要
Low情報提供、ベストプラクティス

覚えておいてください: 脆弱性スキャンは問題を検出します。何が重要かを優先順位付けするには、専門的な判断が必要です。常に「攻撃者ならこれをどう悪用するか?」と考えてください。

使用する場面

このスキルは、概要で説明されているワークフローまたはアクションを実行する場合に適用できます。

制限事項

  • 同梱のスキャナーはデータフローや到達可能性の分析ではなく、正規表現によるヒューリスティックを使用します。一致した箇所は手動で検証する必要があり、一致がないことは安全性の判断にはなりません。Git 履歴、バイナリ、スキップされたディレクトリは対象外です。ネットワークを使った依存関係の監査は --allow-network を指定した場合に限り有効になり、依存関係のメタデータを設定済みのレジストリに送信します。読み取りエラーやツールのエラーがある場合、網羅的な確認ができていません。合格とみなさないでください。
  • このスキルは、タスクが上記の範囲に明確に合致する場合にのみ使用してください。
  • 出力を、環境固有の検証、テスト、専門家によるレビューの代わりとして扱わないでください。
  • 必要な入力、権限、安全上の境界、または成功基準が不足している場合は、作業を止めて確認してください。

コメント