security-auditor について
コードや依存関係に含まれる一般的な脆弱性パターンを検出するセキュリティ監査スキルです。重大度別に問題を示して修正案を提示し、必要に応じて @code-reviewer サブエージェントによる詳細監査に進めます。
主な機能
- 01OWASP Top 10 パターンの検査
- 02認証とアクセス制御の検査
- 03依存関係の監査コマンド
- 04重大度別の問題と修正案
- 05独自のセキュリティパターン設定
活用シーン
- 01コミットやデプロイ前のコード変更確認
- 02認証、API、データベース変更の検査
- 03依存関係にある既知のセキュリティ問題の監査
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ ovachiever/ droid-tings --skill security-auditorインストール後、Claude Code で/security-auditorを入力して読み込まれたか確認します。
同梱ファイルREADME.md
詳細
セキュリティ監査スキル
セキュリティ脆弱性を自動検出します。
有効になるタイミング
- ✅ コードファイルが変更されたとき(特に認証、API、データベース)
- ✅ ユーザーがセキュリティや脆弱性について言及したとき
- ✅ デプロイやコミットの前
- ✅ 依存関係の変更
- ✅ 設定ファイルの変更
スキャン対象
OWASP Top 10 のパターン
1. SQL インジェクション
// CRITICAL: SQL injection
const query = `SELECT * FROM users WHERE id = ${userId}`;
// SECURE: Parameterized query
const query = 'SELECT * FROM users WHERE id = ?';
db.query(query, [userId]);
2. XSS(クロスサイトスクリプティング)
// CRITICAL: XSS vulnerability
element.innerHTML = userInput;
// SECURE: Use textContent or sanitize
element.textContent = userInput;
// or
element.innerHTML = DOMPurify.sanitize(userInput);
3. 認証の問題
// CRITICAL: Weak JWT secret
const token = jwt.sign(payload, 'secret123');
// SECURE: Strong secret from environment
const token = jwt.sign(payload, process.env.JWT_SECRET);
4. 機密データの露出
# CRITICAL: Exposed password
password = "admin123"
# SECURE: Environment variable
password = os.getenv("DB_PASSWORD")
5. アクセス制御の不備
// CRITICAL: No authorization check
app.delete('/api/users/:id', (req, res) => {
User.delete(req.params.id);
});
// SECURE: Authorization check
app.delete('/api/users/:id', auth, checkOwnership, (req, res) => {
User.delete(req.params.id);
});
その他のセキュリティチェック
- 安全でないデシリアライゼーション
- セキュリティ設定の不備
- ログ記録の不足
- CSRF 対策の不足
- CORS の設定ミス
アラート形式
🚨 CRITICAL: [Vulnerability type]
📍 Location: file.js:42
🔧 Fix: [Specific remediation]
📖 Reference: [OWASP/CWE link]
重大度レベル
- 🚨 CRITICAL:直ちに修正が必要です(悪用可能な脆弱性)
- ⚠️ HIGH:早急な修正が必要です(セキュリティ上の弱点)
- 📋 MEDIUM:修正を検討してください(潜在的な問題)
- 💡 LOW:ベストプラクティスの改善
実際の例
SQL インジェクションの検出
// You write:
app.get('/users', (req, res) => {
const sql = `SELECT * FROM users WHERE name = '${req.query.name}'`;
db.query(sql, (err, results) => res.json(results));
});
// I alert:
🚨 CRITICAL: SQL injection vulnerability (line 2)
📍 File: routes/users.js, Line 2
🔧 Fix: Use parameterized queries
const sql = 'SELECT * FROM users WHERE name = ?';
db.query(sql, [req.query.name], ...);
📖 https://owasp.org/www-community/attacks/SQL_Injection
パスワードの保存
# You write:
def create_user(username, password):
user = User(username=username, password=password)
user.save()
# I alert:
🚨 CRITICAL: Storing plain text password (line 2)
📍 File: models.py, Line 2
🔧 Fix: Hash passwords before storing
from bcrypt import hashpw, gensalt
hashed = hashpw(password.encode(), gensalt())
user = User(username=username, password=hashed)
📖 Use bcrypt, scrypt, or argon2 for password hashing
API キーの露出
// You write:
const stripe = require('stripe')('sk_live_abc123...');
// I alert:
🚨 CRITICAL: Hardcoded API key detected (line 1)
📍 File: payment.js, Line 1
🔧 Fix: Use environment variables
const stripe = require('stripe')(process.env.STRIPE_SECRET_KEY);
📖 Never commit API keys to version control
依存関係のスキャン
依存関係のセキュリティ監査を実行できます。
# Node.js
npm audit
# Python
pip-audit
# Results flagged with severity
@code-reviewer サブエージェントとの連携
私(スキル): 脆弱性パターンを迅速に検出します @code-reviewer(サブエージェント): 脅威モデリングを含む詳細なセキュリティ監査を行います
ワークフロー
- 脆弱性パターンを検出します
- 「🚨 SQL インジェクションを検出しました」と警告します
- 詳細な分析が必要な場合 → @code-reviewer サブエージェントを呼び出します
- サブエージェントが包括的なセキュリティ監査を実施します
よくある脆弱性パターン
認証
- 弱いパスワードポリシー
- MFA の未導入
- セッション固定化
- 安全でないパスワード保存
認可
- アクセス制御の欠如
- 特権昇格
- IDOR(安全でない直接オブジェクト参照)
データ保護
- 機密データの暗号化不足
- 脆弱な暗号化アルゴリズム
- HTTPS の未導入
- 安全でない Cookie
入力検証
- SQL インジェクション
- コマンドインジェクション
- XSS
- パストラバーサル
サンドボックスとの互換性
サンドボックスなしで動作: ✅ はい サンドボックスありで動作: ✅ はい
オプション:依存関係のスキャン用
{
"network": {
"allowedDomains": [
"registry.npmjs.org",
"pypi.org",
"api.github.com"
]
}
}
ツールとの連携
secret-scanner スキルとの連携
security-auditor: Checks code patterns
secret-scanner: Checks for exposed secrets
Together: Comprehensive security coverage
/review コマンドとの連携
/review --scope staged --checks security
# Workflow:
# 1. My automatic security findings
# 2. @code-reviewer sub-agent deep audit
# 3. Comprehensive security report
カスタマイズ
会社固有のセキュリティパターンを追加します。
cp -r ~/.claude/skills/security/security-auditor \
~/.claude/skills/security/company-security-auditor
# Edit SKILL.md to add:
# - Internal API patterns
# - Company security policies
# - Custom vulnerability checks
詳細情報
コメント
Markdown 対応