本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立程式碼檢閱
在 AWS Security Agent Web 應用程式中建立程式碼檢閱,以掃描原始程式碼儲存庫和 S3 來源是否有安全漏洞。程式碼檢閱會在整個程式碼庫中執行全面的靜態分析,識別安全問題並提供修補指導。
與分析個別程式碼變更的提取請求型程式碼檢閱不同 (請參閱檢閱提取請求中的程式碼安全性問題清單),隨需程式碼檢閱會掃描完整的原始程式碼,以識別安全漏洞並驗證是否符合組織的安全需求。
在此程序中,您將透過選取原始程式碼輸入、設定許可和執行檢閱來建立程式碼檢閱。
先決條件
開始前,請確保您具備以下條件:
-
存取 AWS Security Agent Web 應用程式
-
代理程式空間中至少有一個連接的 GitHub 儲存庫或 S3 儲存貯體
提示
如果您已將 GitHub 儲存庫連接到您的 Agent Space,則程式碼檢閱已就緒可供使用 — 不需要額外的設定。從 Agent Space 頁面上的程式碼檢閱卡片選擇在 Web 應用程式中啟動,或直接啟動 Web 應用程式。
如果您需要連接其他來源或設定 S3 儲存貯體,請參閱 啟用程式碼檢閱。
存取程式碼檢閱頁面
導覽至 Web 應用程式中的程式碼檢閱區段。
-
登入 AWS Security Agent Web 應用程式。
-
在左側邊欄中,選擇程式碼檢閱。
-
您會看到現有程式碼檢閱的清單,其中包含其來源資訊、上次執行狀態和調查結果摘要。
建立程式碼檢閱
透過設定其原始程式碼輸入和許可來設定新的程式碼檢閱。
-
在程式碼檢閱頁面上,選擇建立程式碼檢閱。
設定程式碼檢閱詳細資訊
提供標題,然後選取要檢閱的原始程式碼。
-
在標題欄位中,輸入程式碼檢閱的描述性名稱。
提示
使用可識別應用程式、儲存庫或檢閱範圍的名稱。例如,「billing-service-security-review」或「infrastructure-code-audit」。
-
在來源區段中,選取此檢閱的來源碼輸入。從兩個索引標籤中選擇:
GitHub 儲存庫
從連線至 Agent Space 的儲存庫中選取 。
-
選擇 GitHub 儲存庫索引標籤。
-
在整合式儲存庫資料表中,選取您要包含在檢閱中的每個儲存庫旁的核取方塊。
-
使用搜尋欄位依名稱尋找特定儲存庫。
注意
只有透過程式碼檢閱組態連線至 Agent Space 的儲存庫才會顯示在這裡。若要新增更多儲存庫,請在管理員主控台中選擇管理,或要求管理員更新客服人員空間組態。
S3 來源
從連線至客服人員空間的 S3 儲存貯體中選取 ZIP 檔案。您的 Agent Space 管理員會設定可用的 S3 儲存貯體。存放在其中一個儲存貯體中的任何 ZIP 檔案都可以用作程式碼檢閱的來源。
-
選擇 S3 來源索引標籤。
-
輸入您要包含在檢閱中每個 ZIP 檔案的 S3 URI。您最多可以新增 30 個 S3 來源。
注意
S3 來源必須是存放在連線至 Agent Space 的 S3 儲存貯體中的 ZIP 檔案。若要讓其他儲存貯體可用,請參閱 啟用程式碼檢閱。
設定 許可
選取此程式碼檢閱的 IAM 服務角色和選用 CloudWatch 日誌群組。
-
在許可區段中,找到服務角色下拉式清單。
-
從設定的服務角色中選取 IAM 角色。
注意
服務角色必須具有許可,才能存取 S3 中的原始碼並寫入 CloudWatch 日誌,以及程式碼檢閱所需的任何其他 AWS 資源。服務角色是在 AWS 管理主控台中的程式碼檢閱設定期間設定。
-
(選用) 在 CloudWatch 日誌群組下拉式清單中,選取要存放程式碼檢閱執行日誌的日誌群組。
注意
如果您未選取日誌群組,AWS Security Agent 會建立預設日誌群組來存放程式碼檢閱日誌。
設定自動程式碼修復
啟用自動修復,讓 AWS Security Agent 在檢閱完成後立即為所有問題清單產生程式碼修正。
-
在自動程式碼修復區段中,選取啟用自動程式碼修復核取方塊。
AWS Security Agent 如何提供修正取決於來源:
-
私有 GitHub 儲存庫 – AWS Security Agent 會將具有修正的提取請求提交至儲存庫。
-
公有 GitHub 儲存庫 – 為了避免在漏洞修正之前揭露漏洞,AWS Security Agent 不會開啟提取請求。反之,它會將建議的 diff 附加到您可以從 Web 應用程式下載的調查結果,並私下套用。
-
S3 來源 – 程式碼修復無法使用。檢閱問題清單詳細資訊並手動套用修正。
重要
具有讀取存取權的每個人都可看見提交至私有儲存庫的修補提取請求。在合併之前檢閱變更。只有在選取 GitHub 儲存庫做為來源時,才能使用自動程式碼修復。
注意
停用時,您仍可在檢閱完成後手動觸發個別 GitHub 來源問題清單的程式碼修復。
設定模擬驗證
啟用模擬驗證,以動態確認在執行中的應用程式中是否可利用探索到的漏洞。
-
在模擬驗證區段中,選取啟用模擬驗證核取方塊。
啟用時,AWS Security Agent 會在靜態分析完成後佈建模擬環境。它會加入您的原始碼、啟動環境中的服務,並嘗試利用掃描期間發現的漏洞。然後,調查結果會更新為驗證狀態,指出漏洞是否已成功利用。
注意
模擬驗證目前僅適用於獨立的 Dockerizable 應用程式。選取多個儲存庫做為來源時,無法使用模擬驗證。
重要
模擬驗證會將處理時間新增至程式碼檢閱執行。驗證步驟會佈建環境並執行入侵嘗試。這通常需要 1-3 小時,取決於調查結果數量和應用程式複雜性。
允許的網路目的地
模擬環境具有僅限於預先定義允許清單的傳出網路存取。您的應用程式可以在驗證期間到達下列網域:
下表列出允許的網域及其用途。
| 網域 | 用途 |
|---|---|
|
|
AWS 服務 |
|
|
Amazon ECR Public |
|
|
Docker Hub |
|
|
GitHub |
|
|
GitLab |
|
|
npm 登錄檔 |
|
|
Python 套件索引 |
|
|
Rust 套件 |
|
|
Java/Gradle 套件 |
|
|
.NET 套件 |
|
|
Ruby 套件 |
|
|
Go 套件 |
|
|
Node.js |
|
|
Linux 發行版本儲存庫 |
|
|
CloudFront 分佈 |
|
|
Google APIs |
|
|
Microsoft 服務 |
|
|
來源託管 |
注意
如果您的應用程式需要存取此清單中未列出的網域,網路防火牆會封鎖連線。依賴以上未列出的外部 APIs或服務的應用程式可能無法在模擬環境中正確啟動。
建立程式碼檢閱
-
檢閱您的組態以確保準確性。
-
選擇建立程式碼檢閱。
系統會將您重新導向至程式碼檢閱詳細資訊頁面,您可以在其中開始檢閱執行。
執行程式碼檢閱
建立程式碼檢閱後,開始執行以開始分析。
-
在程式碼檢閱詳細資訊頁面上,選擇開始檢閱。
-
AWS Security Agent 會開始分析您的原始程式碼。
您也可以從程式碼檢閱清單頁面開始檢閱,方法是選擇您要執行的程式碼檢閱旁的開始檢閱。
監控程式碼檢閱執行
追蹤程式碼檢閱執行時的進度。
檢閱執行階段
程式碼檢閱執行會進行下列階段,顯示為進度指標:
-
預檢 – AWS Security Agent 會驗證對原始碼的存取,並設定測試環境。預檢檢查包括:
-
服務基礎設施設定
-
S3 來源存取驗證
-
設定測試環境
-
-
靜態分析 – AWS Security Agent 會掃描您的原始程式碼是否有安全漏洞和違反要求的情況。
-
模擬驗證 (選用) – 如果啟用模擬驗證,AWS Security Agent 會佈建模擬環境並部署您的應用程式。然後,它會嘗試利用靜態分析期間發現的漏洞。此步驟會確認問題清單是否可在目標執行期中利用。只有當您在程式碼檢閱建立期間啟用模擬驗證時,才會顯示此階段。
-
完成 – AWS Security Agent 會編譯問題清單並產生結果摘要。
檢視執行詳細資訊
在執行詳細資訊頁面上,在標籤之間導覽以監控進度:
-
程式碼檢閱執行 – 檢視執行摘要,包括執行 ID、建立時間、狀態、持續時間、任務時數、嚴重性等級明細和風險類型圖表。
-
預檢 – 檢視每個驗證步驟的預檢檢查進度和狀態。
-
程式碼檢閱日誌 – 檢視 AWS Security Agent 在檢閱期間識別和執行的任務,以及每個步驟的詳細任務日誌。
-
模擬驗證 – 啟用模擬驗證時,檢視佈建狀態、個別問題清單的驗證任務及其結果。
-
問題清單 – 檢視審核完成後的安全性問題清單 (請參閱 檢閱程式碼檢閱的問題清單)。
執行歷史記錄
每個程式碼檢閱都會維護所有執行的歷史記錄。在程式碼檢閱詳細資訊頁面上:
-
最新執行區段會顯示最新執行及其開始時間、狀態、持續時間和 ID。
-
所有執行資料表會列出所有先前的執行及其開始時間、狀態、持續時間、調查結果摘要和 ID。
-
選擇監控執行以檢視最新作用中執行的詳細資訊。
-
選擇任何執行的開始時間連結,以檢視其完整詳細資訊。
後續步驟
執行程式碼檢閱之後:
-
檢閱安全性問題清單及其修補指引 (請參閱 檢閱程式碼檢閱的問題清單)
-
透過自動提取請求或手動修正來修正問題清單 (請參閱 修正程式碼檢閱問題清單)
-
在實作修正以驗證修復之後執行其他檢閱
-
隨著程式碼庫的演進,調整程式碼檢閱組態或來源