SuperAPI AI 工具集

semgrep-rule-creator

通用与其它

查看项目

更新于 10-16 02:28

技能介绍

用途:指导创建生产级 Semgrep 规则,用于检测特定缺陷模式、安全漏洞、数据流漏洞(污点模式)以及强制执行编码规范。不适用于运行现有 Semgrep 规则集,也不用于无需自定义规则的通用静态分析。

主要能力:支持污点模式(taint mode)追踪不可信输入到危险汇点,也支持模式匹配处理简单语法结构。规则采用迭代式流程:分析问题、先写测试、分析 AST 结构、编写规则、迭代直到全部测试通过、最后优化。

使用方式:输出为以 rule-id 命名的目录,恰好包含两个文件:<rule-id>.yaml(Semgrep 规则)和 <rule-id>.<ext>(带 ruleid/ok 注解的测试文件)。测试命令:semgrep --test --config <rule-id>.yaml <rule-id>.<ext>。示例规则可定义 id、languages、severity、message、mode、pattern-sources、pattern-sinks;测试文件用 # ruleid: 与 # ok: 标注命中与安全用例。

限制与要求:必须先用 WebFetch 阅读指定的 4 个 Semgrep 文档链接(规则语法、模式语法、ToB Testing Handbook - Semgrep、常量传播)。测试优先为强制要求,要求 100% 测试通过,不得跳过步骤;优化放在所有测试通过之后。每个 YAML 文件只能包含一个 Semgrep 规则;目标为特定语言时避免使用 languages: generic 的通用匹配;测试文件中禁止使用 todoruleid 与 todook 注解。应拒绝“模式看起来完整”“匹配到漏洞用例即可”“一个测试足够”等捷径。具体命令、模式操作符与污点语法参见 quick-reference.md,详细流程与示例参见 workflow.md。