代码安全审查技能Skill find-bugs

这是一个用于在代码更改过程中查找缺陷、安全漏洞和代码质量问题的技能。它通过攻击面映射、安全检查清单、验证步骤和预结论审计,帮助开发者进行全面的代码审查,提升软件安全性和质量。关键词:代码审查、安全漏洞、缺陷查找、代码质量、攻击面映射、安全检查、DevOps、测试。

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

name: find-bugs description: 在本地分支更改中查找缺陷、安全漏洞和代码质量问题。当被要求审查更改、查找缺陷、安全审查或审核当前分支代码时使用。

查找缺陷

在这个分支上审查更改以查找缺陷、安全漏洞和代码质量问题。

阶段 1:完整输入收集

  1. 获取完整差异:git diff $(gh repo view --json defaultBranchRef --jq '.defaultBranchRef.name')...HEAD
  2. 如果输出被截断,逐个读取每个更改的文件,直到看到所有更改行
  3. 列出在此分支中修改的所有文件,然后继续

阶段 2:攻击面映射

对于每个更改的文件,识别并列出:

  • 所有用户输入(请求参数、头部、主体、URL 组件)
  • 所有数据库查询
  • 所有身份验证/授权检查
  • 所有会话/状态操作
  • 所有外部调用
  • 所有加密操作

阶段 3:安全检查清单(对每个文件检查每个项目)

  • [ ] 注入:SQL、命令、模板、头部注入
  • [ ] XSS:模板中的所有输出是否正确转义?
  • [ ] 身份验证:所有受保护操作上都有身份验证检查吗?
  • [ ] 授权/IDOR:访问控制已验证,不仅仅是身份验证?
  • [ ] CSRF:状态更改操作受保护吗?
  • [ ] 竞争条件:任何读取然后写入模式中存在 TOCTOU 吗?
  • [ ] 会话:固定、过期、安全标志?
  • [ ] 加密:安全随机数、正确算法、日志中没有秘密?
  • [ ] 信息泄露:错误消息、日志、定时攻击?
  • [ ] DoS:无界操作、缺少速率限制、资源耗尽?
  • [ ] 业务逻辑:边缘情况、状态机违规、数值溢出?

阶段 4:验证

对于每个潜在问题:

  • 检查是否已在更改代码的其他地方处理
  • 搜索覆盖该场景的现有测试
  • 阅读周围上下文以验证问题是真实的

阶段 5:预结论审计

在最终确定之前,你必须:

  1. 列出你审查过的每个文件,并确认你完全阅读了它
  2. 列出每个检查清单项目,并注明是否发现了问题或确认了它是干净的
  3. 列出你无法完全验证的任何区域及其原因
  4. 只有这样才能提供最终发现

输出格式

优先级:安全漏洞 > 缺陷 > 代码质量

跳过:样式/格式化问题

对于每个问题:

  • 文件:行号 - 简要描述
  • 严重性:关键/高/中/低
  • 问题:什么是错的
  • 证据:为什么这是真实的(未修复、没有现有测试等)
  • 修复:具体建议
  • 参考:OWASP、RFCs 或其他适用标准

如果没有发现重大问题,请说明 - 不要捏造问题。

不要进行更改 - 只报告发现。我将决定如何处理。