工程开发
semgrep-rule-variant-creator avatar

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
在 GitHub 查看