本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立滲透測試
透過設定測試範圍、目標網域和 AWS 資源存取,為您的 Web 應用程式設定自動化滲透測試。滲透測試透過模擬已驗證網域的真實攻擊案例,協助識別執行中應用程式的安全漏洞。
AWS Security Agent 會根據設定的範圍和許可,對您的 Web 應用程式執行全面的安全測試,在攻擊者可以發現漏洞之前提供詳細的調查結果。
在此程序中,您將透過設定測試詳細資訊、定義測試範圍和設定必要的許可來建立滲透測試。
先決條件
開始前,請確保您具備以下條件:
-
存取 AWS Security Agent Web 應用程式
-
至少一個用於測試的已驗證網域
-
具有 AWS Security Agent 適當許可的 IAM 角色
-
了解應用程式的架構和關鍵路徑
開始建立滲透測試
導覽至 Agent Web 應用程式中的滲透測試建立頁面。
-
登入 AWS Security Agent Web 應用程式。
-
導覽至滲透測試區段。
-
選擇建立滲透測試。
提示
只有已驗證的網域可以包含在滲透測試中。請您的管理員在 AWS 管理主控台中驗證網域。請參閱 啟用用於滲透測試的應用程式網域。
為您的滲透測試命名
提供描述性名稱,以協助識別此滲透測試的目的和範圍。
-
在滲透測試名稱欄位中,輸入滲透測試的描述性名稱。
範例
名稱應清楚識別要測試的應用程式、環境或元件。最多 100 個字元。
設定滲透測試範圍
定義要測試的網域和 URL 路徑,並設定選用的排除以控制測試界限。
新增目標網域
指定將主動測試安全性漏洞的已驗證網域。
-
在滲透測試範圍區段中,找到目標 URLs。
-
展開已驗證網域區段以檢視可用的網域。
-
在目標 URL 欄位中,輸入目標網域 URL。
重要
只能測試已驗證的網域。URL 必須位於您先前在 AWS Security Agent 中驗證過的網域下。已驗證網域的子網域不需要個別驗證。
-
若要新增多個目標網域:
-
選擇新增網域。
-
輸入每個額外的網域 URL。
-
-
若要移除目標網域,請選擇網域 URL 旁的移除。
提示
為了獲得最佳結果,請包含應用程式使用者流程中的所有網域,包括 APIs、身分驗證服務和內容交付的子網域。已驗證父網域的子網域不需要個別驗證。
排除風險類型 (選用)
如果特定風險類別不適用於您的應用程式,請選擇特定風險類別來排除測試。
-
找到排除風險類型欄位。
-
選擇下拉式清單以檢視可用的風險類型。
-
選取要從滲透測試中排除的一或多個風險類型。
注意
排除風險類型會限制測試範圍。僅排除與您的應用程式無關或您想要單獨測試的風險類型。
新增out-of-scope URL 路徑 (選用)
指定在滲透測試期間不應測試的 URL 路徑。AWS Security Agent 會排除指定的路徑及其下巢狀的所有路徑。例如,如果您將 新增https://example.com/admin為out-of-scope的 URL, https://example.com/admin/tools 也會out-of-scope。
-
找到Out-of-scope URLs區段。
-
在Out-of-scope URLs輸入欄位中,輸入要排除的 URL 路徑 (例如
/admin/delete或/api/reset)。警告
Out-of-scope路徑不會測試漏洞。請務必僅排除測試期間不應存取的路徑,例如破壞性操作或敏感管理函數。
-
若要新增多個out-of-scope的路徑:
-
選擇新增 URL。
-
輸入每個額外的路徑。
-
-
若要移除路徑,請選擇路徑旁的移除。
新增可存取的網域 (選用)
指定測試所需的網域,但不是漏洞測試的目標。
-
找到可存取URLs 區段。
-
在可存取 URLs 輸入欄位中,輸入應在測試期間存取的網域。
注意
為目標網域以外的第三方服務 (例如 Okta、Auth0、Stripe) 新增可存取的網域。這是必要的,因此 AWS Security Agent 可以在測試期間存取這些 URLs以進行登入和導覽。AWS Security Agent 不會滲透測試這些網域,它們僅用於存取目的。可存取的網域不需要所有權驗證,即使它們屬於與您的目標不同的網域。只有目標網域需要經過驗證的擁有權。
-
若要新增多個可存取的網域:
-
選擇新增 URL。
-
輸入每個額外的網域。
-
-
若要移除網域,請選擇網域旁的移除。
新增自訂 HTTP 標頭 (選用)
指定自訂 HTTP 標頭,這些標頭將在滲透測試期間新增至 AWS Security Agent 提出的任何請求。
-
找到自訂 HTTP 標頭區段。
-
在自訂 HTTP 標頭輸入欄位中,輸入與傳出請求相關聯的標頭名稱和值。
注意
根據預設,AWS Security Agent 會將 User-Agent 的自訂標頭設定為 securityagent,除非指定了不同的自訂 User-Agent 標頭值。
-
若要新增多個自訂標頭:
-
選擇新增標頭。
-
輸入每個額外的自訂標頭。
-
-
若要移除自訂標頭,請選擇標頭旁的移除。
設定 IAM 角色
選取此滲透測試的預先設定服務角色。AWS Security Agent 使用以 Agent Space 為基礎的許可模型,其中管理員會在設定您的 Agent Space 時設定 IAM 角色。您可以從已設定且可供使用的角色中選取。
-
在許可區段中,找到服務角色下拉式清單。
-
選取授予 AWS Security Agent 必要 AWS 資源存取權的 IAM 角色。
重要
選取的 IAM 角色必須具有存取 VPC 資源、CloudWatch Logs 和滲透測試所需的任何其他 AWS 服務的許可。確認角色與 AWS Security Agent 具有正確的信任關係。
-
找到 CloudWatch 日誌群組下拉式清單。
-
選取將存放滲透測試日誌的日誌群組。(選用)
注意
選取的 CloudWatch 日誌群組將存放滲透測試執行的詳細日誌,包括提出的請求、收到的回應,以及發現的漏洞。
如果您未選取日誌群組,系統會自動建立一個具有
/aws/securityagent字首的新 CloudWatch 日誌群組來存放滲透測試日誌。
自動程式碼修復
選取啟用自動修復核取方塊。
重要
為了修復原始碼儲存庫中的安全調查結果,AWS Security Agent 可能會向您的儲存庫提交提取請求。具有儲存庫讀取存取權的所有使用者都可看見提取請求。
設定 VPC 資源 (選用)
如果您的目標網域是私有且託管在 VPC 內,請設定 AWS Security Agent 應執行滲透測試的 VPC 設定。只有無法公開存取的應用程式才需要此步驟。
注意
如果您的目標網域可公開存取,請略過此步驟。只有測試 Amazon Virtual Private Cloud 中託管的私有應用程式時,才需要 VPC 組態。
選擇滲透測試環境的 VPC、子網路和安全群組。
-
在 VPC 區段中,找到 VPC ID 下拉式清單。
-
選取託管目標網域的 VPC。
重要
選取的 VPC 必須包含您在步驟 3 中指定的目標網域。確保 VPC 具有適當的路由和網路組態,以允許 AWS Security Agent 存取您的應用程式。
-
找到子網路下拉式清單。
-
選取一或多個應執行滲透測試的子網路。
注意
選擇具有目標應用程式網路存取權的子網路。滲透測試將從這些子網路中部署的資源執行。
-
找到安全群組下拉式清單。
-
選取控制滲透測試網路存取的安全群組。
重要
選取的安全群組必須允許傳出流量到您的目標網域和任何可存取的網域。確保安全群組規則允許必要的網路存取以進行全面測試。
設定身分驗證憑證 (選用)
如果您的目標網域需要身分驗證,請提供登入資料,讓 AWS Security Agent 在滲透測試期間存取您應用程式的受保護區域。只有需要使用者身分驗證的應用程式才需要此步驟。
注意
如果您的目標網域不需要身分驗證,或您想要測試的所有區域皆可公開存取,請略過此步驟。只有在您需要 AWS Security Agent 測試應用程式的已驗證區段時,才設定登入資料。
新增登入資料
提供 AWS Security Agent 用來存取應用程式的身分驗證憑證。
-
在登入資料 #1 區段中,選取登入資料輸入方法:
-
輸入登入資料 - 將您的登入資料直接輸入 AWS Security Agent。
-
進階設定 - 對於敏感登入資料資訊,請使用進階選項,例如 AWS Secrets Manager 或 AWS Lambda 函數。如需詳細資訊,請參閱 提供用於滲透測試的身分驗證憑證。
提示
對於生產環境或敏感登入資料,我們建議您使用進階設定選項,安全地參考存放在 AWS Secrets Manager 或 Systems Manager 參數存放區的登入資料。
-
輸入登入資料詳細資訊
提供已驗證帳戶的使用者名稱和密碼。
-
在使用者名稱欄位中,輸入身分驗證的使用者名稱。
-
在密碼欄位中,輸入身分驗證的密碼。
重要
確保您提供的登入資料對於您想要測試的區域具有適當的存取層級。登入資料應代表典型使用者的存取層級,而非管理權限。
選取存取網域
指定哪個目標網域將使用這些登入資料進行身分驗證。
-
在存取網域下拉式清單中,選取使用這些登入資料的網域。
注意
如果您有多個目標網域需要不同的登入資料,您可以在完成此登入資料組態後按一下新增另一個登入資料來新增其他登入資料集。
設定客服人員登入提示 (選用)
提供指示,引導 AWS Security Agent 完成應用程式的身分驗證程序。
-
如果您的身分驗證流程需要特定指示,請展開客服人員登入提示區段。
-
輸入指示,說明如何在應用程式的登入流程中使用提供的登入資料。
注意
客服人員登入提示會告知客服人員如何將您的登入資料套用至您的應用程式。這適用於複雜的身分驗證流程、多步驟登入程序,或具有非標準登入程序的應用程式。包含step-by-step指示,例如「導覽至 /登入」,在「電子郵件」欄位中輸入使用者名稱,輸入密碼,然後選擇「登入」。
新增多個登入資料 (選用)
如果您的應用程式需要多組登入資料,或不同的網域需要不同的身分驗證,請新增其他登入資料集。
-
完成第一個登入資料組態後,選擇新增另一個登入資料。
-
為每個額外的登入資料集重複登入資料組態步驟。
-
若要移除登入資料集,請選擇登入資料標頭旁的移除。
提示
在測試不同的使用者角色、存取多個已驗證的網域,或驗證應用程式中的角色型存取控制時,設定多個登入資料。
連接其他資源 (選用)
提供補充資源,以協助 AWS Security Agent 進行更徹底且準確的滲透測試。其他資源可能包括架構圖、API 文件、組態檔案、GitHub 儲存庫或 S3-hosted的資料,以提供應用程式的相關內容。
注意
其他資源是選用的,但建議使用。提供應用程式的完整資訊有助於確保完整的測試涵蓋範圍、減少誤報,並提供更可行的結果。
將資源新增至滲透測試
選取現有的資源或上傳有助於引導滲透測試的新檔案。
-
在連線資源區段中,您可以:
-
選擇從可用中選擇,從已連線至 AWS Security Agent 的資源中選擇 (例如 GitHub 儲存庫或 S3 儲存貯體)。
-
選擇上傳,直接從本機系統新增檔案。
-
提示
有用的資源包括 API 文件、架構圖、OpenAPI/Swagger 規格、組態檔案、身分驗證流程圖,以及描述應用程式結構和行為的任何其他資料。
從可用資源中選取
從已與 AWS Security Agent 整合的資源中進行選擇。
-
選擇從現有資源中選取。
-
瀏覽來自連線來源的可用資源清單,例如:
-
GitHub 儲存庫,在 GitHub 儲存庫索引標籤下
-
S3 儲存貯體
-
先前上傳的檔案
-
文件儲存庫
-
-
選取您要包含在滲透測試中的資源。
-
選擇新增至滲透測試以連接選取的資源。
範例
我們建議您選取相關 GitHub 儲存庫並將其新增至您的 pentest,以便 AWS Security Agent 能夠了解您的應用程式內容,並透過提取請求產生ready-to-implement程式碼修正 (啟用時)
注意
從可用來源選取的資源會與其原始位置保持同步。如果您更新 GitHub 儲存庫或 S3 檔案,滲透測試將使用更新的版本。
注意
如果您有與 pentest 相關聯的私有 VPC,且已設定 GitHub 儲存庫,請確定 GitHub 可透過私有 VPC 存取,以提取 GitHub 資源。在大多數情況下,您將需要確保預設允許透過 VPC NAT Gateway 的傳出流量,或設定特定規則以允許 GitHub IPs的傳出流量 (請參閱 GitHub Meta API 端點
上傳新資源
直接從本機系統上傳檔案,或提供純文字內容給 AWS Security Agent。
-
選擇上傳。
-
選擇下列其中一個輸入方法:
-
上傳本機檔案 - 從本機系統選取一或多個檔案。
-
貼上純文字 - 直接在輸入欄位中輸入或貼上文字內容。選擇上傳。
-
-
然後選擇新增以完成上傳。
-
上傳的資源會出現在連線資源資料表中。
提示
當您想要快速提供 API 端點清單、URL 模式、測試指示或其他文字型資訊,而不建立個別的檔案時,請使用純文字選項。
重要
確保上傳的檔案和貼上的內容不包含敏感資訊,例如生產登入資料、私有金鑰或個人身分識別資訊 (PII)。使用已淨化版本的組態檔案和文件。
連接現有資源
現有的資源可以來自您先前上傳至 AWS Security Agent 的內容、S3 儲存貯體,以及整合的 GitHub 儲存庫。選擇從現有資源中選取以選取它們。
管理連線的資源
檢閱、組織和移除連接到滲透測試的資源。
連線的資源資料表會顯示滲透測試中包含的所有資源,其中包含以下資訊:
-
名稱 - 檔案名稱或資源識別符
-
類型 - 資源類別 (上傳的檔案、S3 資源、GitHub 儲存庫等)
若要管理 資源:
-
使用核取方塊選取一或多個資源。
-
選擇從滲透測試中移除以分離選取的資源。
注意
您可以按一下資料欄標頭,依名稱或類型排序資料表。這有助於在處理許多檔案時組織資源。
建立滲透測試
完成並啟動您的滲透測試組態。
設定所有設定後,您就可以建立滲透測試。
-
檢閱所有組態區段以確保準確性。
-
請選擇下列其中一個選項:
-
選擇建立滲透,以儲存組態而不立即執行。
-
選擇建立並執行以儲存組態,並立即開始滲透測試。
-
選擇取消以捨棄滲透測試組態。
-
重要
執行滲透測試之前,請確認:
-
所有目標網域都已正確驗證並可存取
-
IAM 角色具有適當的許可
-
已正確設定Out-of-scope的路徑,以防止測試破壞性操作
-
您有權對所有目標網域執行安全測試
注意
滲透測試開始之後,您可以從滲透測試執行區段監控其進度。完成測試可能需要幾個小時。大部分會在 16 小時內完成,取決於應用程式的範圍和複雜性。