CodeMender 可自動產生、驗證及套用已確認安全漏洞的原始碼修補程式,並在您的本機沙箱中測試,防止發生迴歸。
生成安全漏洞修正內容
使用 cm fix 為已驗證的發現項目產生經過驗證的安全修補程式:
cm fix FINDING_ID
執行 cm fix 時,CodeMender 會執行下列驗證步驟:
- 產生修補程式候選版本:使用雲端主控的推理引擎。
- 將修補程式套用至本機沙箱中的原始碼副本。
- 執行您設定的
build.command,編譯及測試程式碼集,確保專案建構成功並通過單元測試。 - 重新執行經過驗證的 PoC 攻擊,確認安全漏洞已無法再遭利用。
根據預設,CodeMender 會提示您確認每個檔案修改內容,再將檔案寫入工作區的磁碟。所有檢查通過後,系統會將已驗證的修補程式套用至工作區,並準備好進行暫存。
修正旗標
- 提供修正內容的背景資訊 (
-c/--context):提供架構限制或編碼規範:cm fix FINDING_ID -c "Use the safe parameterized database helper in src/db/query.go"
- 自動核准寫入作業 (
-y/--yes):在修正程序中自動核准所有檔案寫入作業和提示: 注意:您也可以在cm fix FINDING_ID -y
config.yaml中設定confirm_writes: false,全域停用互動式撰寫提示。 - 略過快取 (
--no-cache):強制 CodeMender 產生新修補程式:cm fix FINDING_ID --no-cache
檢查及管理本機 VCS 差異
CodeMender 內建 VCS 指令,可協助您在套用修補程式前,檢查、暫存及管理修補程式導入的程式碼變更:
查看存放區狀態:查看 CodeMender 在本機工作區中修改或建立的檔案。
cm vcs status
檢查差異:逐行查看代理程式生成的所有未提交程式碼修改內容,並統一顯示差異。
cm vcs diff
暫存變更:將已驗證的修補程式修改內容新增至本機暫存環境,準備提交。
cm vcs stage
還原工作階段修改內容:捨棄目前工作階段產生的所有本機檔案修改內容,並將存放區還原至基準狀態。
cm vcs reset