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