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

CodeMender 可自動產生、驗證及套用經過驗證的漏洞來源程式碼修補程式,並在您的本機沙箱中測試,防止迴歸。

生成安全漏洞修正內容

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

cm fix FINDING_ID

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

  1. 產生修補程式候選版本:使用雲端主控的推論引擎。
  2. 將修補程式套用至本機沙箱中的原始碼副本。
  3. 執行您設定的 build.command編譯及測試程式碼集,確保專案建構成功並通過單元測試。
  4. 重新執行經過驗證的 PoC 攻擊,確認安全漏洞已無法再遭利用。

根據預設,CodeMender 會提示您確認每個檔案修改內容,再將檔案寫入工作區的磁碟。所有檢查通過後,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,全域停用互動式撰寫提示。
  • 控制沙箱 (--sandbox):明確啟用或停用本次執行的沙箱 (例如,--sandbox=false 可停用):
    cm fix FINDING_ID --sandbox=false
  • 略過沙箱 (--unrestricted):暫時略過本次執行的所有沙箱保護措施,停用檔案系統界線和 OS 層級的容器隔離機制:
    cm fix FINDING_ID --unrestricted
  • 略過快取 (--no-cache):強制 CodeMender 產生新修補程式:
    cm fix FINDING_ID --no-cache

檢查及管理本機 VCS 差異

CodeMender 內建 VCS 指令,可協助您在提交修補程式前,檢查、暫存及管理修補程式導入的程式碼變更:

  • 查看存放區狀態:查看 CodeMender 在本機工作區中修改或建立的檔案。

    cm vcs status

  • 檢查差異:逐行查看代理生成的所有未提交程式碼修改內容的統一差異。

    cm vcs diff

  • 暫存變更:將經過驗證的修補程式修改內容新增至本機測試環境,以便測試及提交。

    cm vcs stage

  • 還原工作階段修改內容:捨棄 CodeMender 在目前工作階段中產生的所有本機檔案修改內容,並將存放區還原至基準狀態。

    cm vcs reset