用途
security-review 是一个面向代码安全审计的 AI 技能,用于在代码审查过程中识别安全漏洞、OWASP 缺陷以及密钥泄露。它被设计为扮演一名资深安全工程师,对当前分支或 PR 中的代码变更进行聚焦式安全审查,目标是发现具有真实利用可能性的高置信度安全漏洞,而不是进行通用代码审查。
主要能力
该技能会读取 git 状态、修改文件列表、提交日志以及完整 diff 内容,并基于这些信息分析代码变更引入的安全影响。其审查范围覆盖以下安全类别:
- 输入验证漏洞:包括 SQL 注入、命令注入、XXE 注入、模板注入、NoSQL 注入、路径遍历等。
- 认证与授权问题:包括认证绕过逻辑、权限提升路径、会话管理缺陷、JWT 令牌漏洞、授权逻辑绕过等。
- 加密与密钥管理:包括硬编码 API 密钥、密码或令牌,弱加密算法或实现,不当的密钥存储或管理,加密随机性问题,证书验证绕过等。
- 注入与代码执行:包括反序列化导致的远程代码执行、Python pickle 注入、YAML 反序列化漏洞、动态代码执行中的 eval 注入、Web 应用中的 XSS 漏洞(反射型、存储型、DOM 型)等。
- 数据暴露:包括敏感数据日志记录或存储、PII 处理违规、API 端点数据泄露、调试信息暴露等。
该技能强调最小化误报,只标记置信度超过 80% 且具有实际可利用性的问题,并优先关注可能导致未授权访问、数据泄露或系统沦陷的漏洞。
使用方式
该技能以提示词形式工作,需要提供以下上下文信息:git 状态输出、修改的文件列表、提交日志以及完整 diff 内容。技能会按照三阶段方法论进行分析:
- 仓库上下文研究:使用文件搜索工具识别现有安全框架和库、既有的安全编码模式、现有的清理和验证模式,理解项目的安全模型和威胁模型。
- 对比分析:将新代码变更与现有安全模式进行对比,识别偏离既有安全实践的地方,查找不一致的安全实现,标记引入新攻击面的代码。
- 漏洞评估:检查每个修改文件的安全影响,追踪从用户输入到敏感操作的数据流,查找不安全跨越的权限边界,识别注入点和不安全反序列化。
分析过程要求使用子任务识别漏洞,再为每个漏洞创建并行子任务过滤误报,最终过滤掉置信度低于 8 的漏洞。最终回复必须以 Markdown 格式输出,包含文件、行号、严重级别、类别、描述、利用场景和修复建议。
适用场景
该技能适用于对代码分支或 PR 进行安全审查,尤其是在需要快速识别新引入的安全漏洞时。它适合安全工程师在 PR 审查中提出高置信度问题,也适合开发团队在合并代码前进行安全自查。
限制
该技能明确排除以下类型的问题:拒绝服务漏洞、磁盘上存储的密钥或敏感数据、速率限制或资源耗尽问题、内存消耗或 CPU 耗尽问题、非安全关键字段的输入验证缺失、GitHub Action 工作流中的输入清理问题(除非可通过不可信输入明确触发)、缺乏加固措施、理论性的竞态条件或时序攻击、过时第三方库相关漏洞、内存安全语言中的内存安全问题、仅单元测试文件、日志欺骗、仅控制路径的 SSRF、AI 系统提示中的用户控制内容、正则注入、正则 DOS、文档文件中的不安全内容、缺乏审计日志等。此外,环境变量和 CLI 标志被视为可信值,UUID 被视为不可猜测,React 和 Angular 通常被认为对 XSS 安全,客户端 JS/TS 代码中的权限检查缺失不被视为漏洞。该技能不运行命令来复现漏洞,仅通过阅读代码判断是否为真实漏洞,且不使用 bash 工具或写入任何文件。