mcpField
S
security-auditor

security-auditor

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

security-auditor について

コードや依存関係に含まれる一般的な脆弱性パターンを検出するセキュリティ監査スキルです。重大度別に問題を示して修正案を提示し、必要に応じて @code-reviewer サブエージェントによる詳細監査に進めます。

主な機能

  1. 01OWASP Top 10 パターンの検査
  2. 02認証とアクセス制御の検査
  3. 03依存関係の監査コマンド
  4. 04重大度別の問題と修正案
  5. 05独自のセキュリティパターン設定

活用シーン

  1. 01コミットやデプロイ前のコード変更確認
  2. 02認証、API、データベース変更の検査
  3. 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(サブエージェント): 脅威モデリングを含む詳細なセキュリティ監査を行います

ワークフロー
  1. 脆弱性パターンを検出します
  2. 「🚨 SQL インジェクションを検出しました」と警告します
  3. 詳細な分析が必要な場合 → @code-reviewer サブエージェントを呼び出します
  4. サブエージェントが包括的なセキュリティ監査を実施します

よくある脆弱性パターン

認証
  • 弱いパスワードポリシー
  • 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

詳細情報

コメント