本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
启用渗透测试
将 AWS 安全代理配置为对您的应用程序运行自主渗透测试。此设置使 AWS 安全代理能够访问您的 AWS 资源、验证域名所有权并执行全面的安全测试,以识别您的 Web 应用程序和 API 中可利用的漏洞。
启用渗透测试允许 AWS Security Agent 持续验证您的应用程序安全,而不会出现手动测试的延迟。通过配置必要的 AWS 集成,您可以确保 AWS Security Agent 可以测试公有和私有应用程序 CloudWatch、将发现记录到并访问证书以进行经过身份验证的测试。
在此过程中,您将配置目标域,可以选择设置 VPC、 CloudWatch 日志、证书存储和 Lambda 函数以进行测试,配置 S3 集成以提供更多上下文,并通过 IAM 角色设置服务访问权限。
先决条件
在开始之前,请确保您满足以下条件:
-
具有创建 IAM 角色的管理权限的 AWS 账户
-
域名所有权验证功能(修改 DNS 或 HTTP 记录)
-
将要测试的目标域或应用程序作为目标
-
(可选)测试私有应用程序时的 VPC 配置详情
-
(可选)如果向 AWS 安全代理提供了其他项目,则为 S3 存储桶
步骤 1:配置域名
在向导的第一步中,指定要测试的目标域以及 AWS Security Agent 应如何验证所有权。
-
在目标域名部分,在域名字段中输入您的域名。
-
选择验证方法:
-
DNS_TXT — 通过在域名的 DNS 配置中添加 TXT 记录来证明域名所有权。
-
HTTP_ROU TE — 通过在域名的特定网址上托管验证文件来证明域名所有权。
-
PRIV@@ ATE_VPC-仅适用于私有 VPC 渗透测试。验证域是否解析为私有 CIDR 范围内的 IP
-
有关更多信息,请参阅 启用应用程序域进行渗透测试。
-
-
选择添加其他域名以添加其他域名(总共最多 5 个)。
-
选择 “下一步” 继续进行域名验证。
第 2 步:验证域名
在向导的第二步中,验证您配置的每个域的所有权。AWS 安全代理需要经过验证的所有权才能执行渗透测试。
-
查看目标域表中列出的域。
-
对于每个域名,选择它并根据您选择的方法触发验证:
-
Route 53 域名(相同的 AWS 账户):选择One-click 验证。AWS 安全代理会自动创建 DNS 记录并完成验证。
-
DNS TXT(其他 DNS 提供商):复制验证令牌,在您的 DNS 注册商处添加 TXT 记录,然后选择域名并选择验证。
-
HTTP 路由:将验证令牌放在 Web 服务器上所需的路由路径上,然后选择域并选择 “验证”。有关更多信息,请参阅 启用应用程序域进行渗透测试。
-
-
选择 “下一步” 继续进行可选配置。
注意
Sub-domains 使用 DNS TXT 或 HTTP 路由验证时,经过验证的域名不需要单独验证。对于私有 VPC 验证,目标终端节点域名必须与为验证配置的完整域名匹配。
注意
对于 VPC 内的私有域,即使域验证状态为 “无法访问”,您也可以继续。每次 pentest 运行开始时,AWS 安全代理都会尝试对私有终端节点进行域名验证。
步骤 3:(可选)配置其他功能
向导的第三步允许您配置可选的 AWS 资源以扩大渗透测试范围。此步骤中的所有部分都是可选的,默认情况下是折叠的。
(可选)配置 VPC 设置
如果您计划测试托管在 VPC 中的私有目标域,请为 AWS 安全代理配置 VPC 设置。此部分是可选的,默认情况下处于折叠状态。
-
展开 VPC 部分。
-
在 VPC 下拉列表中,选择托管您的私有目标域的 VPC。
-
在子网下拉列表中,选择 AWS 安全代理应使用的 VPC 子网:
提示
要获得高可用性,请从多个可用区域中选择多个子网。确保您的子网包含用于出站连接的 NAT 网关。
-
在安全组下拉列表中,选择 AWS 安全代理应使用的 VPC 安全组:
重要
确保您的安全组允许 AWS 安全代理执行渗透测试的出站连接。
(可选)配置 CloudWatch 日志
配置 CloudWatch 为存储渗透测试运行的日志。此部分是可选的,默认情况下处于折叠状态。
-
展开 “CloudWatch 日志” 部分。
-
在 “日志组” 下拉列表中,选择现有的 CloudWatch 日志组
-
如果未选择任何日志组,AWS 安全代理将创建一个名为
/aws/securityagent/<agent name>/<pentest id>且具有相应权限的日志组。
注意
确保您的 IAM 角色有权写入所选 CloudWatch 日志组。
(可选)为测试凭证配置密钥
如果您的应用程序需要身份验证凭证进行测试,AWS 安全代理可以安全地从 AWS Secrets Manager 中检索这些证书。此部分是可选的,默认情况下处于折叠状态。
-
展开 “机密” 部分。
-
选择包含您的应用程序证书的 AWS Secrets Manager 密钥。
-
在 Web 应用程序中配置渗透测试时,可以引用这些密钥进行经过身份验证的测试。
重要
证书经过加密并存储在 AWS Secrets Manager 中。确保您的 IAM 角色有权访问 Secrets Manager for AWS 安全代理,以便在测试期间使用这些证书。
(可选)为测试凭证配置 Lambda 函数
配置可在测试期间为您的应用程序提供凭证的 Lambda 函数。此部分是可选的,默认情况下处于折叠状态。
-
展开 L ambda 函数部分。
-
选择可以为您的应用程序提供身份验证凭证的 Lambda 函数。
-
AWS 安全代理将在渗透测试期间调用这些函数以动态获取证书。
注意
确保您的 IAM 角色有权调用指定的 Lambda 函数。Lambda 函数应以预期格式返回证书,以便 AWS 安全代理在测试期间使用。
(可选)配置 S3 存储桶
如果您计划上传文档或项目以作为输入提供给 AWS 安全代理,请提供 S3 存储桶详细信息。此部分是可选的,默认情况下处于折叠状态。
-
展开 S 3 存储桶部分。
-
在存储桶字段中,输入或搜索您的 S3 存储桶名称。
注意
您也可以稍后连接 GitHub 存储库或直接在 Web 应用程序中上传文件。所提供的信息可以确保全面覆盖,减少误报,并提供可行的结果。
(可选)配置服务访问权限
AWS 安全代理需要一个 IAM 角色才能访问您的 AWS 资源(VPC、 CloudWatch 日志组、Secrets Manager、Lambda 函数等)以进行渗透测试。此部分是可选的,默认情况下处于折叠状态。
-
展开 “服务访问权限” 部分。
-
默认情况下,AWS 安全代理使用具有渗透测试所需权限的默认 IAM 角色。
-
要自定义 IAM 角色,请选择以下选项之一:
-
创建默认角色 — AWS 安全代理会自动创建具有必要权限的新 IAM 角色
-
使用现有服务角色-从下拉菜单中选择现有 IAM 角色
-
-
如果使用现有角色:
-
选择 “选择现有角色” 下的下拉菜单
-
从列表中选择您的 IAM 角色
-
如果需要,选择刷新图标以更新列表
-
注意
默认 IAM 角色包括访问渗透测试所需的 VPC 资源、 CloudWatch 日志组、Secrets Manager、Lambda 函数和其他服务的权限。除非您有特定的安全要求,否则建议使用默认 IAM 角色。
第 4 步:保存并启用渗透测试
配置完所有必需的设置后,为您的 AWS 安全代理启用渗透测试。
-
查看所有配置部分以确保准确性。
-
选择保存。
-
AWS 安全代理会验证您的配置并创建必要的 AWS 资源。
后续步骤
启用渗透测试后:
-
在 AWS 安全代理 Web 应用程序中配置渗透测试范围
-
为测试结果设置通知首选项
-
在发现渗透测试结果时对其进行审查并做出回应
-
(可选)配置其他存储库以进行发现补救
有关运行和管理渗透测试的更多信息,请参阅 AWS 安全代理 Web 应用程序文档。