工程開發
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日 下午03:53
在 GitHub 查看