mcpField
C
code-vuln-audit

code-vuln-audit

github.com/zebbernセキュリティ4.7k51 回インストール1 日前に更新
リポジトリ

code-vuln-audit について

依存関係、漏えいしたシークレット、OWASP 関連のコードパターンを検査する Python 製コマンドラインセキュリティスキャナーです。コードベースを監査する開発者向けで、深刻度を絞ったテキストまたは JSON の結果を出力できます。

主な機能

  1. 01npm と Python の依存関係を監査
  2. 02パターン照合とエントロピーでシークレット検出
  3. 03OWASP 関連のコードパターンを検出
  4. 04スキャンモジュールと深刻度のしきい値を選択
  5. 05テキストまたは JSON レポートを出力

活用シーン

  1. 01リリース前に依存関係を確認
  2. 02コードベースにコミットされた認証情報を検出
  3. 03インジェクションや安全でないコードパターンを確認
  4. 04機械可読なセキュリティ検出結果を生成

インストール

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

$npx skills add https://github.com/zebbern/claude-code-guide --skill code-vuln-audit

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

同梱ファイルLICENSEscripts/security_scan.py

詳細

code-vuln-audit

3 つのコアスキャン機能を備えたコードセキュリティスキャンツールです。

  1. 依存関係の脆弱性スキャン — npm / pip の依存関係に含まれる既知の脆弱性を自動検出します
  2. シークレット漏えい検出 — 正規表現マッチングとシャノンエントロピー分析により、ハードコードされたシークレット、トークン、パスワードを検出します
  3. OWASP パターン検出 — SQL インジェクション、XSS、コマンドインジェクション、安全でないデシリアライズなど、よくあるセキュリティ上のアンチパターンを特定します

クイックスタート

# Scan the current directory (all checks)
python3 scripts/security_scan.py .

# Scan dependencies only
python3 scripts/security_scan.py --mode deps .

# Detect secret leaks only
python3 scripts/security_scan.py --mode secrets /path/to/project

# Detect OWASP security patterns only
python3 scripts/security_scan.py --mode owasp .

# Output report in JSON format
python3 scripts/security_scan.py --format json --output report.json .

# Only show findings at high severity and above
python3 scripts/security_scan.py --severity high .

スキャンモジュールの詳細

1. 依存関係の脆弱性スキャン(deps)

プロジェクトの種類を自動検出し、適切なツールを実行します。

プロジェクトの種類検出ファイル使用するツール
Node.jspackage.json + package-lock.jsonnpm audit
Pythonrequirements.txt / pyproject.toml / Pipfilepip-audit

該当する監査ツールがインストールされていない場合は、エラーではなく役立つメッセージを表示します。

2. シークレット漏えい検出(secrets)

次の 2 つの方法で検出します。

正規表現マッチング:よくあるシークレットの形式をカバーします

シークレットの種類パターンの例
AWS アクセスキーAKIA で始まる 20 文字の文字列
GitHub トークンghp_ または github_pat_ で始まる
Slack トークンxoxb- または xoxp- で始まる
Stripe キーsk_live_ または pk_live_ で始まる
秘密鍵ファイル-----BEGIN PRIVATE KEY-----
汎用 API キーapi_key = "..." のような形式
URL 内の認証情報https://user:pass@host
JWT トークンeyJ... 形式

シャノンエントロピー分析:コード内の文字列定数の情報エントロピーを計算し(しきい値 > 4.5、長さ >= 20)、標準形式以外のシークレットを検出します。

3. OWASP パターン検出(owasp)

OWASP Top 10 に含まれる、静的解析で検出可能なセキュリティパターンをカバーします。

OWASP カテゴリ検出パターン
A02: 暗号化の失敗弱いハッシュ(MD5/SHA1)、弱い暗号(DES/RC4)
A03: インジェクションSQL インジェクション、コマンドインジェクション(os.system / subprocess shell / eval / exec)、XSS(innerHTML / document.write / dangerouslySetInnerHTML / v-html)
A04: 安全でない設計パストラバーサル
A05: セキュリティ設定の誤りデバッグモードの有効化、CORS のワイルドカード、0.0.0.0 へのバインド
A08: 整合性の失敗安全でないデシリアライズ(pickle / yaml.load / marshal / unserialize)
A10: SSRFHTTP リクエストへのユーザー入力の直接受け渡し

対応言語:Python、JavaScript/TypeScript、Java、PHP、Ruby、Go など。

パラメーター

パラメーター説明デフォルト
TARGETスキャンするディレクトリ現在のディレクトリ
--mode MODEスキャンモード:all、deps、secrets、owaspall
--format FORMAT出力形式:text、jsontext
--output FILE出力ファイルのパスstdout
--severity LEVEL報告する最低レベル:low、medium、high、criticallow
--exclude-dir DIR除外する追加ディレクトリ(繰り返し指定可能)-
--max-file-kb SIZEスキャンするファイルの最大サイズ(KB)512
-h, --helpヘルプを表示-

出力形式

テキスト出力(デフォルト)
=== Security Scan Report ===
Target: /path/to/project
Modules: deps, secrets, owasp

[CRITICAL] AWS Access Key ID
  File: src/config.py:15
  Code: AWS_KEY = "AKIAIOSFODNN7EXAMPLE"

[HIGH] SQL Injection (f-string)
  File: src/db.py:42
  Code: cursor.execute(f"SELECT * FROM users WHERE id={user_id}")

--- Summary ---
Critical: 1 | High: 1 | Medium: 0 | Low: 0
Total findings: 2
JSON 出力
{
  "target": "/path/to/project",
  "scan_time": "2026-04-14T10:30:00",
  "findings": [
    {
      "scanner": "secrets",
      "name": "AWS Access Key ID",
      "severity": "critical",
      "file": "src/config.py",
      "line": 15,
      "snippet": "AWS_KEY = \"AKIAIOSFODNN7EXAMPLE\"",
      "category": "secret-pattern"
    }
  ],
  "summary": {"critical": 1, "high": 0, "medium": 0, "low": 0, "total": 1}
}

終了コード

終了コード意味
0検出事項なし
1検出事項あり(セキュリティ上の問題が 1 件以上)
2スキャナー内部エラー

前提条件

  • Python 3.7 以降(標準ライブラリのみを使用)
  • 依存関係のスキャンには、該当するツールが必要です:Node.js プロジェクトでは npm、Python プロジェクトでは pip-audit
  • 監査ツールが見つからない場合、そのモジュールは通知を表示してスキップされます。他のモジュールは通常どおり実行を続けます

コメント