security-scan について
開発者向けに、脆弱性、露出したシークレット、依存関係のリスク、安全でない設定を調べるコードベースのセキュリティスキャンスキルです。全体、クイック、カテゴリ別のスキャンに対応し、深刻度と修正案を示します。
主な機能
- 01OWASP Top 10 カテゴリの確認
- 02シークレットや認証情報の検出
- 03インジェクションと暗号化の問題の検出
- 04依存関係と設定のレビュー
- 05深刻度別の報告と修正案
活用シーン
- 01デプロイ前のコードベーススキャン
- 02重大な問題の迅速な確認
- 03特定の脆弱性カテゴリの調査
- 04依存関係と設定のリスク確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ jwynia/ agent-skills --skill security-scanインストール後、Claude Code で/security-scanを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
assets/severity-matrix.mdreferences/owasp/a01-broken-access-control.mda02-cryptographic-failures.mda03-injection.mda04-a10-additional.mdreferences/patterns/javascript-typescript.mdpython.mdreferences/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
このスキルでできること
複数のカテゴリにわたって、コードのセキュリティ脆弱性を分析します。
- OWASP Top 10 - 業界標準のウェブ脆弱性カテゴリ
- シークレットの検出 - ハードコードされた認証情報、API キー、トークン
- インジェクションの欠陥 - SQL、XSS、コマンドインジェクションのパターン
- 暗号関連の問題 - 脆弱なアルゴリズム、安全でない実装
- 設定の問題 - 安全でないデフォルト設定、設定ミス
スキャンモード
フルスキャン(デフォルト)
すべてのセキュリティカテゴリを包括的に分析します。
/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 | ロギングの失敗 | 監査ログの分析 |
| A10 | SSRF | リクエストパターンの検出 |
カテゴリごとの詳細な検出ルールについては、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 --json | JSON 形式で出力 |
/security-scan --fix | 可能な場合は自動修正 |
関連スキル
/secrets-scan- シークレットを詳細に検出/dependency-scan- パッケージの脆弱性を分析/config-scan- 設定のセキュリティを確認/review-code- 一般的なコードレビュー(セキュリティを含む)
参考資料
references/owasp/- OWASP Top 10 の検出に関する詳細references/patterns/- 言語固有の脆弱性パターンreferences/remediation/- 脆弱性の種類別の修正方法assets/severity-matrix.md- 重大度の評価基準
コメント
Markdown 対応