

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

# 快速入门：运行渗透测试
<a name="quickstart"></a>

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

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

## 先决条件
<a name="_prerequisites"></a>

开始之前，请确保您已具备以下条件：
+ 访问 AWS 管理控制台，并有权设置 AWS 安全代理。
+ 托管您要测试的应用程序的实时目标域。
+ 可以在同一 AWS 账户中为该域或一个 Route 53 托管区域添加 DNS 记录，这样您就可以验证所有权。
+ （可选）应用程序的源代码存储库（GitHub GitLab、或 Bitbucket），用于为代理提供更多背景信息。

## 步骤 1：在 AWS 控制台中设置 AWS 安全代理
<a name="_step_1_set_up_aws_security_agent_in_the_aws_console"></a>

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

1. [在 AWS 管理控制台中导航到 AWS 安全代理](https://console.aws.amazon.com/securityagent/)。

1. 选择**设置 AWS 安全代理**。

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

1. 在 “*用户**IAM-only 访问**配置” 下选择访问权限*。
   + 本快速入门不包括使用 IAM Identity Center 启用单点登录 (SSO)，它允许用户直接从 AWS 控制台访问 Web 应用程序。
   + 要让没有 AWS 管理控制台访问权限的用户开始渗透测试，请启用 IAM 身份中心集成。有关更多信息，请参阅 [授予用户访问 AWS 安全代理 Web 应用程序的权限](grant-user-access.md)。

1. 选择**设置 AWS 安全代理**。

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

## 第 2 步：启用渗透测试并验证您的域名
<a name="_step_2_enable_penetration_testing_and_verify_your_domain"></a>

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

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

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

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

1.  **验证域**-验证**目标域表中每个域**的所有权。AWS 安全代理仅针对经过验证的域运行测试。有关详细步骤和要复制的确切值，请参阅[启用应用程序域进行渗透测试](enable-test-domain.md)。
   +  **同一 AWS 账户中的 Route 53 个域**-选择域名并选择**One-click 验证**。AWS 安全代理为您创建 DNS 记录并完成验证。
   +  **DNS TXT 记录（其他 DNS 提供商）**-在 “**目标域**名” 表中，复制**记录名称****和记录值**，将其作为 TXT 记录添加到您的 DNS 提供商，然后选择该域并选择**验证**。DNS 更改可能需要一段时间才能传播，因此验证可能无法立即完成。
   +  **HTTP 路由**-在您的 Web 服务器`.well-known/aws/securityagent-domain-verification.json`上创建文件，添加格式为的验证令牌`{"tokens": ["<token>"]}`，然后选择域并选择 “**验证**”。

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

## 第 3 步：Connect 源代码（可选）
<a name="_step_3_connect_source_code_optional"></a>

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

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

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

有关完整的集成流程，请参阅 [Connect AWS Security Agent 连接到 GitHub 存储库](connect-github.md)或您的提供商的连接主题。

## 第 4 步：创建并运行渗透测试
<a name="_step_4_create_and_run_a_penetration_test"></a>

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

1. 启动 Web 应用程序：选择 **Web 应用程序**选项卡，然后选择**管理员访问权限**。

1. 在左侧边栏中，选择**渗透测试**，然后选择**创建渗透测试**。

1.  **渗透测试详情**-设置测试范围和日志来源：

   1. 输入 **Pentest 的名字**。

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

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

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

   1. 在 “**权限**” 下，选择**服务角色**和**CloudWatch 日志组**（可选）。选择**下一步**。

1. （可选）**VPC 资源**-如果您的目标位于无法公开访问的私有网络上，请配置 VPC。请参阅[启用渗透测试](enable-penetration-test.md)。

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

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

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

## 第 5 步：查看渗透测试结果
<a name="_step_5_review_penetration_test_findings"></a>

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

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

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

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

有关更多详细信息，请参阅 [创建渗透测试](perform-penetration-test.md) 和 [查看渗透测试的结果](review-penetration-findings.md)。