name: 安全审查 description: 对代码进行全面的安全审查
安全审查技能
执行彻底的安全审计,检查OWASP Top 10漏洞、硬编码密钥和不安全模式。
使用时机
该技能在以下情况激活:
- 用户请求“安全审查”、“安全审计”
- 编写处理用户输入的代码后
- 添加新API端点后
- 修改身份验证/授权逻辑后
- 部署到生产环境前
- 添加外部依赖后
功能描述
委托给security-reviewer代理(Opus模型)进行深度安全分析:
-
OWASP Top 10扫描
- A01: 访问控制破坏
- A02: 加密失败
- A03: 注入(SQL、NoSQL、命令、XSS)
- A04: 不安全设计
- A05: 安全配置错误
- A06: 易受攻击和过时组件
- A07: 身份识别和身份验证失败
- A08: 软件和数据完整性失败
- A09: 安全日志和监控失败
- A10: 服务器端请求伪造(SSRF)
-
密钥检测
- 硬编码API密钥
- 源代码中的密码
- 仓库中的私钥
- 令牌和凭证
- 包含密钥的连接字符串
-
输入验证
- 所有用户输入经过清理
- SQL/NoSQL注入预防
- 命令注入预防
- XSS预防(输出转义)
- 路径遍历预防
-
身份验证/授权
- 适当的密码哈希(bcrypt、argon2)
- 会话管理安全
- 访问控制执行
- JWT实现安全
-
依赖安全
- 运行
npm audit检查已知漏洞 - 检查过时依赖
- 识别高严重性CVE
- 运行
代理委托
Task(
subagent_type="oh-my-claudecode:security-reviewer",
model="opus",
prompt="安全审查任务
对代码库进行全面安全审计。
范围:[特定文件或整个代码库]
安全检查清单:
1. OWASP Top 10扫描
2. 硬编码密钥检测
3. 输入验证审查
4. 身份验证/授权审查
5. 依赖漏洞扫描(npm audit)
输出:安全审查报告,包括:
- 按严重性(关键、高、中、低)总结发现
- 具体文件:行位置
- 适用的CVE引用
- 每个问题的修复指导
- 整体安全态势评估"
)
外部模型咨询(首选)
安全审查员代理应咨询Codex进行交叉验证。
协议
- 首先形成自己的安全分析 - 独立完成审查
- 咨询验证 - 与Codex交叉检查发现
- 批判性评估 - 绝不盲目采纳外部发现
- 优雅回退 - 如果工具不可用,绝不阻塞
咨询时机
- 身份验证/授权代码
- 加密实现
- 不可信数据的输入验证
- 高风险漏洞模式
- 生产部署代码
跳过时机
- 低风险实用代码
- 经过审计的模式
- 时间关键的安全评估
- 已有安全测试的代码
工具使用
首次使用MCP工具前,调用ToolSearch("mcp")发现延迟的MCP工具。
使用mcp__x__ask_codex,设置agent_role: "security-reviewer"。
如果ToolSearch未找到MCP工具,回退到security-reviewer Claude代理。
注意: 安全第二意见价值高。考虑对关键/高发现进行咨询。
输出格式
安全审查报告
======================
范围:整个代码库(扫描42个文件)
扫描日期:2026-01-24T14:30:00Z
关键(2)
------------
1. src/api/auth.ts:89 - 硬编码API密钥
发现:AWS API密钥硬编码在源代码中
影响:如果代码公开或泄露,凭证暴露
修复:移动到环境变量,立即轮换密钥
引用:OWASP A02:2021 – 加密失败
2. src/db/query.ts:45 - SQL注入漏洞
发现:用户输入直接拼接进SQL查询
影响:攻击者可执行任意SQL命令
修复:使用参数化查询或ORM
引用:OWASP A03:2021 – 注入
高(5)
--------
3. src/auth/password.ts:22 - 弱密码哈希
发现:密码使用MD5哈希(加密已破坏)
影响:密码可通过彩虹表反转
修复:使用bcrypt或argon2,适当工作因子
引用:OWASP A02:2021 – 加密失败
4. src/components/UserInput.tsx:67 - XSS漏洞
发现:用户输入使用dangerouslySetInnerHTML渲染
影响:跨站脚本攻击向量
修复:清理HTML或使用安全渲染
引用:OWASP A03:2021 – 注入(XSS)
5. src/api/upload.ts:34 - 路径遍历漏洞
发现:用户控制文件名未经验证使用
影响:攻击者可读写任意文件
修复:验证和清理文件名,使用白名单
引用:OWASP A01:2021 – 访问控制破坏
...
中(8)
----------
...
低(12)
--------
...
依赖漏洞
--------------------------
通过npm audit发现3个漏洞:
关键:axios@0.21.0 - 服务器端请求伪造(CVE-2021-3749)
安装:axios@0.21.0
修复:npm install axios@0.21.2
高:lodash@4.17.19 - 原型污染(CVE-2020-8203)
安装:lodash@4.17.19
修复:npm install lodash@4.17.21
...
整体评估
------------------
安全态势:差(2关键,5高问题)
立即行动要求:
1. 轮换暴露的AWS API密钥
2. 修复db/query.ts中的SQL注入
3. 升级密码哈希到bcrypt
4. 更新易受攻击依赖
建议:在关键和高问题解决前不要部署。
安全检查清单
安全审查员代理验证:
身份验证与授权
- [ ] 密码使用强算法哈希(bcrypt/argon2)
- [ ] 会话令牌加密随机
- [ ] JWT令牌正确签名和验证
- [ ] 所有受保护资源执行访问控制
- [ ] 无身份验证绕过漏洞
输入验证
- [ ] 所有用户输入经过验证和清理
- [ ] SQL查询使用参数化(无字符串拼接)
- [ ] NoSQL查询预防注入
- [ ] 文件上传验证(类型、大小、内容)
- [ ] URL验证预防SSRF
输出编码
- [ ] HTML输出转义预防XSS
- [ ] JSON响应正确编码
- [ ] 错误消息中无用户数据
- [ ] 设置内容安全策略头部
密钥管理
- [ ] 无硬编码API密钥
- [ ] 源代码中无密码
- [ ] 仓库中无私钥
- [ ] 使用环境变量存储密钥
- [ ] 密钥未记录或错误中暴露
加密
- [ ] 使用强算法(AES-256、RSA-2048+)
- [ ] 适当的密钥管理
- [ ] 随机数生成加密安全
- [ ] 敏感数据强制TLS/HTTPS
依赖
- [ ] 依赖中无已知漏洞
- [ ] 依赖保持最新
- [ ] 无关键或高CVE
- [ ] 依赖源已验证
严重性定义
关键 - 可被利用的漏洞,影响严重(数据泄露、RCE、凭证盗窃) 高 - 漏洞需要特定条件但影响严重 中 - 安全弱点,影响有限或难以利用 低 - 最佳实践违规或次要安全关切
修复优先级
- 轮换暴露密钥 - 立即(1小时内)
- 修复关键 - 紧急(24小时内)
- 修复高 - 重要(1周内)
- 修复中 - 计划(1月内)
- 修复低 - 待办(方便时)
与其他技能使用
与管道:
/pipeline security "审查身份验证模块"
使用:探索 → 安全审查员 → 执行器 → 安全审查员-低(重新验证)
与群集:
/swarm 4:security-reviewer "审计所有API端点"
跨多个端点并行安全审查。
与Ralph:
/ralph security-review 然后修复所有问题
审查、修复、重新审查,直到所有问题解决。
最佳实践
- 早期审查 - 安全设计,而非事后考虑
- 经常审查 - 每个主要功能或API更改
- 自动化 - 在CI/CD管道运行安全扫描
- 立即修复 - 不积累安全债务
- 教育 - 从发现中学习预防未来问题
- 验证修复 - 修复后重新运行安全审查