security-ops について
security-opsは、ソフトウェアプロジェクト向けのセキュリティ監査スキルです。技術スタックを検出し、依存関係、SAST、認証・設定のレビューを並行して実施し、重要度順のOWASPレポートにまとめます。PHP、Twig、Craft CMS向けの資料も含みます。
主な機能
- 01技術スタックと監査範囲の検出
- 023種類の読み取り専用監査を並行実行
- 03重要度順の整理とOWASP 2025への対応付け
- 04PHP、Twig、Craft CMS向け資料
- 05依存関係とコードパターンのスキャンスクリプト
活用シーン
- 01依存関係の既知脆弱性の確認
- 02ソースコード内の危険なパターンの検出
- 03認証、設定、セキュリティヘッダーの確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ 0xdarkmatter/ claude-mods --skill security-opsインストール後、Claude Code で/security-opsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
assets/.gitkeepreferences/audit-agent-prompts.mdaudit-quickref.mdauth-account-protection.mdauth-patterns.mdcraft-access-control.mdcraft-advisories.mdcraft-config-hardening.mdcraft-csrf-forms.mdcraft-graphql-security.mdcraft-uploads-assets.mdcrypto-patterns.mdddev-config-drift.mdowasp-top10-a01-a05.mdowasp-top10-a06-a10.mdphp-composer-supply-chain.mdphp-deserialisation.mdphp-input-validation.mdphp-password-hashing.mdphp-sql-queries.mdsecure-headers.mdtwig-escaping.mdtwig-template-injection.mdscripts/dependency-audit.shsecurity-scan.shtests/fixtures/bad/config_general.phpeval_case.pyhardcoded_secret.pymisc_sinks.phpopen_controller.php詳細
セキュリティ運用
セキュリティ監査のオーケストレーターです。プロジェクトのスタックをインラインで検出し、3 つの監査エージェント(依存関係、SAST、認証/設定レビュー)を並列に実行して、重大度順にランク付けし、OWASP に対応付けたレポートにまとめます。PHP 8.x、Twig、Craft CMS 3/4/5 向けに、トピック別のリファレンスを提供します。
検出結果では、リファレンスと同様に OWASP Top 10:2025 ID(https://top10.owasp.org/2025/)を使用します。すべてのレポートで改訂版が明記されるよう、`A05:2025` の形式で記載してください。2025 年版ではリストの番号が変更されています(Injection は A03 から A05 へ、Misconfiguration は A05 から A02 へ、SSRF は A01 に統合、新たに A03 Supply Chain と A10 Exceptional Conditions が追加)。2021 年版のタグが付いたレポートは、番号だけで対応させず、
references/audit-quickref.mdのクロスウォークを使って変換してください。
スタックの振り分け
T1 の検出結果に基づいてリファレンスを読み込みます。各リファレンスは 1 つのトピックを扱い、300 行以下で、冒頭に目次があり、すぐに実行できる rg パターンを使ったレビューチェックリストで終わります。
| 検出対象 | リファレンス | 対象範囲 |
|---|---|---|
| 任意の Web アプリ | references/owasp-top10-a01-a05.md | A01-A05:2025:アクセス制御+SSRF、設定ミス、サプライチェーン、暗号化、インジェクション |
references/owasp-top10-a06-a10.md | A06-A10:2025:設計、認証、完全性、ログ記録+アラート、例外的な条件 | |
references/audit-quickref.md | トリアージシート:2025 年版の表、2021 年版から 2025 年版へのクロスウォーク、検証、シークレット、grep パターン | |
references/secure-headers.md | CSP、HSTS、フレーミング、リファラーおよび権限ヘッダー | |
| 認証/暗号化コード | references/auth-patterns.md | パスワードハッシュ、セッション、JWT、OAuth2 |
references/auth-account-protection.md | MFA、レート制限、ロックアウト、パスワードリセット | |
references/crypto-patterns.md | AES-GCM、KDF、署名、鍵の保管 | |
PHP 8.x(composer.json) | references/php-input-validation.md | リクエストヘルパー、filter_var、型ジャグリング、パス、マスアサインメント |
references/php-sql-queries.md | クエリビルダーと生 SQL の比較、識別子、PDO、要素クエリのパラメーター | |
references/php-deserialisation.md | unserialize、JSON、phar、署名付きデータ | |
references/php-password-hashing.md | password_hash、Argon2id/bcrypt、旧式ハッシュ、トークン | |
references/php-composer-supply-chain.md | composer audit、アドバイザリのブロック、allow-plugins、本番環境へのインストール | |
| Twig | references/twig-escaping.md | 自動エスケープ、コンテキスト戦略、|raw、Craft の出力ヘルパー |
references/twig-template-injection.md | SSTI のシンク、動的 include、Craft のサンドボックス、Twig の最低バージョン | |
Craft CMS(craftcms/cms) | references/craft-config-hardening.md | .env、セキュリティキー、devMode、本番環境の設定 |
references/craft-access-control.md | 権限、allowAnonymous、require ヘルパー、要素の認証 | |
references/craft-csrf-forms.md | csrfInput、ハッシュ化された入力、静的キャッシュ、Blitz、Formie | |
references/craft-uploads-assets.md | 許可されるタイプ、プライベートボリューム、変換に関する CVE | |
references/craft-graphql-security.md | スキーマ、トークン、制限、イントロスペクション、CORS | |
references/craft-advisories.md | サポート期間、悪用された CVE、トリアージ、EOL の緩和策 | |
DDEV(.ddev/config.yaml) | references/ddev-config-drift.md | ローカルと本番環境の PHP/Craft 設定、データ、ddev share。DDEV の仕組みと .ddev/ の監査ツール:ddev-ops |
Craft 3 と Craft 4 はセキュリティサポートが終了しています(それぞれ 2024-04-30、2026-04-30)。どちらかを監査する場合は、この検出結果を最初に提示してください(craft-advisories.md)。
アーキテクチャ
User requests security audit or mentions security concern
|
+---> T1: Detect (inline, fast)
| +---> Identify languages/frameworks in project
| +---> Check installed audit tools
| +---> Determine scope (changed files vs full codebase)
| +---> Present: detection summary + recommended audit
|
+---> T2: Audit (3 parallel agents, background)
| +---> Agent 1: Dependency Audit
| | +---> Run pip-audit, npm audit, govulncheck, cargo audit, trivy
| | +---> Report: CVE IDs, severity, affected + fix versions
| |
| +---> Agent 2: Code Pattern Scan (SAST)
| | +---> Hardcoded secrets, injection, XSS, eval, shell, weak crypto
| | +---> Report: file:line, pattern, severity, fix suggestion
| |
| +---> Agent 3: Auth & Config Review
| | +---> Session, CSRF, CORS, CSP, JWT, OAuth, rate limiting, env vars
| | +---> Report: finding, severity, OWASP category, remediation
| |
| +---> Consolidate: deduplicate, rank by severity, map to OWASP Top 10:2025
|
+---> T3: Remediate (dispatch general-purpose + skill preload, foreground + confirm)
+---> Agent proposes specific fixes
+---> Preflight: what changes, security impact, risk of breaking
+---> User confirms
+---> Apply fixes
安全性のティア
| 操作 | ティア | 実行方法 |
|---|---|---|
| 言語/フレームワークの検出 | T1 | インライン |
| インストール済みの監査ツールの確認 | T1 | インライン |
| スコープの判定(変更分と全体) | T1 | インライン |
| 依存関係の脆弱性スキャン | T2 | エージェント 1(バックグラウンド) |
| コードパターンのスキャン(SAST) | T2 | エージェント 2(バックグラウンド) |
| 認証と設定のレビュー | T2 | エージェント 3(バックグラウンド) |
| 検出結果の統合 | T2 | インライン(エージェントの結果受信後) |
| コード内の脆弱性の修正 | T3 | スキルを事前読み込みしたエージェント+確認 |
| 脆弱な依存関係の更新 | T3 | スキルを事前読み込みしたエージェント+確認 |
| セキュリティヘッダーの追加 | T3 | スキルを事前読み込みしたエージェント+確認 |
T1:検出 — インラインで実行
| 確認項目 | コマンド/方法 |
|---|---|
| Python プロジェクト | requirements.txt、pyproject.toml、Pipfile の有無を確認 |
| Node.js プロジェクト | package.json、package-lock.json の有無を確認 |
| Go プロジェクト | go.mod の有無を確認 |
| Rust プロジェクト | Cargo.toml の有無を確認 |
| Docker | Dockerfile、docker-compose.yml の有無を確認 |
| PHP プロジェクト | composer.json、composer.lock の有無を確認。PHP のバージョンは config.platform.php または require.php から確認 |
| Craft CMS | composer.json 内の craftcms/cms。バージョンは composer show craftcms/cms で確認 |
| Twig テンプレート | fd -e twig、または Craft プロジェクトの templates/ 配下にある .html ファイル |
| DDEV | .ddev/config.yaml の有無を確認(PHP ツールは ddev composer / ddev exec で実行) |
| composer の利用可否 | which composer 2>/dev/null(composer audit には 2.4 以降が必要) |
| pip-audit の利用可否 | which pip-audit 2>/dev/null |
| npm audit の利用可否 | which npm 2>/dev/null |
| govulncheck の利用可否 | which govulncheck 2>/dev/null |
| cargo-audit の利用可否 | which cargo-audit 2>/dev/null |
| trivy の利用可否 | which trivy 2>/dev/null |
| スコープ:変更ファイル | git diff --name-only HEAD |
| スコープ:コードベース全体 | fd -e py -e js -e ts -e go -e rs -e php -e twig |
T2:監査 — 3 つのエージェントを並列で実行
すべての監査エージェントで model="sonnet"、run_in_background=True を使用します。すべて読み取り専用です。ファイルを絶対に編集しないよう、明示的に指示してください。
references/audit-agent-prompts.md から各プロンプトをコピーし、T1 の情報で {...} の箇所を埋めます。
各エージェントの作業内容を以下に示します。出力の振り分けと妥当性確認に使用してください。
| エージェント | 最初に読むもの | 検出内容 | 報告内容 |
|---|---|---|---|
| 1 依存関係の監査 | scripts/dependency-audit.sh。PHP の場合:php-composer-supply-chain.md、Craft の場合:craft-advisories.md | pip-audit、npm audit、govulncheck、cargo audit、trivy、composer audit --locked による脆弱なパッケージ | 重大度順の表:パッケージ、バージョン、CVE、修正済みバージョン、A03:2025 |
| 2 コードパターンのスキャン(SAST) | scripts/security-scan.sh、両方の owasp-top10-*.md。検出された場合は PHP/Twig の参照資料も読む | インジェクション、SSRF、ハードコードされたシークレット、弱い暗号化、安全でないデシリアライズ、フェイルオープンの例外処理。PHP/Twig のチェックリスト rg パターン | file:line、パターン、OWASP 2025 ID、重大度、修正方法 — カテゴリー別に分類 |
| 3 認証と設定のレビュー | auth-patterns.md、auth-account-protection.md、secure-headers.md。検出された場合は Craft/DDEV の参照資料も読む | 認証、認可、CSRF、CORS、ヘッダー、Cookie、セッション、エラー処理。Craft と DDEV のチェックリスト | PASS/FAIL/N-A のチェックリスト、カテゴリー別に分類した検出結果 |
統合
3 つのエージェントがすべて結果を返したら、その場で統合します。
- 重複を排除 - 複数のエージェントに現れる指摘(例:Agent 1 と Agent 2 の両方が見つけたハードコードされたシークレット)を削除します。
- 重大度でランク付け:
- Critical: リモートコード実行、SQL インジェクション、本番環境でのシークレットの漏えい(リクエストデータに対する
unserialize()、Twig SSTI、コミット済みの Craft セキュリティキー、CISA-KEV に掲載された範囲内の Craft バージョンを含む) - High: XSS、認証の不備、アクセス制御の欠如、悪用可能な既知の CVE(サポート終了後の Craft 3/4、本番環境での
devModeの有効化、状態を変更するアクションでの$allowAnonymous = true、例外発生時に許可する認可チェックを含む) - Medium: 暗号化の脆弱性、セキュリティヘッダーの欠如、安全でないデフォルト設定
- Low: 情報提供、ベストプラクティスの提案、TODO 項目
- Critical: リモートコード実行、SQL インジェクション、本番環境でのシークレットの漏えい(リクエストデータに対する
- OWASP Top 10:2025 に対応付け - 各指摘に
Axx:2025 <Category>のタグを付けます(例:A05:2025 Injection)。古いレポートとの統合や差分比較を行う場合は、references/audit-quickref.mdの対応表を使って 2021 年の ID を変換してください。同じ番号でも改訂版によってカテゴリが異なります。 - レポートを作成(下記の「レポート形式」を参照)
T3:修正 - スキルを事前読み込みして、確認後にディスパッチ
ユーザーが指摘の修正を希望した場合は、関連する言語の -ops スキルを事前読み込みした general-purpose エージェントをディスパッチします。
言語の振り分け(perf-ops と同じ):
| 指摘の種類 | ディスパッチ先 | 事前読み込み |
|---|---|---|
| Python の脆弱性 | general-purpose | トピックに関連する skills/python-*/SKILL.md |
| Node.js/JS の脆弱性 | general-purpose | skills/javascript-ops/SKILL.md |
| TypeScript の脆弱性 | general-purpose | skills/typescript-ops/SKILL.md |
| Go の脆弱性 | general-purpose | skills/go-ops/SKILL.md |
| Rust の脆弱性 | general-purpose | skills/rust-ops/SKILL.md |
| SQL インジェクション / DB セキュリティ | general-purpose | skills/postgres-ops/SKILL.md |
| Craft CMS / Twig / PHP | general-purpose | skills/craftcms-ops/SKILL.md + ここにある該当する php-、twig-、または craft- のリファレンス |
| Laravel | general-purpose | skills/laravel-ops/SKILL.md |
| Composer / 依存関係のサプライチェーン(A03:2025) | general-purpose | skills/supply-chain-defense/SKILL.md |
| 一般 / 設定 / ヘッダー | general-purpose | - |
references/audit-agent-prompts.md の T3 事前確認プロンプトを使ってディスパッチします。エージェントはまず、変更案、セキュリティへの影響、破損のリスク、検証方法、元に戻す方法を提示し、ユーザーが確認するまで何も適用しません。
レポート形式
references/audit-agent-prompts.md のテンプレート(レポート形式)に沿ってレポートを作成します。対象範囲、言語、OWASP revision: Top 10:2025、カテゴリごとの重大度の概要、重大度別の指摘(file:line と OWASP 2025 ID を含む)、その後にチェック済みの項目を記載します。
フォールバック:エージェントを利用できない場合
エージェントのディスパッチに失敗した場合は、インラインスキャンに切り替えます。
- Bash 経由で
scripts/dependency-audit.shを直接実行します。 - Bash 経由で
scripts/security-scan.shを直接実行します。 - ripgrep を使って認証パターンを手動で確認します。
- 結果をまとめて提示します(エージェントベースの監査より構造化が不十分です)。
リファレンス一覧:先頭の Stack Routing を参照してください。
スクリプト
| スクリプト | 目的 |
|---|---|
scripts/dependency-audit.sh | 多言語対応の依存関係脆弱性スキャナー(pip-audit、npm、govulncheck、cargo、trivy、composer) |
scripts/security-scan.sh | ripgrep ベースのコードパターンスキャナー(Python、JS、PHP、Twig、Craft の設定) |
関連項目
| スキル | 組み合わせるタイミング |
|---|---|
auth-ops | 認証・認可の実装パターンを詳しく確認する場合 |
craftcms-ops | Craft のコンテンツモデリング、Twig、要素クエリ、プラグインなど、「方法」を扱います。このスキルが扱うのは「安全な方法」です |
supply-chain-defense | composer audit の範囲を超える、依存関係の動作スキャン、リリースのクールダウン、IOC の照合 |
laravel-ops | Laravel 固有の修正 |
testing-ops | セキュリティに重点を置いたテストケースの生成 |
monitoring-ops | セキュリティイベントのログ記録とアラート |
debug-ops | セキュリティインシデントの調査 |