VERSION: 2.88.1
name: security description: “安全审计,结合Codex和MiniMax的二次意见。在分析期间使用LSP进行代码导航。使用情况:(1) /security被调用时,(2)任务涉及安全功能。” user-invocable: true context: fork allowed-tools:
- LSP
- Read
- Bash
- Grep
- Glob
hooks:
PreToolUse:
- path: .claude/hooks/validate-lsp-servers.sh match_tool: LSP
/security - 多智能体安全审计(v2.24)
使用Codex GPT-5进行初步分析,MiniMax进行二次意见验证的全面安全审计。
v2.88关键变更(模型不可知)
- 模型不可知:使用
~/.claude/settings.json或CLI/env vars配置的模型 - 无需标志:与配置的默认模型一起工作
- 灵活:与GLM-5、Claude、Minimax或任何配置的模型一起工作
- 设置驱动:通过
ANTHROPIC_DEFAULT_*_MODEL环境变量选择模型
智能体团队集成(v2.88)
最佳场景:集成(智能体团队+自定义子代理)
这个技能使用集成方法,结合智能体团队协调和自定义子代理专业化。
为什么这个技能使用场景C
- 并行安全扫描需要跨不同漏洞类型的协调多智能体分析
- **质量门(TeammateIdle, TaskCompleted)**确保所有安全发现得到妥善处理
- 专门的ralph-reviewer代理用于漏洞检测,ralph-coder用于补救
- 共享任务列表跟踪发现和修复分配
- 多阶段工作流(扫描->优先级->修复->验证)受益于团队协调
配置
- TeamCreate:在安全调用时创建团队"security-audit-${TARGET}"
- TaskCreate:为分析、优先级和补救阶段创建任务
- Spawn:使用ralph-reviewer进行扫描,ralph-coder进行修复
- Hooks:TeammateIdle + TaskCompleted进行安全验证
- 协调:共享任务列表位于~/.claude/tasks/{team}/
工作流模式
TeamCreate(team_name, description)
→ TaskCreate(scan_task, "安全漏洞分析")
→ Task(subagent_type="ralph-reviewer", team_name)用于并行扫描
→ TaskCreate(fix_task, "应用安全修复")
→ Task(subagent_type="ralph-coder", team_name)用于补救
→ TaskUpdate(status="completed")随着发现被解决
→ Hooks验证安全标准
→ 当所有关键/高发现被修复时VERIFIED_DONE
自动团队创建
当/security在包含多个文件的目录上被调用时,它自动:
# 1. 创建安全审计团队
TeamCreate(team_name="security-audit-${TARGET}", description="安全分析和修复")
# 2. 孵化专业队友
Task(subagent_type="ralph-reviewer", team_name="security-audit-${TARGET}") # 分析漏洞
Task(subagent_type="ralph-coder", team_name="security-audit-${TARGET}") # 应用安全修复
队友角色
| 代理 | 角色 | 模型 | 任务 |
|---|---|---|---|
ralph-reviewer |
安全分析,漏洞检测 | 来自设置的模型 | - CWE漏洞扫描<br>- OWASP Top 10检查<br>- 输入验证审查<br>- 补救指导 |
ralph-coder |
安全修复实施 | 来自设置的模型 | - 应用安全补丁<br>- 添加验证<br>- 实施安全模式<br>- 添加安全测试 |
team-lead |
协调 | Opus | - 分配任务<br>- 汇总发现<br>- 验证补救 |
通过共享任务列表协调
# 团队领导创建协调任务
TaskCreate:
subject: "分析${TARGET}的安全漏洞"
description: |
ralph-reviewer:对分配的文件执行安全审计
重点:
- CWE漏洞(优先考虑高/关键)
- OWASP Top 10风险
- 输入验证问题
- 认证/授权缺陷
- SQL/命令/XSS注入向量
每个文件的输出格式:
{
"findings": [
{
"severity": "CRITICAL|HIGH|MEDIUM|LOW",
"cwe": "CWE-XXX",
"owasp": "A01:2021-Broken Access Control",
"title": "简短描述",
"file": "path/to/file.ext",
"line": 42,
"code": "易受攻击的代码片段",
"description": "详细解释",
"remediation": "如何修复",
"references": ["URL1", "URL2"]
}
]
}
TaskCreate:
subject: "修复${TARGET}中的CRITICAL/HIGH安全发现"
description: |
ralph-coder:实施安全修复
- 从ralph-reviewer读取发现
- 应用补救步骤
- 添加输入验证
- 实施安全模式
- 添加安全测试
- 每次修复后运行质量门
质量门集成
智能体团队钩子自动验证安全修复:
# 钩子自动运行(在~/.claude/settings.json中配置)
TeammateIdle → teammate-idle-quality-gate.sh # 在闲置前
TaskCompleted → task-completed-quality-gate.sh # 在标记完成前
# 安全特定的质量检查:
# 1. 无硬编码秘密
# 2. 适当的输入验证
# 3. 无带有敏感数据的console.log
# 4. 所有CRITICAL/HIGH发现已修复
并行安全扫描工作流
┌─────────────────────────────────────────────────────────┐
│ 智能体团队:安全审计并行扫描 │
├─────────────────────────────────────────────────────────┤
│ │
│ 1. TEAM CREATE → TeamCreate("security-audit-${TARGET}")│
│ │
│ 2. PARALLEL SCAN → ralph-reviewer x N (文件块) │
│ ├─ 审查员1:认证文件 │
│ ├─ 审查员2:API端点 │
│ └─ 审查员3:数据处理 │
│ │
│ 3. AGGREGATE → 团队领导汇总发现 │
│ │
│ 4. PRIORITIZE → 按严重程度排序(首先CRITICAL) │
│ │
│ 5. PARALLEL FIX → ralph-coder x N (漏洞分配)│
│ ├─ 编码员1:CRITICAL注入 │
│ ├─ 编码员2:HIGH认证缺陷 │
│ └─ 编码员3:MEDIUM验证问题 │
│ │
│ 6. QUALITY GATE → 钩子验证所有安全修复 │
│ │
│ 7. VERIFY → 重新扫描直到所有发现解决 │
│ │
└─────────────────────────────────────────────────────────┘
示例团队基础安全审计
# 用户在大型代码库上调用/security
ralph security src/
# 幕后:
# 1. 创建团队:"security-audit-src"
# 2. 文件按模块分配给3个ralph-reviewer代理
# 3. 每个审查员并行执行安全审计
# 4. 团队领导汇总发现,去除重复项
# 5. CRITICAL/HIGH发现分配给ralph-coder代理
# 6. 每次修复后自动运行质量门
# 7. 最终验证扫描确认所有漏洞已解决
# 时间节省:比顺序审计快3倍
# 覆盖范围:并行代理捕获不同类型的漏洞
多模型二次意见(可选)
对于关键的安全审计,结合智能体团队与多模型验证:
# 主要审计:ralph-reviewer(来自设置的模型)
# 二次意见:不同模型的额外审查员
Task(subagent_type="ralph-reviewer", model="opus", team_name="security-audit-${TARGET}")
概览
/security命令对您的代码库进行全面的安全审计,检查:
- CWE(通用弱点枚举)漏洞
- OWASP Top 10安全风险
- 输入验证和清理问题
- 认证和授权缺陷
- 加密弱点
- 注入漏洞(SQL, 命令,XSS等)
- 路径遍历和文件处理风险
- 竞态条件和TOCTOU错误
- 不安全的默认设置和配置错误
结果以结构化的JSON格式返回,包括严重程度评级、CWE参考和补救指导。
使用时机
触发/security时:
- 添加处理用户输入的新功能
- 合并安全关键变更前
- 依赖更新可能引入漏洞后
- 实施认证或授权逻辑
- 处理文件操作、shell命令或网络请求
- 准备生产部署
- 进行定期安全审查
工作流
┌────────────────────────────────────────────────────────┐
│ 安全审计流程 │
├────────────────────────────────────────────────────────┤
│ │
│ 1. CODEX主审计 │
│ ├─ CWE漏洞扫描 │
│ ├─ OWASP Top 10检查 │
│ ├─ 输入验证审查 │
│ ├─ 认证/授权审计 │
│ └─ 生成发现(JSON) │
│ │
│ 2. MINIMAX二次意见 │
│ ├─ 独立漏洞审查 │
│ ├─ 交叉验证Codex发现 │
│ ├─ 发现额外问题 │
│ └─ 共识报告 │
│ │
│ 3. 质量门集成 │
│ └─ 发现反馈到ralph门 │
│ │
│ 4. 结构化报告 │
│ ├─ 严重程度:CRITICAL/HIGH/MEDIUM/LOW │
│ ├─ CWE参考 │
│ ├─ OWASP类别 │
│ ├─ 代码片段 │
│ └─ 补救步骤 │
│ │
└────────────────────────────────────────────────────────┘
CLI执行
# 审计整个项目
ralph security .
# 审计特定目录
ralph security src/
# 审计单个文件
ralph security src/auth/login.ts
# 审计并保存JSON报告
ralph security src/ --output security-report.json
任务工具调用
主要安全审计(Codex GPT-5)
Task:
subagent_type: "security-auditor"
model: "sonnet" # Sonnet管理Codex CLI调用
run_in_background: true
description: "Codex:主要安全审计"
prompt: |
通过Codex CLI执行安全分析:
cd /absolute/path/to/project && codex exec -m gpt-5.2-codex "
对:<path>执行全面安全审计
检查:
1. CWE漏洞(优先考虑高/关键)
2. OWASP Top 10风险
3. 输入验证问题
4. 认证/授权缺陷
5. SQL/命令/XSS注入向量
6. 路径遍历(CWE-22, CWE-59)
7. 命令注入(CWE-78)
8. 不安全的加密(CWE-327, CWE-338)
9. 竞态条件(CWE-362, CWE-367)
10. 信息披露(CWE-200, CWE-209)
输出格式:JSON结构:
{
'findings': [
{
'severity': 'CRITICAL|HIGH|MEDIUM|LOW',
'cwe': 'CWE-XXX',
'owasp': 'A01:2021-Broken Access Control',
'title': '简短描述',
'file': 'path/to/file.ext',
'line': 42,
'code': '易受攻击的代码片段',
'description': '详细解释',
'remediation': '如何修复',
'references': ['URL1', 'URL2']
}
],
'summary': {
'total': 10,
'critical': 2,
'high': 3,
'medium': 4,
'low': 1
}
}
"
应用Ralph Loop:迭代直到审计完成并验证所有发现。
二次验证(MiniMax二次意见)
Task:
subagent_type: "minimax-reviewer"
model: "sonnet" # Sonnet管理mmc CLI调用
run_in_background: true
description: "MiniMax:安全二次意见"
prompt: |
通过MiniMax CLI执行独立安全验证:
mmc --query "
对:<path>执行独立安全审查
重点关注Codex可能遗漏的漏洞:
1. 认证中的微妙逻辑缺陷
2. 业务逻辑漏洞
3. 并发代码中的竞态条件
4. 不安全的默认设置和配置错误
5. 复杂的注入链
交叉验证Codex发现并识别额外问题。
使用与Codex一致的JSON格式以保持一致性。
"
MiniMax提供Opus级质量,二次意见成本仅为8%。
输出格式
JSON结构
{
"findings": [
{
"severity": "CRITICAL",
"cwe": "CWE-78",
"owasp": "A03:2021-Injection",
"title": "文件上传处理程序中的命令注入",
"file": "src/upload/handler.ts",
"line": 145,
"code": "execSync(`convert ${filename} output.png`)",
"description": "用户提供的文件名未经清理就传递给shell",
"remediation": "使用execFile带数组参数而不是shell插值。从utils导入execFileNoThrow。",
"references": [
"https://cwe.mitre.org/data/definitions/78.html",
"https://owasp.org/Top10/A03_2021-Injection/"
]
},
{
"severity": "HIGH",
"cwe": "CWE-22",
"owasp": "A01:2021-Broken Access Control",
"title": "文件下载中的路径遍历",
"file": "src/api/download.ts",
"line": 67,
"code": "readFile(path.join('/uploads', req.query.file))",
"description": "用户控制的文件参数允许通过'../'序列访问任意文件",
"remediation": "使用realpath和startsWith检查验证路径是否在允许的目录内",
"references": [
"https://cwe.mitre.org/data/definitions/22.html"
]
}
],
"summary": {
"total": 2,
"critical": 1,
"high": 1,
"medium": 0,
"low": 0,
"files_scanned": 45,
"scan_duration": "12.3s",
"tools": ["codex-gpt5", "minimax-m2.1"]
}
}
Markdown报告
# 安全审计报告
**日期:** 2025-01-04
**目标:** src/
**工具:** Codex GPT-5 + MiniMax M2.1
## 摘要
- **总发现:** 2
- **关键:** 1
- **高:** 1
- **中:** 0
- **低:** 0
## 发现
### [CRITICAL] 文件上传处理程序中的命令注入
**CWE:** CWE-78
**OWASP:** A03:2021-Injection
**文件:** src/upload/handler.ts:145
**易受攻击的代码:**
```typescript
// UNSAFE - 允许命令注入
execSync(`convert ${filename} output.png`)
描述: 用户提供的文件名未经清理就传递给shell,允许任意命令执行。
补救: 使用execFile带数组参数:
// SAFE - 无shell插值
import { execFileNoThrow } from '../utils/execFileNoThrow.js'
await execFileNoThrow('convert', [filename, 'output.png'])
参考:
## 安全考虑
### 对于安全命令本身
1. **安全代码分析** - 安全审计读取代码但绝不执行它
2. **敏感数据处理** - 报告可能包含带有秘密的代码片段;小心处理
3. **误报** - 需要手动审查;自动化工具可能会标记良性模式
4. **范围限制** - 仅限静态分析;无法检测运行时漏洞
5. **工具信任** - Codex和MiniMax是第三方服务;如果受限,不要发送专有代码
### CWE类别检查
| 类别 | CWEs | 描述 |
|----------|------|-------------|
| **注入** | CWE-78, CWE-89, CWE-79 | 命令,SQL,XSS注入 |
| **路径遍历** | CWE-22, CWE-59 | 文件访问超出允许目录 |
| **输入验证** | CWE-20, CWE-116 | 输入清理不当 |
| **认证** | CWE-287, CWE-307 | 认证破坏,暴力破解 |
| **授权** | CWE-284, CWE-862 | 缺少访问控制 |
| **加密** | CWE-327, CWE-338 | 加密弱,不安全的RNG |
| **竞态条件** | CWE-362, CWE-367 | TOCTOU,并发访问 |
| **信息披露** | CWE-200, CWE-209 | 泄露敏感数据 |
| **资源管理** | CWE-400, CWE-770 | DoS,资源耗尽 |
### OWASP Top 10映射
| OWASP类别 | CWE示例 | 优先级 |
|----------------|--------------|----------|
| A01:2021-Broken Access Control | CWE-22, CWE-862 | 高 |
| A02:2021-Cryptographic Failures | CWE-327, CWE-338 | 高 |
| A03:2021-Injection | CWE-78, CWE-89, CWE-79 | 关键 |
| A04:2021-Insecure Design | CWE-840 | 中 |
| A05:2021-Security Misconfiguration | CWE-16 | 中 |
| A06:2021-Vulnerable Components | CVE引用 | 高 |
| A07:2021-Authentication Failures | CWE-287, CWE-307 | 关键 |
| A08:2021-Data Integrity Failures | CWE-502 | 高 |
| A09:2021-Logging Failures | CWE-778 | 低 |
| A10:2021-SSRF | CWE-918 | 中 |
## 与质量门集成
安全审计集成到`ralph gates`:
```bash
# 将安全审计作为质量门的一部分运行
ralph gates
# 质量门自动包括:
# 1. 语言特定linting(9种语言)
# 2. 安全审计(如果更改了安全关键文件)
# 3. 测试覆盖验证
# 4. Git安全检查
门失败标准:
- 任何CRITICAL严重程度发现 → 阻止合并
- 2+ HIGH严重程度发现 → 阻止合并
- MEDIUM发现 → 警告(需要审查)
- LOW发现 → 仅信息
相关命令
| 命令 | 目的 | 用例 |
|---|---|---|
/security |
全面安全审计 | 合并前安全审查 |
/adversarial |
对抗性规范细化 | 复杂度≥7的关键特性 |
/bugs |
错误狩猎 | 功能问题,非安全 |
/security-loop |
迭代安全修复 | 应用修复直到审计通过 |
/code-review |
通用代码审查 | 质量,非安全重点 |
ralph gates |
质量门 | 提交前验证 |
示例
示例1:合并前安全审查
# 场景:即将合并认证功能
ralph security src/auth/
# 输出:包含3个发现的JSON报告
# - CRITICAL:硬编码JWT秘密(CWE-798)
# - HIGH:缺少速率限制(CWE-307)
# - MEDIUM:弱密码要求(CWE-521)
示例2:依赖更新审查
# 场景:从4.17更新Express到4.18
ralph security src/api/
# 输出:未引入新漏洞
# - 验证中间件安全性
# - 检查请求解析
# - 审查错误处理
示例3:文件上传安全
# 场景:实现文件上传功能
ralph security src/upload/
# 输出:2个CRITICAL发现
# - 文件名处理中的命令注入(CWE-78)
# - 存储位置的路径遍历(CWE-22)
示例4:带二次意见的任务工具调用
# 主要审计
Task:
subagent_type: "security-auditor"
model: "sonnet"
run_in_background: true
description: "Codex:认证模块的安全审计"
prompt: |
codex exec -m gpt-5.2-codex "
安全审计:src/auth/
重点关注认证绕过、会话劫持和凭证存储。
JSON输出,带CWE/OWASP参考。
"
# 二次意见
Task:
subagent_type: "minimax-reviewer"
model: "sonnet"
run_in_background: true
description: "MiniMax:验证Codex发现"
prompt: |
mmc --query "
独立安全审查:src/auth/
交叉验证Codex发现并找到遗漏的问题。
与Codex相同的JSON格式。
"
示例5:与Worktree工作流集成
# 为安全修复创建隔离的工作树
ralph worktree "fix-security-findings"
# 在工作树中运行安全审计
cd ~/worktrees/fix-security-findings
ralph security src/
# 修复发现,然后进行多智能体验证的PR审查
ralph worktree-pr fix-security-findings
反模式
- 不要因为“快速修复”而跳过安全审计 - 小变化可能会引入大漏洞
- 不要忽略LOW严重程度发现 - 多个LOW可能组合成HIGH影响
- 不要只信任静态分析 - 需要手动审查+渗透测试
- 不要审计第三方代码 - 专注于您的代码;使用依赖扫描仪检查库
- 不要将专有代码发送到外部服务 - 首先检查公司政策
高级使用
自定义安全规则
# 带自定义CWE焦点的审计
ralph security src/ --cwe CWE-78,CWE-89,CWE-79
# 带严重程度阈值的审计
ralph security src/ --min-severity HIGH
# 带特定OWASP类别的审计
ralph security src/ --owasp A03:2021-Injection
持续安全监控
# 添加到CI/CD管道
name: Security Audit
on: [push, pull_request]
jobs:
security:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: ralph security . --output security-report.json
- run: |
if jq -e '.summary.critical > 0 or .summary.high > 1' security-report.json; then
echo "Security audit failed"
exit 1
fi
安全循环模式
# 迭代直到所有发现解决
ralph loop --security "修复src/auth/中的安全发现"
# 该循环将:
# 1. 运行安全审计
# 2. 应用修复
# 3. 重新审计
# 4. 重复直到清洁(最多15次迭代)
行动报告(v2.93.0)
此技能生成完整的自动报告用于可追溯性:
自动报告
当此技能完成后,将自动生成:
- 在Claude的对话中:可见结果
- 在仓库中:
docs/actions/security/{timestamp}.md - 元数据JSON:
.claude/metadata/actions/security/{timestamp}.json
报告内容
每个报告包括:
- ✅ 摘要:执行的任务描述
- ✅ 执行细节:持续时间,迭代次数,修改的文件
- ✅ 结果:发现的错误,建议
- ✅ 下一步行动:建议的下一步行动
查看以前的报告
# 列出此技能的所有报告
ls -lt docs/actions/security/
# 查看最新的报告
cat $(ls -t docs/actions/security/*.md | head -1)
# 搜索失败的报告
grep -l "Status: FAILED" docs/actions/security/*.md
手动生成(可选)
source .claude/lib/action-report-lib.sh
start_action_report "security" "任务描述"
# ...执行...
complete_action_report "success" "摘要" "建议"
系统参考
- Action Reports System - 完整文档
- action-report-lib.sh - 辅助库
- action-report-generator.sh - 生成器