本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
修正程式碼檢閱問題清單
從程式碼檢閱檢閱安全性問題清單後,您可以使用 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 來源觸發個別問題清單的修復。
-
導覽至已完成程式碼檢閱執行的調查結果索引標籤。
-
選取您要修復的問題清單。
-
在調查結果詳細資訊面板中,選擇修正程式碼。
-
AWS Security Agent 會產生程式碼修正,並根據儲存庫的可見性,將提取請求提交至儲存庫,或將可下載的差異附加至調查結果。
檢閱修復提取請求
AWS Security Agent 向私有 GitHub 儲存庫提交修補提取請求後:
-
導覽至您的 GitHub 儲存庫。
-
尋找 AWS Security Agent 建立的提取請求。
-
檢閱變更,包括:
-
說明安全性問題清單和修正的說明
-
解決漏洞的程式碼變更
-
修復方法的任何相關內容
-
-
如果修正是適當的,請合併提取請求,或將其關閉並實作替代解決方案。
提示
合併修補提取請求後,啟動新的程式碼檢閱執行,以確認修正可解決問題清單,而不會引入新的安全問題。
套用修復差異
對於公有 GitHub 儲存庫的問題清單,請在本機套用可下載的 diff。
-
在調查結果詳細資訊面板中,從程式碼修復區段下載 diff。
-
在儲存庫的本機複製中,執行
git apply /path/to/code_remediation_changes.diff。 -
檢閱套用的變更,根據您的應用程式進行測試,並透過正常的開發工作流程遞交變更。
限制
-
程式碼修復僅適用於來自 GitHub 儲存庫來源的問題清單。來自 S3 來源的問題清單必須手動修復。
-
AWS Security Agent 會根據其對漏洞的分析產生修正。在合併或遞交變更之前,請檢閱所有變更,以確保它們適合您的應用程式。
-
有些複雜的問題清單可能需要自動修正以外的手動介入。
後續步驟
修復問題清單之後:
-
檢閱和合併 GitHub 儲存庫中的提取請求,或透過正常工作流程遞交套用的差異
-
執行新的程式碼檢閱,以驗證修正並檢查是否有剩餘問題
-
在確認修復之後,解決 Web 應用程式中的問題清單
-
視需要調整程式碼檢閱來源或設定 (請參閱 啟用程式碼檢閱)