semgrep-rule-variant-creator
使用严格的测试驱动方法将 Semgrep 规则移植到新语言。包含适用性分析、基于 AST 的转换以及针对每种目标语言的自动化验证。
简介
semgrep-rule-variant-creator 是一款专门为安全工程师和开发人员设计的工具,旨在协助扩展多语言代码库中的漏洞检测覆盖率。此技能通过强制执行严格的四阶段工作流程,将现有的 Semgrep 规则转换为新的目标语言,从而确保准确性、惯用语法以及检测的可靠性。它的设计超越了简单的语法替换,能够处理特定语言的 AST 结构和数据流模式的复杂性。
-
在开始任何转换之前,执行强制性的适用性分析,以确定漏洞模式在目标语言中是否具有语义相关性。
-
实现严格的测试先行 (test-first) 开发循环,每个变体要求至少两个漏洞案例和两个安全案例,确保高保真度的检测。
-
利用 Semgrep 的 --dump-ast 功能进行结构分析,确保转换后的模式考虑到了特定语言的细微差别与惯用法。
-
为每种目标语言生成独立的规则与测试目录,维持组织清晰度并简化 CI/CD 集成。
-
提供强大的验证步骤,要求在完成前必须通过 semgrep --test 和 --validate 达到 100% 的测试通过率。
-
需要现有的 YAML Semgrep 规则与目标语言列表作为主要输入。
-
遵循模块化工作流程:适用性分析、测试建立、规则转换以及验证。
-
防止常见的陷阱,例如直接 1:1 的语法翻译,这往往无法捕捉数据流差异或特定语言的库行为。
-
建议用于将 SQL 注入、指令执行或其他常见漏洞类型移植到各种技术栈(如 Go、Java、Python 和 JavaScript)中。
-
严格禁止跳过步骤;此工具确保开发人员不会采取会损害规则质量或导致漏报的捷径。
-
与更广泛的 Semgrep 规则撰写生态系统集成,特别是在建立于 semgrep-rule-creator 技能所确立的原则之上。
仓库统计
- Star 数
- 4,910
- Fork 数
- 428
- Open Issue 数
- 21
- 主要语言
- Python
- 默认分支
- main
- 同步状态
- 空闲
- 最近同步时间
- 2026年4月30日 15:53