vibe-security について
vibe-securityは、コードやインフラの脆弱性を検出・分析・修正する開発者向けのセキュリティスキルです。AST、データフロー、依存関係の分析を組み合わせ、修正案と複数形式のレポートを提供します。
主な機能
- 01ASTによるコード脆弱性分析
- 02データフローと汚染変数の追跡
- 03依存関係とサプライチェーンリスクのスキャン
- 04IaC設定の検査
- 05脆弱性とセキュリティ標準の対応付け
- 06HTMLおよびSARIFレポートの生成
活用シーン
- 01プロジェクトのSQLインジェクションやXSSの検査
- 02既知の脆弱性を含む依存関係のスキャン
- 03Terraform、Kubernetes、Docker設定の監査
- 04CI/CDでのセキュリティスキャンとレポート作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ 0x8506/ vibe-security --skill vibe-securityインストール後、Claude Code で/vibe-securityを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
data/advanced-patterns.csvcompliance-mapping.csvfix-templates.csvframeworks.csviac-security.csvlanguages-extended.csvpatterns.csvrules.csvsupply-chain.csvvulnerabilities.csvscripts/ast_analyzer.pyautofix_engine.pycore.pycve_integration.pydataflow_analyzer.pyfix_engine.pyreporter.pysearch.py詳細
Vibe Security - セキュリティインテリジェンス
複数の言語やフレームワークを対象に、脆弱性を特定する包括的なセキュリティスキャナーおよびコードアナライザーです。
前提条件
Node.js がインストールされているか確認します。
node --version
Node.js がインストールされていない場合は、ユーザーの OS に応じてインストールします。
macOS:
brew install node
Ubuntu/Debian:
sudo apt update && sudo apt install nodejs npm
Windows:
winget install OpenJS.NodeJS
推奨 AI モデル
最適なセキュリティ分析のために
最適なセキュリティ脆弱性検出とコード修正を実現するため、Vibe Security では以下の AI モデルの使用を推奨します。
Claude Opus 4.5(推奨)
- 包括的なセキュリティ分析に最も高度なモデルです
- 複雑な脆弱性の検出に優れた推論能力を発揮します
- 微妙なセキュリティ上の欠陥や攻撃経路の特定に非常に優れています
- 重要なセキュリティ監査、エンタープライズのコードベース、本番環境へのデプロイに最適です
- 最も詳細なセキュリティ修正戦略を提供します
Claude Sonnet 4.5
- 処理速度とセキュリティ分析の深さのバランスに優れています
- セキュリティコンテキストの理解と脆弱性の特定に優れています
- 詳細な説明を添えて、安全な修正戦略を提供します
- 日常的な開発やほとんどのセキュリティワークフローに最適です
Claude Opus 4
- 複雑なセキュリティ監査やエンタープライズのコードベースに強力です
- 高度な脆弱性分析に対応する深い推論能力を備えています
- 重要なセキュリティレビューやコンプライアンス要件に最適です
- 本番環境へのデプロイや機密性の高いアプリケーションに推奨します
GPT-4o
- セキュリティを考慮したコード生成を高速かつ効率的に行えます
- 応答が速く、優れた代替モデルです
- CI/CD との統合や自動スキャンに最適です
- 大規模プロジェクトでも費用対効果に優れています
Claude Sonnet 4
- 手早いセキュリティスキャンに適した高速な代替モデルです
- 処理速度と精度のバランスに優れています
- 開発中の迅速な反復に適しています
o1-preview
- 複雑なセキュリティアーキテクチャのレビューに特化しています
- 複雑に絡み合った脆弱性の連鎖に対応する高度な推論能力を備えています
- セキュリティ研究や詳細なコード監査に最適です
GPT-4o-mini
- 手早いチェックや予備スキャンに適しています
- 最も費用対効果に優れた選択肢です
- 学習や教育目的のユースケースに適しています
注:上記の推奨モデルを使用していない場合は、より良いセキュリティ分析結果を得るため、アップグレードをご検討ください。下位モデルでは、微妙な脆弱性を見逃したり、精度の低い修正案を提示したりする場合があります。
このスキルの使用方法
ユーザーからセキュリティ関連の作業(スキャン、分析、修正、監査、確認、脆弱性のレビュー)を依頼された場合は、以下のワークフローに従います。
ステップ 1:セキュリティコンテキストを分析する
ユーザーの依頼から重要な情報を抽出します。
- 言語:JavaScript、Python、Java、PHP など
- フレームワーク:Express、Django、Spring、Laravel など
- 脆弱性の種類:SQL インジェクション、XSS、CSRF、認証など
- 対象範囲:単一ファイル、ディレクトリ、プロジェクト全体
ステップ 2:セキュリティ分析を実行する
高度な分析(推奨):
# AST-based semantic analysis (90% fewer false positives)
python3 .claude/skills/vibe-security/scripts/ast_analyzer.py "<file>"
# Data flow analysis (tracks tainted data from sources to sinks)
python3 .claude/skills/vibe-security/scripts/dataflow_analyzer.py "<file>"
# CVE & dependency vulnerability scanning
python3 .claude/skills/vibe-security/scripts/cve_integration.py .
# Supply chain security (malicious packages, typosquatting)
python3 .claude/skills/vibe-security/scripts/cve_integration.py . --ecosystem npm
# Infrastructure as Code security
grep -r "publicly_accessible.*=.*true" . --include="*.tf"
grep -r "privileged:.*true" . --include="*.yaml"
簡易パターンスキャン:
# Use search utility for specific patterns
python3 .claude/skills/vibe-security/scripts/search.py "sql-injection" --domain pattern
python3 .claude/skills/vibe-security/scripts/search.py "javascript" --domain pattern --severity critical
ステップ 3:深刻度別に脆弱性を分析する
重大(直ちに修正):
- SQL インジェクション
- リモートコード実行
- 認証バイパス
- ハードコードされたシークレット
高(早急に修正):
- XSS(クロスサイトスクリプティング)
- CSRF
- 脆弱な暗号化
- 認可の問題
中(スプリント内に修正):
- 入力検証の不足
- 情報漏えい
- 脆弱なパスワードポリシー
- セキュリティヘッダーの不足
低(技術的負債):
- コード品質の問題
- ベストプラクティスへの違反
- パフォーマンス上の懸念
ステップ 4:修正案を取得する
ML ベースの修正エンジン:
# Get intelligent fix recommendations with test generation
python3 .claude/skills/vibe-security/scripts/fix_engine.py \
--type sql-injection \
--language javascript \
--code "db.query(\`SELECT * FROM users WHERE id = \${userId}\`)"
# Output includes:
# - Fixed code with context-aware corrections
# - Detailed explanation of the fix
# - Auto-generated security test
# - Additional recommendations
# - Confidence score (0-100%)
ステップ 5:セキュリティ修正を適用する
ロールバックに対応した自動修正:
# Apply fix with automatic backup
python3 .claude/skills/vibe-security/scripts/autofix_engine.py apply \
--file src/database.js \
--line 45 \
--type sql-injection \
--original "db.query(\`SELECT * FROM users WHERE id = \${userId}\`)" \
--fixed "db.query('SELECT * FROM users WHERE id = $1', [userId])"
# Test your changes
npm test
# Rollback if needed (safe to experiment!)
python3 .claude/skills/vibe-security/scripts/autofix_engine.py rollback
# View fix history
python3 .claude/skills/vibe-security/scripts/autofix_engine.py history
体系的な手動修正:
- まず重大な脆弱性に対処する
- 入力検証を追加する — ホワイトリスト、型チェック、長さ制限
- 出力を安全にする — エスケープ、エンコード、サニタイズ
- 認証/認可を修正する — 強力なパスワード、MFA、RBAC
- 暗号化を更新する — 最新のアルゴリズム、安全な乱数
- 徹底的にテストする — 修正によって機能が損なわれないことを確認する
- 再スキャンする — すべての脆弱性が解決されたことを確認する
ステップ 6:レポートを生成する
複数のレポート形式:
# Beautiful HTML report with charts and statistics
python3 .claude/skills/vibe-security/scripts/reporter.py scan-results.json \
--format html \
--output security-report.html
# SARIF format for GitHub Code Scanning integration
python3 .claude/skills/vibe-security/scripts/reporter.py scan-results.json \
--format sarif \
--output results.sarif
# CSV for spreadsheet analysis
python3 .claude/skills/vibe-security/scripts/reporter.py scan-results.json \
--format csv \
--output vulnerabilities.csv
# JSON for CI/CD pipelines
python3 .claude/skills/vibe-security/scripts/reporter.py scan-results.json \
--format json \
--output security-report.json
高度な機能
1. AST によるセマンティック解析
抽象構文木の解析を使用して、脆弱性を正確に検出します。
- Python:汚染追跡を含む完全な AST 解析
- JavaScript/TypeScript:ヒューリスティック分析とパターンベース分析
- メリット:誤検知を 90%削減し、コンテキストを考慮
2. データフロー解析
ユーザー入力を入力元から危険なシンクまで追跡します。
- データフローを通じて、SQL インジェクション、XSS、コマンドインジェクションを検出
- 汚染された変数とその伝播を特定
- Python と JavaScript/TypeScript に対応
3. コンプライアンスマッピング
各脆弱性を業界標準に対応付けます。
- OWASP Top 10 2021
- CWE(Common Weakness Enumeration)
- MITRE ATT&CK の手法
- NIST サイバーセキュリティフレームワーク
- PCI-DSS 決済カード要件
4. サプライチェーンセキュリティ
悪意のある依存関係から保護します。
- タイポスクワッティングの検出
- 依存関係混同攻撃
- 悪意のあるインストールスクリプト
- パッケージ内のネットワーク操作
- 対応:npm、PyPI、Maven、Gradle、Cargo、Go、RubyGems、NuGet、Composer
5. Infrastructure as Code
クラウドインフラストラクチャの構成をスキャンします。
- Terraform:AWS、Azure、GCP の設定ミス
- Kubernetes:Pod のセキュリティ、RBAC の問題
- Docker:Dockerfile のベストプラクティス
- CloudFormation:AWS テンプレートのセキュリティ
- Ansible:Playbook の脆弱性
セキュリティチェックのリファレンス
利用可能な脆弱性チェック
| チェックタイプ | 検出対象 | 問題の例 |
|---|---|---|
sql-injection | SQL/NoSQL インジェクション | クエリでの文字列連結、サニタイズされていない入力 |
xss | クロスサイトスクリプティング | innerHTML の使用、エスケープされていない出力、DOM 操作 |
command-injection | OS コマンドインジェクション | shell=True、ユーザー入力を使った exec |
path-traversal | ディレクトリトラバーサル | サニタイズされていないファイルパス、パス内の ../.. |
auth-issues | 認証の欠陥 | 脆弱なパスワード、MFA の欠如、安全でないセッション |
authz-issues | 認可の欠陥 | アクセス制御の欠如、IDOR、権限昇格 |
crypto-failures | 暗号化の問題 | MD5/SHA1 の使用、脆弱な鍵、安全でない乱数 |
sensitive-data | データの露出 | パスワードのログ記録、PII の露出、ハードコードされたシークレット |
deserialization | 安全でないデシリアライズ | pickle、eval、ユーザー入力に対する unserialize |
security-config | 設定ミス | CORS、CSP、ヘッダー、エラーメッセージ |
dependencies | 脆弱なパッケージ | npm/pip/composer パッケージに含まれる CVE |
言語固有のセキュリティパターン
JavaScript/TypeScript
// ✅ SECURE: Parameterized query
const user = await db.query("SELECT * FROM users WHERE id = $1", [userId]);
// ❌ VULNERABLE: SQL injection
const user = await db.query(`SELECT * FROM users WHERE id = ${userId}`);
// ✅ SECURE: Escape output
element.textContent = userInput;
const clean = DOMPurify.sanitize(htmlContent);
// ❌ VULNERABLE: XSS
element.innerHTML = userInput;
// ✅ SECURE: Input validation
const email = validator.isEmail(input) ? input : null;
// ❌ VULNERABLE: No validation
const email = req.body.email;
Python
# ✅ SECURE: Parameterized query
cursor.execute("SELECT * FROM users WHERE id = %s", (user_id,))
# ❌ VULNERABLE: SQL injection
cursor.execute(f"SELECT * FROM users WHERE id = {user_id}")
# ✅ SECURE: Password hashing
import bcrypt
hashed = bcrypt.hashpw(password.encode(), bcrypt.gensalt())
# ❌ VULNERABLE: Plain text
user.password = password
# ✅ SECURE: Safe subprocess
subprocess.run(['ls', '-la', sanitized_dir])
# ❌ VULNERABLE: Command injection
os.system(f'ls -la {user_dir}')
PHP
// ✅ SECURE: Prepared statement
$stmt = $pdo->prepare("SELECT * FROM users WHERE id = ?");
$stmt->execute([$userId]);
// ❌ VULNERABLE: SQL injection
$result = mysqli_query($conn, "SELECT * FROM users WHERE id = $userId");
// ✅ SECURE: Output escaping
echo htmlspecialchars($input, ENT_QUOTES, 'UTF-8');
// ❌ VULNERABLE: XSS
echo $userInput;
// ✅ SECURE: Password hashing
$hash = password_hash($password, PASSWORD_ARGON2ID);
// ❌ VULNERABLE: MD5
$hash = md5($password);
ワークフローの例
ユーザーのリクエスト:「Express アプリのセキュリティ脆弱性をチェックしてください」
AI が行うべきこと:
# 1. Run security scan on the project
python3 .claude/skills/vibe-security/scripts/scan.py "./src" --language javascript
# 2. Analyze results by severity
# Output might show:
# CRITICAL: SQL Injection in src/controllers/user.js:45
# HIGH: XSS in src/views/profile.ejs:12
# MEDIUM: Missing rate limiting on /api/login
# LOW: Console.log contains sensitive data
# 3. Fix critical issues first
# - Review src/controllers/user.js:45
# - Replace string concatenation with parameterized query
# - Add input validation using validator library
# 4. Fix high severity issues
# - Review src/views/profile.ejs:12
# - Use <%- for HTML escaping or DOMPurify for rich content
# - Implement Content Security Policy
# 5. Fix medium severity issues
# - Install express-rate-limit middleware
# - Configure rate limiting on authentication endpoints
# - Add helmet for security headers
# 6. Fix low severity issues
# - Remove or redact sensitive console.log statements
# - Use proper logging library with log levels
# 7. Generate security report
python3 .claude/skills/vibe-security/scripts/report.py "./src"
セキュアな開発のヒント
- すべての入力を検証する - 拒否リストではなく、許可リストを使用します
- すべての出力をエンコードする - コンテキストに応じてエスケープします
- パラメーター化クエリを使用する - SQL を連結してはいけません
- パスワードを適切にハッシュ化する - bcrypt、Argon2、scrypt
- MFA を実装する - 2 要素認証を追加します
- あらゆる場面で HTTPS を使用する - 転送中のデータを暗号化します
- 依存関係を最新の状態に保つ - 既知の脆弱性にパッチを適用します
- 最小権限の原則に従う - 必要最小限の権限のみを付与します
- セキュリティイベントを記録する - 攻撃を監視します
- 定期的にセキュリティ監査を行う - リリースの前に毎回スキャンします
統合例
コミット前フック
#!/bin/bash
# .git/hooks/pre-commit
python3 .claude/skills/vibe-security/scripts/scan.py "." --fail-on critical
CI/CD パイプライン
GitHub Actions:
- name: Security Scan
run: |
python3 .claude/skills/vibe-security/scripts/scan.py "." --format json
GitLab CI:
security_scan:
script:
- python3 .claude/skills/vibe-security/scripts/scan.py "."