SuperAPI AI 工具集

find-bugs

安全与审计

查看项目

更新于 10-16 04:38

技能介绍

find-bugs 是一个面向本地分支改动的代码审查技能,主要用途是检查当前分支相对于主干的变更中存在的 bug、安全漏洞和代码质量问题。其适用场景包括:被要求审查改动、查找缺陷、进行安全审查或审计。

使用方式围绕 git 分支差异展开。技能第一步强调完整收集输入:通过 git diff master...HEAD 获取完整 diff;如果输出被截断,则逐个读取每个变更文件,直到看过每一处改动,并在继续之前列出本分支修改的全部文件。

第二步是攻击面映射。对每个变更文件,需要识别并列出所有用户输入(请求参数、请求头、请求体、URL 组件)、所有数据库查询、所有认证与授权检查、所有会话与状态操作、所有外部调用以及所有加密操作。

第三步是安全检查清单,要求对每个文件逐项检查。清单覆盖:注入类问题(SQL、命令、模板、请求头注入);XSS(模板中的所有输出是否被正确转义);认证(所有受保护操作是否都有认证检查);授权与 IDOR(是否验证访问控制,而不仅是认证);CSRF(改变状态的操作是否受到保护);竞态条件(读写模式中是否存在 TOCTOU);会话(固定、过期、安全标志);加密(安全随机数、合适算法、日志中无密钥);信息泄露(错误消息、日志、时序攻击);DoS(无界操作、缺少速率限制、资源耗尽);业务逻辑(边界情况、状态机违规、数值溢出)。

第四步是验证。对每个潜在问题,需要检查它是否已在变更代码的其他位置被处理,搜索是否有覆盖该场景的现有测试,并阅读周边上下文以确认问题真实存在。

第五步是结论前审计,属于强制步骤:列出每个已审查文件并确认已完整阅读;列出每个清单项并注明是否发现问题或确认无问题;列出任何无法完全验证的领域及原因。完成这些之后才给出最终发现。

输出格式方面,优先级为安全漏洞高于 bug,bug 高于代码质量;跳过风格与格式问题。每个问题应包含:文件与行号及简要描述、严重级别(Critical/High/Medium/Low)、问题是什么、证据(为何问题真实存在,例如尚未修复、没有现有测试等)、具体修复建议、适用时的参考标准(OWASP、RFC 等)。如果没有发现显著问题,应直接说明,不要编造问题。该技能不进行任何修改,只报告发现结果,由使用者决定如何处理。

关于收费、价格、平台支持范围以及具体安装步骤,输入资料暂未提供。