name: 安全 description: 安全审计工作流程 - 漏洞扫描 → 验证
/security - 安全审计工作流程
专为敏感代码进行安全分析。
何时使用
- “安全审计”
- “检查漏洞”
- “这安全吗?”
- “审查认证代码”
- “检查注入攻击”
- 在处理认证、支付、用户数据之前
- 添加安全敏感功能之后
工作流程概述
┌─────────┐ ┌───────────┐
│ aegis │───▶│ arbiter │
│ │ │ │
└─────────┘ └───────────┘
安全审计 验证修复
代理序列
| # | 代理 | 角色 | 输出 |
|---|---|---|---|
| 1 | aegis | 全面安全扫描 | 漏洞报告 |
| 2 | arbiter | 验证修复,运行安全测试 | 验证报告 |
为什么需要专门的安全审计?
/review 工作流程专注于代码质量。安全需要:
- 专门的漏洞模式
- 依赖扫描
- 秘密检测
- OWASP Top 10 检查
- 认证/授权审查
执行
第一阶段:安全审计
Task(
subagent_type="aegis",
prompt="""
安全审计:[范围]
扫描以下内容:
**注入攻击:**
- SQL 注入
- 命令注入
- XSS(跨站脚本)
- LDAP 注入
**认证/授权:**
- 损坏的认证
- 会话管理问题
- 权限提升
- 不安全的直接对象引用
**数据保护:**
- 敏感数据暴露
- 硬编码的秘密/凭证
- 不安全的加密
- 缺少加密
**配置:**
- 安全配置错误
- 默认凭证
- 详细错误消息
- 缺少安全头
**依赖:**
- 已知易受攻击的包
- 过时的依赖
- 供应链风险
输出:详细报告,包括:
- 严重性(CRITICAL/HIGH/MEDIUM/LOW)
- 位置(文件:行)
- 描述
- 修复步骤
"""
)
第二阶段:验证(修复后)
Task(
subagent_type="arbiter",
prompt="""
验证安全修复:[范围]
运行:
- 安全聚焦的测试
- 依赖审计(npm audit, pip audit)
- 重新检查报告的漏洞
- 验证修复不引入回归
输出:验证报告
"""
)
安全范围
完整代码库
用户:/security
→ 扫描整个代码库
特定区域
用户:/security authentication
→ 聚焦于认证相关代码
单个文件
用户:/security src/api/auth.py
→ 深入分析一个文件
仅依赖
用户:/security --deps
→ 仅依赖漏洞
示例
用户:/security the payment processing code
Claude:开始 /security 审计支付代码...
第一阶段:安全审计...
[生成 aegis]
┌─────────────────────────────────────────────────────────────┐
│ 安全审计报告 │
├─────────────────────────────────────────────────────────────┤
│ 范围:src/services/payment/ │
│ 扫描文件:12 │
│ 分析行数:2,847 │
├─────────────────────────────────────────────────────────────┤
│ CRITICAL (1) │
│ ────────── │
│ [C1] 在 payment.py:89 的 SQL 注入 │
│ query = f"SELECT * FROM orders WHERE id = {order_id}" │
│ 修复:使用参数化查询 │
│ │
│ HIGH (2) │
│ ──────── │
│ [H1] 在 stripe_client.py:12 的硬编码 API 密钥 │
│ STRIPE_KEY = "sk_live_..." │
│ 修复:移到环境变量 │
│ │
│ [H2] 在 refund.py:45 缺少输入验证 │
│ amount = request.json['amount'] # 无验证 │
│ 修复:验证金额为正数 │
│ │
│ MEDIUM (1) │
│ ────────── │
│ [M1] 在 error_handler.py:23 的详细错误消息 │
│ return {"error": str(e)} # 泄漏内部细节 │
│ 修复:返回通用消息,内部记录细节 │
│ │
│ LOW (0) │
│ ─────── │
│ 无 │
├─────────────────────────────────────────────────────────────┤
│ 总结:1 个严重,2 个高,1 个中,0 个低 │
│ 状态:阻塞 - 在发布前修复严重问题 │
└─────────────────────────────────────────────────────────────┘
修复严重和高问题,然后运行:
/security --verify
修复后
用户:/security --verify
Claude:第二阶段:验证修复...
[生成 arbiter]
✅ C1:SQL 注入已修复 - 使用参数化查询
✅ H1:API 密钥已移到环境变量
✅ H2:已添加输入验证
✅ M1:错误消息已净化
所有安全测试通过。
安全审计:通过
OWASP Top 10 覆盖
| 风险 | 已检查 |
|---|---|
| A01 损坏的访问控制 | ✅ |
| A02 加密失败 | ✅ |
| A03 注入 | ✅ |
| A04 不安全设计 | ✅ |
| A05 安全配置错误 | ✅ |
| A06 易受攻击的组件 | ✅ |
| A07 认证失败 | ✅ |
| A08 数据完整性失败 | ✅ |
| A09 日志记录失败 | ✅ |
| A10 SSRF | ✅ |
标志
--deps:仅依赖--verify:修复后重新运行--owasp:显式 OWASP Top 10 报告--secrets:聚焦于秘密检测