安全审计 security

这是一个集成了Codex和MiniMax的多智能体安全审计技能,能够自动化执行全面的代码安全分析,识别CWE漏洞、OWASP Top 10风险、输入验证问题等,并提供修复指导。

安全审计 0 次安装 0 次浏览 更新于 3/4/2026

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用于补救
  • 共享任务列表跟踪发现和修复分配
  • 多阶段工作流(扫描->优先级->修复->验证)受益于团队协调

配置

  1. TeamCreate:在安全调用时创建团队"security-audit-${TARGET}"
  2. TaskCreate:为分析、优先级和补救阶段创建任务
  3. Spawn:使用ralph-reviewer进行扫描,ralph-coder进行修复
  4. Hooks:TeammateIdle + TaskCompleted进行安全验证
  5. 协调:共享任务列表位于~/.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)

此技能生成完整的自动报告用于可追溯性:

自动报告

当此技能完成后,将自动生成:

  1. 在Claude的对话中:可见结果
  2. 在仓库中docs/actions/security/{timestamp}.md
  3. 元数据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" "摘要" "建议"

系统参考