mcpField
S
security-review

security-review

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

security-review について

security-review はコードレビュー向けのセキュリティ審査スキルです。認証、API、認証情報などの変更を対象に、OWASP Top 10 のチェックリスト、手順、重要度分類を提供します。

主な機能

  1. 01セキュリティ対象ファイルの変更検出
  2. 02OWASP Top 10 に基づく確認
  3. 03依存関係の脆弱性監査
  4. 04重要度別の指摘記録
  5. 05レビュー成果物への結果記載

活用シーン

  1. 01認証やセッションの変更審査
  2. 02API、ルート、アクセス制御の確認
  3. 03入力処理やデータベースコードの評価
  4. 04認証情報やシークレットの変更審査

インストール

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

$npx skills add https://github.com/troykelly/codex-skills --skill security-review

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

詳細

セキュリティレビュー

概要

認証、認可、ユーザー入力、API、データベース、または認証情報を扱うコードを対象とする、専用のセキュリティレビューです。

基本原則: セキュリティ上の問題には、一般的なコードレビューを超える専門的な注意が必要です。

実施条件: 変更がセキュリティ上重要なパスに影響する場合、このレビューは必須です。

開始時に宣言: 「このコードのセキュリティレビューを実施します。」

必須となる場合

次のファイルのいずれかが変更された場合、このスキルは必須です。

パターン例
**/auth/**src/auth/login.ts, lib/auth/session.js
**/security/**src/security/encryption.ts
**/middleware/**src/middleware/authenticate.ts
**/api/**src/api/endpoints.ts
**/*password*utils/passwordHash.ts
**/*token*services/tokenService.ts
**/*secret*config/secrets.ts
**/*credential*lib/credentials.js
**/*session*middleware/session.ts
**/routes/**src/routes/protected.ts
**/*.sqlmigrations/001_users.sql

次のコマンドで確認します。

git diff --name-only HEAD~1 | grep -E '(auth|security|middleware|api|password|token|secret|credential|session|routes|\.sql)'

OWASP Top 10 チェックリスト

各カテゴリに照らしてレビューします。

1. インジェクション(A03:2021)
確認項目検証内容
SQL インジェクションすべてのクエリでパラメーター化されたステートメントを使用している
コマンドインジェクションシェルコマンドにユーザー入力を使用していない、または適切にエスケープしている
LDAP インジェクションLDAP クエリで適切にエスケープしている
XPath インジェクションXPath クエリでパラメーター化された方法を使用している
テンプレートインジェクションテンプレートエンジンが安全に設定されている
// VULNERABLE
db.query(`SELECT * FROM users WHERE id = '${userId}'`);

// SECURE
db.query('SELECT * FROM users WHERE id = ?', [userId]);
2. 認証の不備(A07:2021)
確認項目検証内容
パスワードの保存パスワードを bcrypt/argon2 でハッシュ化している(MD5/SHA1 は使用しない)
セッション管理Secure、HttpOnly、SameSite 属性を持つ Cookie を使用している
トークンの処理JWT に署名し、検証しており、有効期間が短い
ブルートフォース攻撃対策認証エンドポイントにレート制限を設けている
認証情報の漏えいログ、エラー、レスポンスに認証情報を含めていない
3. 機微データの露出(A02:2021)
確認項目検証内容
転送中のデータHTTPS を強制し、TLS 1.2 以降を使用している
保存データ機微データを暗号化している
コード内のシークレットAPI キー、パスワード、トークンをハードコードしていない
エラーメッセージエラーレスポンスに機微な情報を含めていない
ログ記録機微データをログに記録していない
# Check for hardcoded secrets
grep -rE '(password|secret|api_key|token)\s*[:=]\s*["\047][^"\047]+["\047]' src/
4. XML 外部実体(A05:2021)
確認項目検証内容
XML の解析外部実体を無効にしている
DTD 処理不要な場合、DTD 処理を無効にしている
5. アクセス制御の不備(A01:2021)
確認項目検証内容
認可チェックすべてのエンドポイントで権限を確認している
直接オブジェクト参照オブジェクトへのアクセスをユーザーに照らして検証している
権限昇格自分の権限を昇格できない
CORS許可するオリジンを適切に制限している
メソッドの制限許可された HTTP メソッドのみを受け付けている
6. セキュリティ設定の不備(A05:2021)
確認項目検証内容
デフォルトの認証情報デフォルトのパスワードを使用していない
エラー処理スタックトレースをユーザーに公開していない
セキュリティヘッダーCSP、X-Frame-Options などを設定している
デバッグモード本番環境で無効にしている
不要な機能使用していないエンドポイントや機能を削除している
7. クロスサイトスクリプティング(A03:2021)
確認項目検証内容
出力エンコーディングユーザー入力を表示前にエンコードしている
DOM XSSユーザー入力に innerHTML を使用していない
テンプレートの安全性テンプレートエンジンが自動エスケープする
CSPコンテンツセキュリティポリシーを設定している
// VULNERABLE
element.innerHTML = userInput;

// SECURE
element.textContent = userInput;
// OR
element.innerHTML = DOMPurify.sanitize(userInput);
8. 安全でないデシリアライゼーション(A08:2021)
確認項目検証内容
オブジェクトのデシリアライゼーション信頼できないデータをデシリアライズしていない
JSON の解析安全な方法で JSON.parse を使用している
型の検証デシリアライズしたオブジェクトを検証している
9. 既知の脆弱性があるコンポーネントの使用(A06:2021)
確認項目検証内容
依存関係の監査pnpm audit / pip audit で問題がない
古いパッケージ重大なレベルで古い依存関係がない
CVE の確認依存関係に既知の CVE がない
# Run dependency audit
pnpm audit --prod
# or
pip-audit
10. ログ記録と監視の不足(A09:2021)
確認項目検証内容
認証イベントログインの成功/失敗が記録されている
アクセス制御権限拒否が記録されている
入力検証検証の失敗が記録されている
機密性の高い操作管理者の操作が記録されている
ログの完全性ログが改ざんから保護されている

レビュープロセス

ステップ 1:セキュリティ上重要な変更を特定する
# List changed files matching security patterns
git diff --name-only HEAD~1 | grep -E '(auth|security|middleware|api|password|token|secret|session)'
ステップ 2:各ファイルをレビューする

セキュリティ上重要なファイルごとに、次の手順を実施します。

  1. ファイル全体を読む(差分だけではなく)
  2. OWASP の 10 カテゴリすべてに照らして確認する
  3. 重大度を添えて、見つかった問題を記録する
ステップ 3:依存関係を確認する
# Audit dependencies
pnpm audit --prod

# Check for outdated
pnpm outdated
ステップ 4:確認結果を記録する

重大度レベルを使用します。

重大度説明対応
CRITICAL悪用可能な脆弱性、データ漏えいのリスクマージ前に必ず修正
HIGH重大なセキュリティ上の弱点マージ前に必ず修正
MEDIUM多層防御上の問題マージ前に修正することを推奨
LOW軽微な改善将来の課題で対応してもよい
ステップ 5:レビュー成果物にセキュリティセクションを追加する

メインのレビュー成果物に追加します。

### Security Review

**Security-Sensitive:** YES
**Reviewed By:** [WORKER_ID or codex-subagent security-reviewer]
**OWASP Categories Checked:** 10/10

#### Security Findings

| # | OWASP Category | Severity | Finding | Status |
|---|----------------|----------|---------|--------|
| 1 | A03 Injection | CRITICAL | SQL injection in findUser() | FIXED |
| 2 | A02 Sensitive Data | HIGH | API key in config.ts | DEFERRED #456 |
| 3 | A01 Access Control | MEDIUM | Missing auth on /admin | FIXED |

#### Dependency Audit

pnpm audit: 0 vulnerabilities


**Security Review Status:** [PASS|ISSUES_FIXED|ISSUES_DEFERRED]

セキュリティレビュー成果物(単独)

セキュリティレビューの範囲が広い場合は、別のコメントとして投稿します。


## Security Review

| Property | Value |
|----------|-------|
| Issue | #123 |
| Reviewer | `security-reviewer` subagent (codex-subagent) |
| Reviewed | 2025-12-29T10:30:00Z |

### Files Reviewed

- src/auth/login.ts
- src/middleware/authenticate.ts
- src/api/users.ts

### OWASP Checklist Results

| # | Category | Status | Notes |
|---|----------|--------|-------|
| A01 | Broken Access Control | PASS | Auth middleware on all protected routes |
| A02 | Cryptographic Failures | PASS | bcrypt for passwords, TLS enforced |
| A03 | Injection | FIXED | Parameterized SQL queries now |
| A04 | Insecure Design | PASS | - |
| A05 | Security Misconfiguration | PASS | - |
| A06 | Vulnerable Components | PASS | pnpm audit clean |
| A07 | Auth Failures | PASS | Rate limiting, secure sessions |
| A08 | Data Integrity Failures | PASS | - |
| A09 | Logging Failures | NOTE | Consider adding auth failure logging |
| A10 | SSRF | N/A | No server-side requests |

### Dependency Audit

found 0 vulnerabilities


**Security Review Status:** PASS

チェックリスト

セキュリティレビューを完了する前に、次の項目を確認します。

  • 変更されたセキュリティ上重要なファイルをすべてレビューした
  • OWASP の 10 カテゴリすべてを確認した
  • 依存関係の監査を実施した
  • CRITICAL/HIGH の問題をすべて修正した
  • 対応を延期した問題に追跡用の課題がある
  • レビュー成果物にセキュリティセクションを追加した
  • メインの成果物で Security-Sensitive を YES に設定した

統合

このスキルは、次の場合に起動します。

  • セキュリティ上重要なファイルのパターンに変更があった場合
  • 明示的に呼び出された場合
  • codex-subagent security-reviewer

このスキルは、次の機能と連携します。

  • comprehensive-review - セキュリティは評価基準 #4 です
  • review-gate - 機密性の高い変更に対するセキュリティレビューを検証します

このスキルは、次の機能によって適用されます。

  • .codex/rules/security-sensitive.md の条件付きルール
  • PR ゲートの自動化(セキュリティ上重要な変更にレビューがない場合、PR をブロックします)

コメント