View a markdown version of this page

快速入门:运行渗透测试 - AWS 安全代理

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

快速入门:运行渗透测试

本快速入门将引导您使用 AWS 安全代理进行首次渗透测试(pentest)。渗透测试会根据经过验证的目标域对已部署的应用程序进行练习,并返回安全调查结果,每个发现均附有严重性评级和支持证据。它涵盖了可公开访问的应用程序;要测试托管在私有 VPC 中的应用程序,请参阅启用渗透测试

注意

您需要访问 AWS 管理控制台来设置 AWS 安全代理和定义测试范围,还需要访问 Web 应用程序才能创建和运行渗透测试。

先决条件

开始之前,请确保您已具备以下条件:

  • 访问 AWS 管理控制台,并有权设置 AWS 安全代理。

  • 托管您要测试的应用程序的实时目标域。

  • 可以在同一 AWS 账户中为该域或一个 Route 53 托管区域添加 DNS 记录,这样您就可以验证所有权。

  • (可选)应用程序的源代码存储库(GitHub GitLab、或 Bitbucket),用于为代理提供更多背景信息。

步骤 1:在 AWS 控制台中设置 AWS 安全代理

如果您尚未设置 AWS 安全代理,请完成初始设置:

  1. 在 AWS 管理控制台中导航到 AWS 安全代理

  2. 选择设置 AWS 安全代理

  3. 创建代理空间。代理空间可供多个用户使用,并且应针对您要测试的每个应用程序而定。输入名称和描述。名称应标识要进行渗透测试的应用程序。

  4. 在 “用户IAM-only 访问配置” 下选择访问权限

    • 本快速入门不包括使用 IAM Identity Center 启用单点登录 (SSO),它允许用户直接从 AWS 控制台访问 Web 应用程序。

    • 要让没有 AWS 管理控制台访问权限的用户开始渗透测试,请启用 IAM 身份中心集成。有关更多信息,请参阅 授予用户访问 AWS 安全代理 Web 应用程序的权限

  5. 选择设置 AWS 安全代理

注意

当您选择 “设置” 时,AWS Security Agent 会创建您的代理空间并建立一个 Web 应用程序,用户可以在其中运行渗透测试、代码审查、威胁模型和设计审查。

第 2 步:启用渗透测试并验证您的域名

注意

在 AWS 控制台中,您可以定义可以测试的范围。然后,用户通过 Web 应用程序在该范围内运行特定的渗透测试。

  1. 在左侧边栏中,选择座席空间,然后选择您在步骤 1 中创建的座席空间。

  2. 选择 “渗透测试” 选项卡,然后选择 “设置渗透测试” 以打开向导。

  3. 配置域-输入要测试的目标域并选择验证方法,即 DNS TXT 记录HTTP 路由。该域必须处于活动状态,并且托管您要测试的应用程序。选择下一步

  4. 验证域-验证目标域表中每个域的所有权。AWS 安全代理仅针对经过验证的域运行测试。有关详细步骤和要复制的确切值,请参阅启用应用程序域进行渗透测试

    • 同一 AWS 账户中的 Route 53 个域-选择域名并选择One-click 验证。AWS 安全代理为您创建 DNS 记录并完成验证。

    • DNS TXT 记录(其他 DNS 提供商)-在 “目标域名” 表中,复制记录名称和记录值,将其作为 TXT 记录添加到您的 DNS 提供商,然后选择该域并选择验证。DNS 更改可能需要一段时间才能传播,因此验证可能无法立即完成。

    • HTTP 路由-在您的 Web 服务器.well-known/aws/securityagent-domain-verification.json上创建文件,添加格式为的验证令牌{"tokens": ["<token>"]},然后选择域并选择 “验证”。

  5. (可选)配置其他功能-添加可选资源,例如 CloudWatch 日志组和凭据。服务访问权限部分已预先配置:除非您选择现有 IAM 角色,否则 AWS 安全代理会创建具有所需权限的服务角色。

第 3 步:Connect 源代码(可选)

连接源代码提供商可为 AWS 安全代理提供有关您的应用程序的背景信息,并提高渗透测试覆盖范围。此为可选步骤。

  1. 在 “渗透测试” 选项卡上,在页面顶部的 “Connect 用于渗透测试的源代码提供者” 横幅上选择 “添加”。

  2. 注册并连接您的提供商,然后选择可供渗透测试使用的存储库。

有关完整的集成流程,请参阅 Connect AWS Security Agent 连接到 GitHub 存储库或您的提供商的连接主题。

第 4 步:创建并运行渗透测试

注意

您可以在 AWS 安全代理 Web 应用程序中创建和运行渗透测试。我们建议在与生产环境非常接近的测试环境下运行测试。

  1. 启动 Web 应用程序:选择 Web 应用程序选项卡,然后选择管理员访问权限

  2. 在左侧边栏中,选择渗透测试,然后选择创建渗透测试

  3. 渗透测试详情-设置测试范围和日志来源:

    1. 输入 Pentest 的名字

    2. 在 “目标 URL” 下,选择或输入要测试的经过验证的域名(例如https://example.com)。只有经过验证的域名才能进行测试,子域名会被自动覆盖。

    3. (可选)在 “可访问的 URL” 下,添加代理必须访问才能登录和导航但不应攻击的域名,例如目标网域之外的身份提供商、CDN 或 API。AWS Security Agent 可以访问这些域,但不能对其进行测试;只有您的目标域会受到攻击。

    4. 查看网络配置规则,以确认哪些端点可以在测试期间接收流量,哪些不能接收流量。

    5. 在 “权限” 下,选择服务角色CloudWatch 日志组(可选)。选择下一步

  4. (可选)VPC 资源-如果您的目标位于无法公开访问的私有网络上,请配置 VPC。请参阅启用渗透测试

  5. (可选)身份验证资源-提供凭据,以便代理可以访问经过身份验证的非公开路径。我们建议添加这些漏洞,以扩大覆盖范围,揭露登录背后的漏洞。

  6. (可选)其他配置-添加文件、 GitHub 存储库或 S3 源等应用程序上下文以提高查找质量。您还可以在此处启用自动代码修复并设置其他运行选项。

  7. 选择 “创建并执行” 以立即开始测试,或者选择 “创建 pentest” 将其保存并稍后运行。

第 5 步:查看渗透测试结果

  1. 渗透测试可能需要几个小时才能完成。大多数在 16 小时内完成,具体取决于您的应用程序的大小和复杂性。

  2. 运行从 Prefli ght 阶段开始,该阶段在测试开始之前验证设置:它设置日志基础架构,检查目标端点是否可访问,并准备测试环境。如果印前检查失败(例如,无法解析的目标域),则运行将在测试开始之前停止。打开 “印前检查” 选项卡,查看哪个检查失败了,解决这个问题,然后开始新的运行。

  3. 运行完成后,将其打开并查看 “运行概述”、“日志” 和 “查找结果” 选项卡。

  4. 在 “调查结果” 选项卡上,选择一项发现以查看其描述、严重程度、风险类型和支持证据。

有关更多详细信息,请参阅 创建渗透测试查看渗透测试的结果