View a markdown version of this page

修正程式碼檢閱問題清單 - AWS 安全代理程式

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

修正程式碼檢閱問題清單

從程式碼檢閱檢閱安全性問題清單後,您可以使用 AWS Security Agent 為 GitHub 儲存庫來源中的問題清單產生程式碼修正。對於私有儲存庫,AWS Security Agent 會開啟包含建議修正的提取請求。對於公有儲存庫,AWS Security Agent 會將可下載的 diff 附加到您可以在本機套用的調查結果。來自 S3 來源的問題清單必須手動修復。

先決條件

開始前,請確保您具備以下條件:

  • 包含問題清單的完整程式碼檢閱執行

  • 做為程式碼檢閱來源連線的 GitHub 儲存庫

  • 存取 AWS Security Agent Web 應用程式

  • 熟悉應用程式的架構和安全性需求

程式碼修補的運作方式

當您觸發問題清單的程式碼修復時,AWS Security Agent 會分析問題清單及其程式碼位置,然後產生程式碼修正。修正的交付方式取決於來源:

  • 私有 GitHub 儲存庫 – AWS Security Agent 向相關儲存庫提交提取請求。提取請求包含安全問題和所做的變更的描述。

  • 公有 GitHub 儲存庫 – AWS Security Agent 會將建議的 diff 連接到調查結果,以便在修正之前不會公開漏洞。您可以從 Web 應用程式下載 diff,並使用 在本機套用git apply /path/to/code_remediation_changes.diff

  • S3 來源 – 程式碼修復無法使用。使用調查結果的描述、程式碼位置和風險推理來手動套用修正。

重要

具有儲存庫讀取存取權的所有使用者都可看見 AWS Security Agent 建立的提取請求。在合併之前檢閱變更,以確保它們符合您應用程式的需求。

自動程式碼修復

如果您在建立程式碼檢閱時啟用自動程式碼修復,AWS Security Agent 會在檢閱完成後,立即為所有合格的問題清單產生修正。您不需要採取任何其他動作 — 提取請求會出現在您連線的私有 GitHub 儲存庫中,差異會出現在公有 GitHub 儲存庫的問題清單上,因為執行會完成。

手動程式碼修復

如果停用自動程式碼修復,您可以從 GitHub 來源觸發個別問題清單的修復。

  1. 導覽至已完成程式碼檢閱執行的調查結果索引標籤。

  2. 選取您要修復的問題清單。

  3. 在調查結果詳細資訊面板中,選擇修正程式碼

  4. AWS Security Agent 會產生程式碼修正,並根據儲存庫的可見性,將提取請求提交至儲存庫,或將可下載的差異附加至調查結果。

檢閱修復提取請求

AWS Security Agent 向私有 GitHub 儲存庫提交修補提取請求後:

  1. 導覽至您的 GitHub 儲存庫。

  2. 尋找 AWS Security Agent 建立的提取請求。

  3. 檢閱變更,包括:

    • 說明安全性問題清單和修正的說明

    • 解決漏洞的程式碼變更

    • 修復方法的任何相關內容

  4. 如果修正是適當的,請合併提取請求,或將其關閉並實作替代解決方案。

提示

合併修補提取請求後,啟動新的程式碼檢閱執行,以確認修正可解決問題清單,而不會引入新的安全問題。

套用修復差異

對於公有 GitHub 儲存庫的問題清單,請在本機套用可下載的 diff。

  1. 在調查結果詳細資訊面板中,從程式碼修復區段下載 diff。

  2. 在儲存庫的本機複製中,執行 git apply /path/to/code_remediation_changes.diff

  3. 檢閱套用的變更,根據您的應用程式進行測試,並透過正常的開發工作流程遞交變更。

限制

  • 程式碼修復僅適用於來自 GitHub 儲存庫來源的問題清單。來自 S3 來源的問題清單必須手動修復。

  • AWS Security Agent 會根據其對漏洞的分析產生修正。在合併或遞交變更之前,請檢閱所有變更,以確保它們適合您的應用程式。

  • 有些複雜的問題清單可能需要自動修正以外的手動介入。

後續步驟

修復問題清單之後:

  • 檢閱和合併 GitHub 儲存庫中的提取請求,或透過正常工作流程遞交套用的差異

  • 執行新的程式碼檢閱,以驗證修正並檢查是否有剩餘問題

  • 在確認修復之後,解決 Web 應用程式中的問題清單

  • 視需要調整程式碼檢閱來源或設定 (請參閱 啟用程式碼檢閱)