mcpField
S
security-ops

security-ops

github.com/0xdarkmatter安全7843 次安装2 周前更新
代码仓库

关于 security-ops

security-ops 是面向代码项目的安全审计技能,会识别技术栈并并行安排依赖、静态代码和认证配置审查,再汇总为按严重性排序的 OWASP 报告。它包含针对 PHP、Twig 和 Craft CMS 的专项参考。

主要功能

  1. 01识别项目技术栈与审计范围
  2. 02并行执行三类只读审计
  3. 03按严重性汇总并映射 OWASP 2025
  4. 04提供 PHP、Twig、Craft CMS 参考
  5. 05包含依赖与代码模式扫描脚本

适用场景

  1. 01审查项目依赖中的已知漏洞
  2. 02查找代码中的不安全模式
  3. 03检查认证、配置与安全响应头

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/0xdarkmatter/claude-mods --skill security-ops

安装后在 Claude Code 中输入/security-ops确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

assets/
.gitkeep
references/
audit-agent-prompts.md
audit-quickref.md
auth-account-protection.md
auth-patterns.md
craft-access-control.md
craft-advisories.md
craft-config-hardening.md
craft-csrf-forms.md
craft-graphql-security.md
craft-uploads-assets.md
crypto-patterns.md
ddev-config-drift.md
owasp-top10-a01-a05.md
owasp-top10-a06-a10.md
php-composer-supply-chain.md
php-deserialisation.md
php-input-validation.md
php-password-hashing.md
php-sql-queries.md
secure-headers.md
twig-escaping.md
twig-template-injection.md
scripts/
dependency-audit.sh
security-scan.sh
tests/fixtures/bad/
config_general.php
eval_case.py
hardcoded_secret.py
misc_sinks.php
open_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.mdA01-A05:2025:访问控制 + SSRF、错误配置、供应链、加密、注入
references/owasp-top10-a06-a10.mdA06-A10:2025:设计、身份验证、完整性、日志记录 + 告警、异常情况
references/audit-quickref.md分流速查表:2025 年列表、2021 到 2025 对照表、验证、密钥、grep 模式
references/secure-headers.mdCSP、HSTS、框架控制、引用来源和权限标头
身份验证 / 加密代码references/auth-patterns.md密码哈希、会话、JWT、OAuth2
references/auth-account-protection.mdMFA、速率限制、锁定、密码重置
references/crypto-patterns.mdAES-GCM、KDF、签名、密钥存储
PHP 8.x(composer.json)references/php-input-validation.md请求辅助函数、filter_var、类型转换、路径、批量赋值
references/php-sql-queries.md查询构建器与原始 SQL、标识符、PDO、元素查询参数
references/php-deserialisation.mdunserialize、JSON、phar、签名数据
references/php-password-hashing.mdpassword_hash、Argon2id/bcrypt、旧版哈希、令牌
references/php-composer-supply-chain.mdcomposer audit、阻止公告、allow-plugins、生产环境安装
Twigreferences/twig-escaping.md自动转义、上下文策略、|raw、Craft 输出辅助函数
references/twig-template-injection.mdSSTI 危险点、动态 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.mdcsrfInput、哈希输入、静态缓存、Blitz、Formie
references/craft-uploads-assets.md允许的类型、私有卷、转换 CVE
references/craft-graphql-security.mdSchema、令牌、限制、内省、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内联
依赖项漏洞扫描T2Agent 1(后台)
代码模式扫描(SAST)T2Agent 2(后台)
身份验证与配置审查T2Agent 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 返回后,立即汇总:

  1. 去重 - 移除多个 Agent 都报告的发现(例如,Agent 1 和 Agent 2 都发现了硬编码密钥)
  2. 按严重程度排序:
    • 严重: 远程代码执行、SQL 注入、生产环境中暴露的密钥(包括对请求数据执行 unserialize()、Twig SSTI、已提交的 Craft 安全密钥、处于 CISA-KEV 列出范围内的 Craft 版本)
    • 高: XSS、身份验证失效、缺少访问控制、存在可利用漏洞的已知 CVE(包括已停止维护的 Craft 3/4、生产环境中启用 devMode、状态变更操作中设置 $allowAnonymous = true、遇到异常时授权检查默认放行)
    • 中: 加密强度不足、缺少安全标头、不安全的默认设置
    • 低: 仅供参考的信息、最佳实践建议、TODO 项
  3. 映射到 OWASP Top 10:2025 - 为每项发现标记 Axx:2025 <Category>(例如,A05:2025 Injection)。与旧报告合并或进行差异比较时,通过 references/audit-quickref.md 中的对照表转换其 2021 ID——两个版本中相同的纯数字代表不同类别
  4. 生成报告(参见下方的报告格式)

T3:修复 - 预加载技能并在确认后派发

用户希望修复发现的问题时,派发一个预加载了相关语言 -ops 技能的 general-purpose Agent。

语言路由(与 perf-ops 相同):

发现类型派发预加载
Python 漏洞general-purpose按主题选择相关的 skills/python-*/SKILL.md
Node.js/JS 漏洞general-purposeskills/javascript-ops/SKILL.md
TypeScript 漏洞general-purposeskills/typescript-ops/SKILL.md
Go 漏洞general-purposeskills/go-ops/SKILL.md
Rust 漏洞general-purposeskills/rust-ops/SKILL.md
SQL 注入 / 数据库安全general-purposeskills/postgres-ops/SKILL.md
Craft CMS / Twig / PHPgeneral-purposeskills/craftcms-ops/SKILL.md + 此处匹配的 php-、twig- 或 craft- 参考资料
Laravelgeneral-purposeskills/laravel-ops/SKILL.md
Composer / 依赖供应链(A03:2025)general-purposeskills/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 派发失败,则改为内联扫描:

  1. 直接通过 Bash 运行 scripts/dependency-audit.sh
  2. 直接通过 Bash 运行 scripts/security-scan.sh
  3. 使用 ripgrep 手动检查身份验证模式
  4. 汇总结果并呈现(结构不如基于 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-opsCraft 内容建模、Twig、元素查询、插件——侧重“怎么做”,而此技能侧重“如何安全地做”
supply-chain-defense行为式依赖扫描、发布冷却期、IOC 匹配——涵盖 composer audit 之外的内容
laravel-opsLaravel 专属的修复
testing-ops生成以安全为重点的测试用例
monitoring-ops安全事件日志记录与告警
debug-ops调查安全事件

评论

支持 Markdown