mcpField
S
security-auditor

security-auditor

github.com/curiositechセキュリティ257230 回インストール3 日前に更新
リポジトリ

security-auditor について

security-auditorは、リリース準備や変更レビューを行う開発チーム向けのコードベースセキュリティスキャンスキルです。依存関係、シークレット、静的解析を組み合わせ、検出結果の優先順位付けと修正方法を示します。

主な機能

  1. 01依存関係の脆弱性スキャン
  2. 02シークレットと認証情報の検出
  3. 03OWASPに基づく静的チェック
  4. 04言語別の脆弱性チェック
  5. 05統合セキュリティレポートの生成
  6. 06優先順位付けと修正のガイド

活用シーン

  1. 01デプロイ前のプロジェクト監査
  2. 02既知の依存関係脆弱性の確認
  3. 03コードベース内のシークレット検出
  4. 04プルリクエストのセキュリティレビュー

インストール

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

$npx skills add https://github.com/curiositech/some_claude_skills --skill security-auditor

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

同梱ファイル

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

.claude-plugin/
plugin.json
references/
owasp-top-10-2024.md
scripts/
detect-secrets.sh
full-audit.sh
owasp-check.py

詳細

セキュリティ監査

コードベースを包括的にセキュリティスキャンします。脆弱性がインシデントになる前に特定します。修正方法のガイダンスを含む、実行可能な検出結果に重点を置きます。

使用する場面

次の場合に使用します:

  • デプロイ前のセキュリティ監査
  • 依存関係の脆弱性スキャン
  • シークレット/認証情報の漏えい検出
  • コードレベルのSAST(静的アプリケーションセキュリティテスト)
  • 関係者向けのセキュリティ体制レポート
  • OWASP Top 10への準拠チェック
  • PR前のセキュリティレビュー

次の場合は使用しないでください:

  • ランタイムセキュリティ(WAF、レート制限)— インフラストラクチャツールを使用してください
  • ネットワークセキュリティ/ファイアウォールルール — クラウド/DevOpsスキルを使用してください
  • SOC2/HIPAA/PCIへの準拠 — 法務/組織的なプロセスが必要です
  • ペネトレーションテストの実行 — これは検出であり、悪用ではありません

クイックスタート

完全なセキュリティ監査
# Run comprehensive scan
./scripts/full-audit.sh /path/to/project

# Output: security-report.json + summary
クイックチェック
# Dependency vulnerabilities only
npm audit --json > deps-audit.json

# Secret detection only
./scripts/detect-secrets.sh /path/to/project

# OWASP check specific file
./scripts/owasp-check.py /path/to/file.js

主なスキャン機能

1. 依存関係のスキャン
パッケージマネージャーコマンド重大度レベル
npmnpm audit --jsoncritical、high、moderate、low
yarnyarn audit --jsonnpmと同じ
pippip-audit --format jsoncritical、high、medium、low
cargocargo audit --json同じ

判断フロー:

Critical severity found?
├── YES → Block deployment, immediate fix required
│   └── Check if patch available → npm audit fix --force
├── NO → High severity?
    ├── YES → Fix within sprint, document if deferred
    └── NO → Low/Moderate → Track, fix during maintenance
2. シークレットの検出

リスクの高いパターン:

  • APIキー:「key」、「api」、「secret」の近くにある /[A-Za-z0-9_]{20,}/
  • AWS認証情報:AKIA[0-9A-Z]{16}
  • 秘密鍵:-----BEGIN (RSA|EC|OPENSSH) PRIVATE KEY-----
  • JWTトークン:eyJ[A-Za-z0-9_-]+\.eyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+
  • 接続文字列:://[^:]+:[^@]+@

エントロピー分析:

  • 20文字を超える文字列でシャノンエントロピーが4.5を超える場合は、疑わしいものとして扱います
  • ソース内のBase64エンコードされたデータは調査します

誤検出への対処:

Secret-like pattern found?
├── In test file? → Lower severity, document
├── In example/docs? → Check if placeholder
├── High entropy + near "password"/"secret" → High confidence
└── In .env.example? → Acceptable if placeholder values
3. OWASP Top 10の静的解析
#脆弱性検出パターン
A01アクセス制御の不備ルートに認証チェックがない
A02暗号化の失敗脆弱なアルゴリズム(パスワードにMD5、SHA1を使用)
A03インジェクションパラメーター化されていないクエリ、eval()、innerHTML
A04安全でない設計認証情報のハードコード、レート制限の欠如
A05セキュリティ設定の不備本番環境でのデバッグモード、デフォルトの認証情報
A06脆弱なコンポーネント依存関係に既知のCVEがある
A07認証の失敗脆弱なパスワードポリシー、セッションの問題
A08完全性の失敗署名されていない更新、信頼できないデシリアライズ
A09ログ記録の失敗ログ内の機密データ、監査証跡の欠如
A10SSRF検証されていないURL入力をfetch/requestに渡す
4. 言語固有のチェック

JavaScript/TypeScript:

  • eval()、new Function() — コードインジェクション
  • innerHTML、outerHTML — XSSの攻撃経路
  • document.write() — DOMベースのXSS
  • ユーザー入力を使った child_process.exec() — コマンドインジェクション
  • タイムアウトのない正規表現 — ReDoSの脆弱性

Python:

  • 信頼できないデータを使った pickle.loads() — 任意コード実行
  • Loader=SafeLoaderを指定しない yaml.load() — コードインジェクション
  • subprocess.shell=True — コマンドインジェクション
  • eval()、exec() — コードインジェクション
  • SQL文字列の連結 — SQLインジェクション

SQL:

  • クエリ内での文字列連結 — SQLインジェクション
  • LIKE '%' + input + '%' — ワイルドカードを介したインジェクション
  • パラメーター化の欠如 — 重大な脆弱性

アンチパターン

アンチパターン:隠すことで安全を確保

例:「このハードコードされたパスワードは誰にも見つからない」 問題点:ソース内のシークレットはいずれ必ず漏えいします 代わりに:環境変数、シークレットマネージャーを使い、シークレットをハードコードしないでください

アンチパターン:監査疲れ

例:検出結果が500件あり、すべて「中程度」で、チームが無視している 問題点:重大な問題がノイズに埋もれます 代わりに:悪用されやすさに基づいて優先順位を付け、最初は重大/高のみを対象にしてください

アンチパターン:理解せずに修正

例:レビューせずに npm audit fix --force を実行する 問題点:破壊的変更を引き起こす可能性があり、根本原因にも対処できません 代わりに:各修正をレビューし、脆弱性を理解したうえで、修正後にテストしてください

アンチパターン:一度きりの監査

どのようなものか:「昨年、セキュリティ監査を実施しました」 なぜ問題なのか:CVE は毎日新たに見つかり、コードは絶えず変更されます 代わりに:CI/CD に統合し、最低でも週次で自動スキャンを実施します

セキュリティレポートの形式

{
  "summary": {
    "critical": 0,
    "high": 2,
    "medium": 5,
    "low": 12,
    "informational": 8
  },
  "findings": [
    {
      "id": "SEC-001",
      "severity": "high",
      "category": "A03:Injection",
      "title": "SQL Injection in user search",
      "location": "src/api/users.js:45",
      "description": "User input concatenated directly into SQL query",
      "evidence": "const query = `SELECT * FROM users WHERE name = '${input}'`",
      "remediation": "Use parameterized queries: db.query('SELECT * FROM users WHERE name = $1', [input])",
      "references": ["https://owasp.org/www-community/attacks/SQL_Injection"]
    }
  ],
  "recommendations": [
    "Implement parameterized queries across all database access",
    "Add input validation layer",
    "Enable SQL query logging for monitoring"
  ]
}

CI/CD との統合

GitHub Actions の例
security-scan:
  runs-on: ubuntu-latest
  steps:
    - uses: actions/checkout@v4
    - name: Run security audit
      run: |
        npm audit --json > audit.json
        ./scripts/detect-secrets.sh . > secrets.json
        ./scripts/generate-report.py
    - name: Fail on critical
      run: |
        if jq '.summary.critical > 0' report.json; then
          echo "Critical vulnerabilities found!"
          exit 1
        fi

スクリプト(scripts/ フォルダー内)

スクリプト目的
full-audit.sh包括的なセキュリティスキャン
detect-secrets.sh高エントロピー文字列とパターンの検出
owasp-check.pyOWASP Top 10 の静的解析
generate-report.py検出結果を統合レポートにまとめる

エキスパートと初心者のアプローチ

初心者エキスパート
リリース前に一度だけ監査を実施するCI/CD に統合し、コミットごとに実施する
ツールの出力だけに注目する脆弱性の背景を理解する
すべて修正するか、何も修正しない悪用可能性に基づいてトリアージする
1 つのスキャナーを使う複数のツールを組み合わせる
誤検知を無視する検出ルールを調整する

成功指標

指標目標
本番環境へのデプロイ前の重大/高リスク0
重大な問題の平均修正時間< 24 時間
誤検知率< 10%
スキャン範囲デプロイ可能なコードの 100%

参考ファイル

  • references/owasp-top-10-2024.md - OWASP の詳細なガイダンス
  • references/secret-patterns.md - 包括的な正規表現パターン
  • references/remediation-playbook.md - 脆弱性の種類ごとの修正ガイダンス
  • references/ci-cd-templates.md - 統合例
  • scripts/ - 実用的なセキュリティスキャンスクリプト

検出対象:依存関係の CVE | シークレットの漏えい | インジェクション脆弱性 | OWASP 違反 | セキュリティ設定の誤り

併用対象:site-reliability-engineer(デプロイゲート)| code-review(PR のセキュリティチェック)

コメント