mcpField
S
security-scan

security-scan

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

security-scan について

開発者向けの6層静的セキュリティスキャンスキルです。依存関係の脆弱性、シークレット、コードパターン、認証、CORS、データ保護を検査し、OWASP Top 10:2025 に対応づけて評価します。静的解析の限界も明記します。

主な機能

  1. 016層の静的セキュリティスキャン
  2. 02OWASP Top 10:2025 への対応づけ
  3. 03悪用可能性と影響に基づく評価
  4. 04状況に応じたレイヤー選択
  5. 05コード付きの修正案
  6. 06静的解析の限界を記載したレポート

活用シーン

  1. 01リリース前の包括的なセキュリティ確認
  2. 02依存関係更新後のパッケージ脆弱性確認
  3. 03認証・設定・ログ変更後の対象スキャン
  4. 04ペネトレーションテスト準備や定期レビュー

インストール

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

$npx skills add https://github.com/codewithmukesh/dotnet-claude-kit --skill security-scan

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

同梱ファイルreferences/scan-layers.md

詳細

/security-scan — 6 層セキュリティパイプライン

概要

6 層にわたる多層防御の静的スキャンを実行します。CVE がゼロのプロジェクトでも、ハードコードされたシークレット、SQL インジェクション、認証の欠如が存在する場合があります。各層で異なる種類の脆弱性を検出します。検出結果は OWASP Top 10:2025 の分類に対応し、悪用可能性、影響度、露出度に基づいて Critical/High/Medium/Low に評価されます。たとえば、公開エンドポイントの Critical な SQL インジェクションは、管理者ページの Low な情報漏えいより高く評価されます。

検出パターン、OWASP との対応付け、修正コード、レポートテンプレートは references/scan-layers.md にあります。実行前にお読みください。

誠実さに関するルール: これは静的解析であり、侵入テストではありません。既知のパターンを検出しますが、ビジネスロジックの欠陥、複雑な認可回避、実行時にのみ発生する脆弱性は見逃します。すべてのレポートでこの点を明記してください。

実行タイミング

  • リリース前のセキュリティゲート — 本番環境へのリリース前に必ず全層をスキャンします
  • 「セキュリティスキャン」「セキュリティ監査」「シークレットの検出」「CVE チェック」「OWASP」
  • 依存関係の更新後(Layer 1)、認証の変更後(Layer 4)、設定の変更後(Layer 2)、またはログ記録の変更後(Layer 6)
  • 侵入テスト前の準備 — 侵入テストに費用をかける前に静的な問題を修正します
  • インシデント対応および四半期ごとのレビュー

実行方法

Step 1: 層を選択する
シナリオ層
リリース前のゲート/侵入テスト準備/インシデント/四半期レビュー6 層すべて
依存関係の更新後1
新しいエンドポイントの追加3, 4, 5
認証システムの変更4
設定ファイルの変更2
ログ記録の変更6
パブリック API の公開3, 4, 5
内部専用サービス1, 2, 3
Step 2: 各層を実行する

各層の検出パターンについては references/scan-layers.md をお読みください。 認証とシークレットの詳細なレビューは、authentication と configuration のスキルを組み合わせて、security-auditor エージェントに委任してください。

#層OWASP 2025方法
1パッケージの脆弱性A03 Supply Chaindotnet list package --vulnerable --include-transitive
2シークレットの検出—.cs/.json/.yml/.xml/.config を対象とするパターンスキャン
3OWASP コードパターンA05 Injection, A08 Integrity, A04 Crypto, A01 Access Controlソーススキャン:生の SQL、Html.Raw、BinaryFormatter、MD5/SHA1、IDOR
4認証設定A07 Authentication, A01 Access Controlget_endpoint_map — 1 回の呼び出しで各ルートの認証状態を確認し、unmarked のエンドポイントを指摘。その後、JWT の検証設定を確認
5CORS ポリシーA02 Misconfigurationワイルドカードオリジン、認証情報との組み合わせ、メソッド/ヘッダーの過度な許可
6データ保護A04 Crypto, A09 Logging & Alertingログ内の PII、過度に広範なレスポンス、機密データの平文保存
Step 3: コンテキストに基づいて評価する

重大度は実際のリスクに合わせてください。過剰な分類はアラート疲れを招き、本当の Critical を埋もれさせます。

  • テストフィクスチャの「シークレット」や appsettings.Development.json の値は想定内です。スキップするか INFO とし、HIGH として指摘しないでください
  • XML コメントの欠落がセキュリティ上の問題になることはありません
  • Critical は、今すぐ悪用可能な問題にのみ使用します。公開エンドポイントのインジェクション、本番環境のシークレットの露出、認証の回避などが該当します
Step 4: レポートを作成する

各検出結果には、[SEVERITY] file:line — title、OWASP カテゴリ、問題の内容、悪用された場合の影響、修正コード(修正前/修正後)を記載します。静的解析に関する免責事項を先頭に付け、参考テンプレートに従って概要表と層ごとのステータス表を作成してください。

例

User: /security-scan before we ship

Claude: Running all 6 layers...

| Layer | Status | Findings |
|-------|--------|----------|
| 1. Packages | PASS | 0 CVEs (142 packages incl. transitive) |
| 2. Secrets | PASS | 0 real secrets (2 dev-only values skipped) |
| 3. OWASP Patterns | FAIL | 1 SQL injection |
| 4. Auth Config | WARN | 2 endpoints missing explicit auth attributes |
| 5. CORS | PASS | Explicit origins from configuration |
| 6. Data Protection | WARN | Customer email logged at Information level |

[HIGH] SearchOrders.cs:34 — SQL Injection (A05:2025)
  FromSqlRaw($"...LIKE '%{search}%'") → attacker controls the query.
  Fix: db.Orders.Where(o => EF.Functions.Like(o.Name, $"%{search}%"))

[MEDIUM] OrderEndpoints.cs:18,31 — no [Authorize]/[AllowAnonymous]; behavior
  depends on ambient global policy. Make intent explicit per endpoint.

[LOW] OrderPlacedHandler.cs:22 — PII in logs (A09:2025). Log CustomerId, not email.

Note: static analysis only — this does not replace a penetration test.

関連項目

  • references/scan-layers.md — 検出パターン、OWASP 2025 との対応付け、レポートテンプレート
  • /verify — Phase 5 では、変更セットごとにこのスキャンの簡易版を実行します
  • /health-check — Dimension 7(Security Posture)はスポットチェック版です
  • authentication / configuration — Layer 4 と Layer 2 の修正パターン

コメント