关于 security-ops
security-ops 是面向代码项目的安全审计技能,会识别技术栈并并行安排依赖、静态代码和认证配置审查,再汇总为按严重性排序的 OWASP 报告。它包含针对 PHP、Twig 和 Craft CMS 的专项参考。
主要功能
- 01识别项目技术栈与审计范围
- 02并行执行三类只读审计
- 03按严重性汇总并映射 OWASP 2025
- 04提供 PHP、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详细介绍
安全运营
用于安全审计的编排器。可在运行时检测项目技术栈,并行调度三个审计 Agent(依赖项、SAST、身份验证/配置审查),再汇总为按严重性排序、映射到 OWASP 的报告。提供 PHP 8.x、Twig 和 Craft CMS 3/4/5 的单主题参考资料。
调查结果使用 OWASP Top 10:2025 ID(https://top10.owasp.org/2025/),与参考资料一致——请写成
A05:2025,以便每份报告都标明其修订版本。2025 年重新排列了列表(注入从 A03 调整为 A05,错误配置从 A05 调整为 A02,SSRF 并入 A01,新增 A03 供应链和 A10 异常情况);请通过references/audit-quickref.md中的对照表转换标记为 2021 的报告,切勿只写数字。
技术栈路由
根据 T1 的检测结果加载参考资料。每份资料只涵盖一个主题,不超过 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 | Schema、令牌、限制、内省、CORS | |
references/craft-advisories.md | 支持周期、已被利用的 CVE、分流、生命周期结束缓解措施 | |
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 | 内联 |
| 确定范围(已更改 vs 全部) | T1 | 内联 |
| 依赖项漏洞扫描 | T2 | Agent 1(后台) |
| 代码模式扫描(SAST) | T2 | Agent 2(后台) |
| 身份验证与配置审查 | T2 | Agent 3(后台) |
| 汇总发现 | T2 | 内联(Agent 返回后) |
| 修复代码中的漏洞 | T3 | 预加载技能的 Agent + 确认 |
| 更新存在漏洞的依赖项 | T3 | 预加载技能的 Agent + 确认 |
| 添加安全标头 | T3 | 预加载技能的 Agent + 确认 |
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;从 config.platform.php 或 require.php 获取 PHP 版本 |
| Craft CMS | 检查 composer.json 中是否包含 craftcms/cms;使用 composer show craftcms/cms 获取版本 |
| Twig 模板 | 使用 fd -e twig 搜索,或在 Craft 项目的 templates/ 目录下查找 .html 文件 |
| DDEV | 检查是否存在 .ddev/config.yaml(通过 ddev composer / ddev exec 运行 PHP 工具) |
| 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 个并行 Agent
所有审计 Agent 均使用 model="sonnet"、run_in_background=True。所有 Agent 均为只读——明确告知它们绝不能编辑文件。
从 references/audit-agent-prompts.md 复制每个提示词,并填入 T1 中的 {...} 内容。
以下是各 Agent 的工作内容,方便你分派任务并检查输出是否合理:
| Agent | 首先读取 | 查找内容 | 报告内容 |
|---|---|---|---|
| 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 返回后,立即汇总:
- 去重 - 移除多个 Agent 都报告的发现(例如,Agent 1 和 Agent 2 都发现了硬编码密钥)
- 按严重程度排序:
- 严重: 远程代码执行、SQL 注入、生产环境中暴露的密钥(包括对请求数据执行
unserialize()、Twig SSTI、已提交的 Craft 安全密钥、处于 CISA-KEV 列出范围内的 Craft 版本) - 高: XSS、身份验证失效、缺少访问控制、存在可利用漏洞的已知 CVE(包括已停止维护的 Craft 3/4、生产环境中启用
devMode、状态变更操作中设置$allowAnonymous = true、遇到异常时授权检查默认放行) - 中: 加密强度不足、缺少安全标头、不安全的默认设置
- 低: 仅供参考的信息、最佳实践建议、TODO 项
- 严重: 远程代码执行、SQL 注入、生产环境中暴露的密钥(包括对请求数据执行
- 映射到 OWASP Top 10:2025 - 为每项发现标记
Axx:2025 <Category>(例如,A05:2025 Injection)。与旧报告合并或进行差异比较时,通过references/audit-quickref.md中的对照表转换其 2021 ID——两个版本中相同的纯数字代表不同类别 - 生成报告(参见下方的报告格式)
T3:修复 - 预加载技能并在确认后派发
用户希望修复发现的问题时,派发一个预加载了相关语言 -ops 技能的 general-purpose Agent。
语言路由(与 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 注入 / 数据库安全 | 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 预检提示词派发:Agent 先提出变更方案、安全影响、破坏风险、验证方法和回滚方案,
在用户确认前不得进行任何更改。
报告格式
根据 references/audit-agent-prompts.md 中的模板(Report
Format)撰写报告:范围、语言、OWASP revision: Top 10:2025、按类别汇总严重程度、按严重程度列出发现并标注 file:line 和 OWASP 2025 ID,最后列出通过的检查。
后备方案:Agent 不可用时
如果 Agent 派发失败,则改为内联扫描:
- 直接通过 Bash 运行
scripts/dependency-audit.sh - 直接通过 Bash 运行
scripts/security-scan.sh - 使用 ripgrep 手动检查身份验证模式
- 汇总结果并呈现(结构不如基于 Agent 的审计)
参考索引:参见顶部的 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 | 行为式依赖扫描、发布冷却期、IOC 匹配——涵盖 composer audit 之外的内容 |
laravel-ops | Laravel 专属的修复 |
testing-ops | 生成以安全为重点的测试用例 |
monitoring-ops | 安全事件日志记录与告警 |
debug-ops | 调查安全事件 |