修正程式碼安全漏洞及管理差異

CodeMender 可自動產生、驗證及套用已確認安全漏洞的原始碼修補程式,並在您的本機沙箱中測試,防止發生迴歸。

生成安全漏洞修正內容

使用 cm fix 為已驗證的發現項目產生經過驗證的安全修補程式:

cm fix FINDING_ID

執行 cm fix 時,CodeMender 會執行下列驗證步驟:

  1. 產生修補程式候選版本:使用雲端主控的推理引擎。
  2. 將修補程式套用至本機沙箱中的原始碼副本。
  3. 執行您設定的 build.command編譯及測試程式碼集,確保專案建構成功並通過單元測試。
  4. 重新執行經過驗證的 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