mcpField
S
security-scan

security-scan

github.com/jwyniaセキュリティ180475 回インストール35 週間前に更新
リポジトリ

security-scan について

開発者向けに、脆弱性、露出したシークレット、依存関係のリスク、安全でない設定を調べるコードベースのセキュリティスキャンスキルです。全体、クイック、カテゴリ別のスキャンに対応し、深刻度と修正案を示します。

主な機能

  1. 01OWASP Top 10 カテゴリの確認
  2. 02シークレットや認証情報の検出
  3. 03インジェクションと暗号化の問題の検出
  4. 04依存関係と設定のレビュー
  5. 05深刻度別の報告と修正案

活用シーン

  1. 01デプロイ前のコードベーススキャン
  2. 02重大な問題の迅速な確認
  3. 03特定の脆弱性カテゴリの調査
  4. 04依存関係と設定のリスク確認

インストール

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

$npx skills add https://github.com/jwynia/agent-skills --skill security-scan

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

同梱ファイル

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

assets/
severity-matrix.md
references/owasp/
a01-broken-access-control.md
a02-cryptographic-failures.md
a03-injection.md
a04-a10-additional.md
references/patterns/
javascript-typescript.md
python.md
references/remediation/
common-fixes.md

詳細

セキュリティスキャン

コードベースの包括的なセキュリティ脆弱性検出です。

クイックスタート

/security-scan                    # Full scan of current directory
/security-scan --scope src/       # Scan specific directory
/security-scan --quick            # Fast scan (critical issues only)
/security-scan --focus injection  # Focus on specific category

このスキルでできること

複数のカテゴリにわたって、コードのセキュリティ脆弱性を分析します。

  1. OWASP Top 10 - 業界標準のウェブ脆弱性カテゴリ
  2. シークレットの検出 - ハードコードされた認証情報、API キー、トークン
  3. インジェクションの欠陥 - SQL、XSS、コマンドインジェクションのパターン
  4. 暗号関連の問題 - 脆弱なアルゴリズム、安全でない実装
  5. 設定の問題 - 安全でないデフォルト設定、設定ミス

スキャンモード

フルスキャン(デフォルト)

すべてのセキュリティカテゴリを包括的に分析します。

/security-scan

実施するチェック:

  • OWASP Top 10 の全カテゴリ
  • シークレットと認証情報の検出
  • 依存関係の脆弱性(パッケージファイルが存在する場合)
  • 設定ファイルの確認

所要時間: コードベースのサイズに応じて2~5分

クイックスキャン

重大度が「クリティカル」または「高」の問題のみをすばやく確認します。

/security-scan --quick

実施するチェック:

  • 重大なインジェクションパターン
  • 公開されたシークレット
  • 既知の危険な関数

所要時間: 1分未満

フォーカススキャン

特定の脆弱性カテゴリを対象にします。

/security-scan --focus <category>

カテゴリ:

  • injection - SQL、XSS、コマンドインジェクション
  • secrets - 認証情報、API キー、トークン
  • crypto - 暗号の脆弱性
  • auth - 認証/認可の問題
  • config - 設定のセキュリティ

出力形式

重大度レベル
レベルアイコン意味必要な対応
CRITICAL[!]悪用可能な脆弱性直ちに修正
HIGH[H]深刻なセキュリティリスクデプロイ前に修正
MEDIUM[M]潜在的な脆弱性対応を計画
LOW[L]軽微な問題または強化の余地修正を検討
INFO[i]情報提供のための検出事項認識のみ
検出事項の形式
[SEVERITY] CATEGORY: Brief description
  File: path/to/file.ext:line
  Pattern: What was detected
  Risk: Why this is dangerous
  Fix: How to remediate
サマリーレポート
SECURITY SCAN RESULTS
=====================

Scope: src/
Files scanned: 127
Duration: 45 seconds

FINDINGS BY SEVERITY
  Critical: 2
  High: 5
  Medium: 12
  Low: 8

TOP ISSUES
1. [!] SQL Injection in src/api/users.ts:45
2. [!] Hardcoded AWS key in src/config.ts:12
3. [H] XSS vulnerability in src/components/Comment.tsx:89
...

Run `/security-scan --details` for full report.

OWASP Top 10 のカバレッジ

#カテゴリ検出方法
A01アクセス制御の不備認可パターンの分析
A02暗号化の失敗脆弱な暗号の検出
A03インジェクションパターンマッチング+データフロー
A04安全でない設計セキュリティ制御の欠落
A05セキュリティ設定のミス設定ファイルの分析
A06脆弱なコンポーネント依存関係のスキャン
A07認証の失敗認証パターンの確認
A08データ整合性の失敗デシリアライズのチェック
A09ロギングの失敗監査ログの分析
A10SSRFリクエストパターンの検出

カテゴリごとの詳細な検出ルールについては、references/owasp/ を参照してください。

検出パターン

インジェクションの検出

SQL インジェクション:

- String concatenation in queries
- Unsanitized user input in database calls
- Dynamic query construction

クロスサイトスクリプティング(XSS):

- innerHTML assignments with user data
- document.write() with dynamic content
- Unescaped template interpolation

コマンドインジェクション:

- exec(), system(), popen() with user input
- Shell command string construction
- Unsanitized subprocess arguments

言語固有のパターンについては、references/patterns/ を参照してください。

シークレットの検出

信頼度の高いパターン:

AWS Access Key:     AKIA[0-9A-Z]{16}
AWS Secret Key:     [A-Za-z0-9/+=]{40}
GitHub Token:       gh[pousr]_[A-Za-z0-9]{36,}
Stripe Key:         sk_live_[A-Za-z0-9]{24,}
Private Key:        -----BEGIN (RSA |EC )?PRIVATE KEY-----

信頼度が中程度のパターン:

Generic API Key:    api[_-]?key.*[=:]\s*['"][a-zA-Z0-9]{16,}
Password in Code:   password\s*[=:]\s*['"][^'"]+['"]
Connection String:  (mysql|postgres|mongodb)://[^:]+:[^@]+@
暗号の脆弱性

脆弱なアルゴリズム:

- MD5 for password hashing
- SHA1 for security purposes
- DES/3DES encryption
- RC4 stream cipher

実装上の問題:

- Hardcoded encryption keys
- Weak random number generation
- Missing salt in password hashing
- ECB mode encryption

他のスキルとの連携

/secrets-scan との連携

認証情報の検出に特化した詳細分析:

/secrets-scan              # Dedicated secrets analysis
/secrets-scan --entropy    # High-entropy string detection
/dependency-scan との連携

パッケージの脆弱性分析:

/dependency-scan           # Check all dependencies
/dependency-scan --fix     # Auto-fix where possible
/config-scan との連携

インフラストラクチャと設定の確認:

/config-scan               # All config files
/config-scan --docker      # Container security
/config-scan --iac         # Infrastructure as Code

スキャン実行プロトコル

フェーズ 1:検出
1. Identify project type (languages, frameworks)
2. Locate relevant files (source, config, dependencies)
3. Determine applicable security rules
フェーズ 2:静的解析
1. Pattern matching for known vulnerabilities
2. Data flow analysis for injection paths
3. Configuration review
フェーズ 3:シークレットのスキャン
1. High-confidence pattern matching
2. Entropy analysis for potential secrets
3. Git history check (optional)
フェーズ 4:依存関係の分析
1. Parse package manifests
2. Check against vulnerability databases
3. Identify outdated packages
フェーズ 5:レポート作成
1. Deduplicate findings
2. Assign severity scores
3. Generate actionable report
4. Provide remediation guidance

設定

プロジェクトレベルの設定

プロジェクトのルートに .security-scan.yaml を作成します。

# Scan configuration
scan:
  exclude:
    - "node_modules/**"
    - "vendor/**"
    - "**/*.test.ts"
    - "**/__mocks__/**"

# Severity thresholds
thresholds:
  fail_on: critical    # critical, high, medium, low
  warn_on: medium

# Category toggles
categories:
  injection: true
  secrets: true
  crypto: true
  auth: true
  config: true
  dependencies: true

# Custom patterns
patterns:
  secrets:
    - name: "Internal API Key"
      pattern: "INTERNAL_[A-Z]{3}_KEY_[a-zA-Z0-9]{32}"
      severity: high
無視パターン

誤検出を無視するには、.security-scan-ignore を作成します。

# Ignore specific files
src/test/fixtures/mock-credentials.ts

# Ignore specific lines (use inline comment)
# security-scan-ignore: test fixture
const mockApiKey = "sk_test_fake123";

コマンドリファレンス

コマンド説明
/security-scanセキュリティの完全スキャン
/security-scan --quick重大な問題のみ
/security-scan --scope <path>指定したパスをスキャン
/security-scan --focus <cat>単一カテゴリをスキャン
/security-scan --details詳細な出力
/security-scan --jsonJSON 形式で出力
/security-scan --fix可能な場合は自動修正

関連スキル

  • /secrets-scan - シークレットを詳細に検出
  • /dependency-scan - パッケージの脆弱性を分析
  • /config-scan - 設定のセキュリティを確認
  • /review-code - 一般的なコードレビュー(セキュリティを含む)

参考資料

  • references/owasp/ - OWASP Top 10 の検出に関する詳細
  • references/patterns/ - 言語固有の脆弱性パターン
  • references/remediation/ - 脆弱性の種類別の修正方法
  • assets/severity-matrix.md - 重大度の評価基準

コメント