本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
提供用於滲透測試的身分驗證憑證
提供登入資料,讓 AWS Security Agent 能夠測試 Web 應用程式的已驗證區域。如果沒有登入資料,代理程式只能測試可公開存取APIs。
設定身分驗證憑證
-
在滲透測試建立工作流程中,找到身分驗證憑證 - 選用區段。
-
在登入資料 #1 區段中,選擇您的登入資料輸入方法:
-
輸入登入資料 - 直接輸入登入資料。最適合開發和測試環境。
-
進階設定 - 使用 AWS 原生憑證管理。建議用於生產環境和敏感登入資料。
-
進階選項
如果選取進階設定,您可以選擇三種登入資料策略:
-
IAM 角色假設 - 適用於使用 AWS Cognito 或 IAM 身分驗證的應用程式
-
AWS Secrets Manager - 用於加密和輪換的安全登入資料儲存
-
Lambda 函數 - 用於產生動態憑證或複雜身分驗證流程
直接輸入登入資料
-
選取輸入登入資料。
-
輸入使用者名稱和密碼。
-
在存取 URL 下拉式清單中,選取使用這些登入資料的 URL。這必須從目標端點清單中選取。
-
(選用) 在 2FA - 選用欄位中,為需要雙重驗證的應用程式提供 TOTP 秘密。您可擇一方法:
-
直接輸入 TOTP 秘密 (例如
JBSWY3DPEHPK3PXP),或輸入完整的otpauth://totp/URI (例如otpauth://totp/Example:user@example.com?secret=JBSWY3DPEHPK3PXP&issuer=Example)。 -
選擇上傳圖示,從您的驗證器應用程式設定頁面上傳 QR 碼映像。QR 碼會在本機掃描,並自動擷取 TOTP URI。
提供 TOTP 秘密時,代理程式會自動產生新的一次性代碼,並在登入期間偵測到 2FA 提示時輸入。
-
-
(選用) 如果您的應用程式具有複雜的身分驗證流程,請展開客服人員空間登入提示,以提供特定的登入指示。
重要
使用具有代表性存取權的測試帳戶,而不是個人或管理帳戶。
使用進階設定
當您選取進階登入資料策略 (Secrets Manager、Lambda 或 IAM 角色) 時,AWS Security Agent 會使用 服務角色直接從設定的 AWS 資源擷取您的登入資料。使用客服人員空間登入提示,為客服人員提供如何將這些登入資料套用至應用程式的指示,例如,要導覽至哪個登入 URL 以及要填寫的表單欄位。
注意
Secrets Manager 秘密和 Lambda 函數必須與 AWS Security Agent 設定位於相同的 AWS 帳戶中。目前不支援跨帳戶登入資料。
-
選取進階設定。
-
在使用者存取策略下拉式清單中,選擇下列其中一項:
選取要擔任的客服人員的可用 IAM 角色
對於使用 AWS Cognito、具有 IAM 身分驗證的 API Gateway 或其他 AWS 原生身分驗證系統的應用程式,請使用此選項。IAM 角色必須具有信任關係,允許 AWS Security Agent 擔任該角色,以及存取應用程式身分驗證系統的許可。
從連接的 AWS Secrets Manager 選取靜態登入資料
使用此選項可透過加密、輪換和存取稽核,從 AWS Secrets Manager 安全地擷取憑證。
IAM 角色必須具有 secretsmanager:GetSecretValue和 secretsmanager:DescribeSecret許可。
代理程式會直接從 Secrets Manager 擷取秘密值。使用客服人員空間登入提示,告知客服人員如何將這些登入資料套用至應用程式的登入流程 - 例如,要導覽至哪個 URL 以及要填寫的表單欄位。您可以使用任何格式來存放秘密,因為代理程式會使用您在登入提示中提供的指示來解譯格式。
例如,如果客服人員要在 https://https://example.com/login 提交使用者名稱/密碼登入表單,您可以使用 username和 password 欄位將您的秘密格式化為 JSON。如果應用程式需要以 TOTP 為基礎的 2FA,請直接包含具有 TOTP 秘密或完整 otpauth://totp/ URI totpSecret的欄位:
{ "username": "test-user", "password": "secure-password-here", "totpSecret": "JBSWY3DPEHPK3PXP" }
然後,設定身分驗證指示:。將存取 URL 設定為 https://example.com(或從目標端點清單中選擇的任何其他 URL)。在客服人員空間登入提示中輸入以下內容:「導覽至 https://example.com/login://。」
另一個範例是,如果您改為在 HTTP 標頭中提供 API 金鑰,您可以將它儲存為純文字:
"api-key-here"
然後,設定身分驗證指示:。在客服人員空間登入提示中輸入以下內容:「將所有請求的 X-API-Key 標頭設定為提供的 API 金鑰。」
重要
僅支援以 TOTP 為基礎的 2FA。不支援 SMS、電子郵件、推送通知、硬體金鑰和 OAuth 身分驗證。
選取可用的 Lambda 函數以動態擷取登入資料
針對複雜的身分驗證系統、動態憑證產生或與外部身分提供者整合,請使用此選項。
IAM 角色必須具有lambda:InvokeFunction許可,且函數必須在 30 秒內完成。
當滲透測試執行時,AWS Security Agent 會同步叫用您的 AWS Lambda 函數,並傳遞識別滲透測試和要解決之特定憑證的事件:
{ "pentest_arn": "arn:aws:securityagent:us-west-2:111122223333:pentest/pt-abcd1234-5678-90ab-cdef-EXAMPLE11111", "actor_identifier": "Credential1" }
-
pentest_arn– 要解析憑證之滲透測試的 Amazon Resource Name (ARN)。使用它來限定、授權或稽核函數中的請求。 -
actor_identifier– 您在主控台中指派給此登入資料的登入資料名稱 (例如,Credential1)。當單一函數提供多個登入資料時,請使用它來傳回正確的登入資料。
代理程式會直接使用函數的輸出做為登入資料。使用客服人員空間登入提示,告訴客服人員如何將這些登入資料套用至您的應用程式,就像您使用 AWS Secrets Manager 一樣。如需如何格式化 Lambda 函數輸出和支援身分驗證類型從連接的 AWS Secrets Manager 選取靜態登入資料的範例,請參閱 。
設定多個登入資料
若要測試不同的使用者角色或身分驗證系統:
-
選擇新增另一個登入資料。
-
使用任一輸入方法設定其他登入資料。
-
若要移除登入資料,請在登入資料區段中選擇移除。
登入最佳化
登入最佳化可讓 AWS Security Agent 從先前的五項測試執行中學習導覽模式,並將其套用至後續執行。這些模式包括登入流程和多步驟身分驗證工作流程。這可減少代理程式重新探索驗證方式所花費的時間,進而加快掃描速度並提高測試涵蓋範圍的一致性。
登入最佳化的運作方式
在第一次執行 pentest 時,代理程式會探索如何使用您提供的登入資料來導覽應用程式的登入流程。它會記錄成功的導覽步驟,並產生擷取所學登入工作流程的技能檔案。
後續執行時,代理程式會讀取儲存的技能檔案,並直接套用學習到的導覽模式,略過探索階段。這表示:
-
更快完成驗證測試 — 代理程式會立即套用經過驗證的導覽模式,而不是從頭開始探索
-
更一致的行為 — 代理程式遵循相同的經驗證路徑,而不是探索替代方案
注意
登入最佳化會在執行中的第一個登入工作階段期間學習。相同執行中的後續登入工作階段將受益於第一個工作階段中學到的內容。未來執行時,所有登入工作階段都會受益於儲存的技能。
啟用或停用登入最佳化
登入最佳化預設為啟用。若要停用或重新啟用:
-
在 pentest 組態中,導覽至身分驗證憑證 - 選用區段。
-
找到登入最佳化切換。
-
若要啟用登入最佳化,請開啟切換。若要停用,請將其關閉。
停用時,代理程式會在每次執行時從頭開始重新探索登入流程。先前學習的導覽技能會保留,如果重新啟用此功能,將會再次套用。
提示
如果您應用程式的登入流程發生重大變更 (例如重新設計的登入頁面或新的身分驗證步驟),代理程式會在下次執行時更新其學到的技能來自動調整。您不需要手動重設最佳化。