

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

# AWS 安全代理和 AI 辅助渗透测试的安全注意事项
<a name="security-guidance"></a>

AWS Security Agent 是一款前沿代理，可在整个开发生命周期中主动保护您的所有环境中的应用程序。它根据您的要求进行定制的自动安全审查，安全团队集中定义标准，这些标准将在审查期间自动验证。Security Agent 执行根据您的应用程序定制的按需渗透测试，发现并报告经过验证的安全风险。这种方法可以扩展应用程序中的安全专业知识，以匹配开发速度，同时提供全面的安全保障。通过整合从设计到部署的安全性，它有助于尽早大规模预防漏洞。

安全团队只需在 AWS 控制台中即可定义组织安全要求：经批准的授权库、日志标准和数据访问策略。AWS Security Agent 会在整个开发过程中自动执行这些安全要求，根据您的标准评估架构文档和代码，并在发现违规行为时提供具体指导。这样可以跨团队实现一致的安全执行，并根据开发速度调整审查规模。

为了进行部署验证，AWS Security Agent 将渗透测试从周期性的瓶颈转变为按需功能。安全团队提供目标 URL、身份验证详情、源代码和文档。AWS Security Agent 可以深入了解应用程序，并执行复杂的攻击链来发现和验证漏洞，使团队能够在需要时进行测试。

## 关键功能
<a name="_key_capabilities"></a>

AWS 安全代理提供涵盖整个开发生命周期的全面安全功能。

## 设计安全审查
<a name="_design_security_review"></a>

AWS Security Agent 按需提供有关设计文档的安全反馈，并在编写代码之前评估是否符合组织安全要求。安全团队通过 Web 应用程序上传设计文档，在该应用程序中，代理会根据您的安全要求对其进行分析，并根据补救指南显示发现的结果。这可以将长达数小时的人工审查加速为有针对性的分析，使团队能够在补救最有效的时候解决安全问题。

## 代码安全审查
<a name="_code_security_review"></a>

AWS Security Agent 会分析拉取请求或上传的代码，以了解组织安全要求和常见安全问题，例如缺少输入验证和 SQL 注入风险。代理直接在您的代码存储库平台中提供补救指导。安全团队配置要监控哪些存储库，在所有代码库中扩展评估范围，同时保持对关键问题的监督。

## On-demand 渗透测试
<a name="_on_demand_penetration_testing"></a>

AWS Security Agent 提供按需渗透测试，通过量身定制的多步攻击场景发现并报告经过验证的安全漏洞。AWS Security Agent 部署专门的 AI 代理，这些代理根据提供的文档和证书开发应用程序环境，然后执行复杂的攻击链来识别传统工具遗漏的复杂漏洞。它通过影响分析、可重现的攻击路径和随时可实施的代码修复来记录调查结果，将渗透测试从数周缩短到几个小时，并将验证扩展到整个应用程序组合。

## 常见问题解答
<a name="_faqs"></a>

### 安全&amp;控制
<a name="_security_control"></a>

#### AWS 安全代理如何进行身份验证并维护对系统的访问权限？
<a name="_how_does_aws_security_agent_authenticate_and_maintain_access_to_systems"></a>

渗透测试是 AWS 安全代理中唯一可以在运行时向用户系统进行身份验证的功能。在开始笔试之前，AWS 安全代理接受静态用户名和密码证书（存储在 Secrets Manager 中）或证书供应商（作为 Lambda 函数）形式的证书作为配置。这些凭证用于在笔试的整个生命周期中行使用户的 system/application 正常功能。我们鼓励用户创建具有适当范围权限的新证书，以便进行渗透测试。

#### 用户能否控制测试的范围和深度以防止意外对系统造成影响？
<a name="_can_users_control_the_scope_and_depth_of_testing_to_prevent_unintended_system_impacts"></a>

AWS 安全代理允许客户选择要在终端节点中探索的特定漏洞类别。用户可以指定超出范围的 URL，以防止 AWS 安全代理对这些目标执行渗透测试。 https://docs.aws.amazon.com/securityagent/latest/userguide/perform-penetration-test.html

#### AWS 安全代理本身会构成安全风险吗？
<a name="_can_aws_security_agent_itself_pose_a_security_risk"></a>

AWS Security Agent 被指示发现安全风险，但要故意使用影响最小的有效负载（例如提取 SQL 版本而不是在发现 SQL 注入攻击时删除表）来发现安全风险。AWS Security Agent 还仅限于确定性护栏，以防止风险行为，例如对目标应用程序造成过大负载。虽然有防护措施，但仍可能存在无意或非明显的业务逻辑交互，因此，我们始终建议在预生产环境中进行渗透测试。

#### AWS 安全代理收集哪些数据，这些数据存储在哪里？
<a name="_what_data_does_aws_security_agent_collect_and_where_is_it_stored"></a>

AWS Security Agent 允许用户上传项目，以提供有关其正在测试的应用程序的背景信息。有关数据保护的更多信息，请参阅[AWS 安全代理中的数据保护](data-protection.md)。AWS Security Agent 将自动选择您所在地理区域内的最佳区域来处理您的推理请求。这样可以最大限度地提高可用计算资源和模型可用性，并提供最佳的客户体验。您的数据将仅存储在请求发起的区域，但是，输入提示和输出结果可能会在该区域之外进行处理。所有数据都将通过 Amazon 的安全网络进行加密传输。有关更多信息，请参阅[跨区域推理](https://docs.aws.amazon.com/securityagent/latest/userguide/security-best-practices.html#_cross_region_inference)。

#### 有哪些控制措施可以阻止针对端点的未经授权的测试？
<a name="_what_controls_are_present_to_block_unauthorized_testing_against_an_endpoint"></a>

指定为渗透测试的目标 URL 的端点将需要 DNS 验证或 HTTP 验证作为所有权的衡量标准。AWS 安全代理将要求客户向终端节点的 DNS 中添加 TXT 记录或公开返回验证字符串的 HTTP 路由作为所有权证明。只有在出示所有权证明后，用户才能继续进行笔试。网络将阻止向目标以外的 URL 和可访问的 URL 发出的请求。

客户有责任确保他们获得适当的授权，可以测试所有可能受其渗透测试活动影响的系统。AWS 安全代理的所有使用都必须遵守 AWS 可接受使用政策 (https://aws.amazon.com/aup/)。

#### 用户如何使用 AWS 安全代理阻止和举报任何滥用行为？
<a name="_how_do_users_block_and_report_any_abuse_using_aws_security_agent"></a>

AWS 安全代理会持续监控访问目标网址之外的 URL 的请求和尝试次数。如果发现滥用行为，例如试图使用 AWS Security Agent 对第三方终端节点进行未经授权的测试，则该账户中正在进行的渗透测试都将被终止。客户可以联系 AWS Support 或他们的 AWS 账户团队寻求帮助。

#### AWS 安全代理能否取代笔试工作流程？
<a name="_can_aws_security_agent_replace_pen_testing_workflow"></a>

AWS 安全代理不是专业的渗透测试服务，我们鼓励用户将 AWS 安全代理集成到他们的安全审查工作流程中。AWS Security Agent 可以在软件生命周期的开发阶段提供按需渗透测试的可访问性，因为与渗透测试专业人员合作可能为时过早、不切实际或需要过于频繁地重新评估。安全专业人员可以查看 AWS Security Agent 的发现，对其进行验证、解释或扩展以获取新的发现（如果存在）。

#### 用户能否为不同的团队成员设置基于角色的访问控制 (RBAC)？
<a name="_can_users_set_up_role_based_access_control_rbac_for_different_team_members"></a>

可以。AWS Security Agent 与 AWS IAM 身份中心集成，允许管理员管理可以访问 AWS 安全代理 Web 应用程序的团队成员，该应用程序允许用户创建、管理和查看设计审查和笔试。

### 测试能力
<a name="_testing_capabilities"></a>

#### AWS 安全代理可以检测哪些类型的漏洞？
<a name="_what_types_of_vulnerabilities_can_aws_security_agent_detect"></a>

AWS 安全代理可检测 OWASP 十大网络应用程序中的漏洞。AWS Security Agent 提供了特定的风险类型，您可以在下面概述的测试中包括或排除这些风险。发现可能出现在这些风险类别中，也可能来自通过跟踪这些风险类别组合的线索而发现的新发现。
+  [任意文件上传](https://cheatsheetseries.owasp.org/cheatsheets/File_Upload_Cheat_Sheet.html) 
  + Artenty File Upload 确认应用程序应该能够抵御虚假和恶意文件，从而保护应用程序和用户的安全
+  [代码注入](https://owasp.org/www-community/attacks/Code_Injection) 
  + 代码注入是攻击类型的总称，攻击类型包括注入代码，然后 interpreted/executed 由应用程序注入代码
+  [命令注入](https://owasp.org/www-community/attacks/Command_Injection) 
  + 命令注入是一种攻击，其目标是通过易受攻击的应用程序在主机操作系统上执行任意命令
+  [Cross-Site 脚本编写](https://owasp.org/www-community/attacks/xss/) (XSS)
  + Cross-Site 脚本 (XSS) 攻击是一种注入，在这种注入中，恶意脚本会被注入原本良性且值得信赖的网站
+  [不安全的直接对象引用](https://owasp.org/www-project-web-security-testing-guide/latest/4-Web_Application_Security_Testing/05-Authorization_Testing/04-Testing_for_Insecure_Direct_Object_References) 
  + 当应用程序根据用户提供的输入提供对对象的直接访问时，就会出现不安全的直接对象引用 (IDOR)
+  [JSON 网络令牌漏洞](https://owasp.org/www-project-web-security-testing-guide/latest/4-Web_Application_Security_Testing/06-Session_Management_Testing/10-Testing_JSON_Web_Tokens) 
  + JWT 是常见的漏洞来源，无论是在应用程序中的实现方式还是在底层库中
+  [本地文件包含](https://owasp.org/www-project-web-security-testing-guide/v42/4-Web_Application_Security_Testing/07-Input_Validation_Testing/11.1-Testing_for_Local_File_Inclusion) 
  + 文件包含漏洞允许攻击者添加文件，通常利用目标应用程序中实现的 “动态文件包含” 机制
+  [路径遍历](https://owasp.org/www-community/attacks/Path_Traversal) 
  + 路径遍历攻击（也称为目录遍历）旨在访问存储在 Web 根文件夹之外的文件和目录
+  [权限升级](https://owasp.org/www-project-web-security-testing-guide/latest/4-Web_Application_Security_Testing/05-Authorization_Testing/03-Testing_for_Privilege_Escalation) 
  + 当用户访问的资源或功能超出正常允许的范围时，就会发生权限升级，而应用程序本应阻止此类提升或更改
+  [Server-Side 请求伪造](https://owasp.org/www-community/attacks/Server_Side_Request_Forgery) (SSRF)
  + Server-Side 当攻击者可以滥用服务器上的功能来读取或更新内部资源时，就会发生请求伪造 (SSRF)
+  [Server-Side 模板注入](https://owasp.org/www-project-web-security-testing-guide/v41/4-Web_Application_Security_Testing/07-Input_Validation_Testing/18-Testing_for_Server_Side_Template_Injection) 
  + 当用户输入以不安全的方式嵌入到模板中并导致在服务器上远程执行代码时，就会出现服务器端模板注入漏洞 (SSI)
+  [SQL 注入](https://owasp.org/www-community/attacks/SQL_Injection) 
  + SQL 注入攻击包括通过从客户端到应用程序的输入数据插入或 “注入” SQL 查询
+  [XML 外部实体](https://owasp.org/www-community/vulnerabilities/XML_External_Entity_(XXE)_Processing) 
  + XML 外部实体攻击是一种针对解析 XML 输入的应用程序的攻击。当包含对外部实体引用的 XML 输入由配置较弱的 XML 解析器处理时，就会发生此攻击

#### AWS 安全代理支持哪些身份验证方法？
<a name="_what_authentication_methods_does_aws_security_agent_support"></a>

AWS 安全代理支持常见的身份验证方法，包括 OAuth 和 JWT。有关详情，请参阅 [ 文档](https://docs.aws.amazon.com/securityagent/latest/userguide/provide-testing-credentials.html)。

#### AWS 安全代理如何处理速率限制和拒绝服务 (DOS) 防护？
<a name="_how_does_aws_security_agent_handle_rate_limiting_and_denial_of_service_dos_prevention"></a>

AWS Security Agent 有防护栏，可防止其中断或关闭正在测试的终端节点，包括 DOS。它具有内部速度控制功能，可以检测和处理意想不到的交通模式。

#### AWS 安全代理能否同时测试 REST 和 GraphQL API？
<a name="_can_aws_security_agent_test_both_rest_and_graphql_apis"></a>

是的，AWS 安全代理可以测试 API 终端节点。我们鼓励客户提供 API 文档作为**额外学习资源**，让 AWS Security Agent 能够更好地了解每个 API 的形状和功能。

#### 用户如何验证 AWS 安全代理是否已覆盖所有关键应用程序逻辑和终端节点？
<a name="_how_can_users_verify_that_aws_security_agent_has_covered_all_critical_application_logic_and_endpoints"></a>

AWS Security Agent 将对目标应用程序进行广度优先的探索，并在尝试任何漏洞利用之前尝试正常使用它。这使它能够在运行时建立对应用程序的工作理解，并发现关键的应用程序逻辑和端点。鉴于其随机性，AWS Security Agent 不能保证能够发现和测试任何目标应用程序的所有关键应用程序和终端节点。AWS Security Agent Web 应用程序可以查看所有发现的终端节点以及在渗透测试日志中采取的操作。

### 精度&amp;可靠性
<a name="_accuracy_reliability"></a>

#### AWS 安全代理如何在报告之前验证调查结果？
<a name="_how_does_aws_security_agent_validate_findings_before_reporting"></a>

AWS 安全代理使用确定性验证器来帮助验证报告的发现。在无法使用确定性验证器的风险类型中，AWS Security Agent 将独立重播发现步骤，以获得对发现有效性的信心。默认情况下，AWS Security Agent 仅报告高或中等可信度调查结果，并隐藏未经验证的发现。

#### AWS 安全代理能否适应自定义应用程序逻辑？
<a name="_can_aws_security_agent_adapt_to_custom_application_logic"></a>

AWS Security Agent 可以选择接受源代码、威胁模型、设计文档和 API 文档作为**其他学习资源**，以获取用户指导的关于渗透测试生命周期中使用的目标应用程序的背景信息。

#### 用户能否在执行之前查看 AWS 安全代理测试方法？
<a name="_can_users_review_aws_security_agent_testing_methodology_before_execution"></a>

目前无法预览 AWS 安全代理的操作流程。AWS Security Agent 计划本质上是动态的，它基于对目标应用程序的探索。客户可以通过观察渗透测试日志，实时监控 AWS Security Agent 的探索过程。如果日志显示无效或不受欢迎的轨迹，客户可以停止正在进行的 pentest 运行。

### 集成&amp;部署
<a name="_integration_deployment"></a>

#### AWS 安全代理是否与安全工具（SIEM、漏洞管理）或 CI/CD 管道集成？
<a name="_does_aws_security_agent_integrate_with_security_tools_siem_vulnerability_management_or_cicd_pipelines"></a>

AWS 安全代理不与任何现有的安全工具或 CI/CD 管道集成。

#### AWS 安全代理如何处理特定于环境的配置？
<a name="_how_does_aws_security_agent_handle_environment_specific_configurations"></a>

AWS Security Agent 可以配置为使用特定的 IAM 角色、在 VPC 内运行，使用客户指定的应用程序相关证书，并使用 Github 源存储库作为目标应用程序的源代码引用。

#### AWS 安全代理能否在气隙或隔离的环境中运行？
<a name="_can_aws_security_agent_run_in_air_gapped_or_isolated_environments"></a>

 [可以将 AWS 安全代理配置为连接到 VPC](connect-agent-vpc.md)，包括无法访问出站互联网的 VPC。

#### 多个团队成员可以同时运行测试吗？
<a name="_can_multiple_team_members_run_tests_simultaneously"></a>

AWS Security Agent 支持每个账户同时运行 5 次 pentest，与谁开始测试无关。客户最多可以创建 100 个代理空间和 1,000 个 Pentest 项目。

### 运营影响
<a name="_operational_impact"></a>

#### 对测试系统的性能有什么影响？
<a name="_whats_the_performance_impact_on_tested_systems"></a>

AWS Security Agent 有防护栏，可防止其中断或关闭正在测试的终端节点。这包括对 AWS 安全代理可以向终端节点发出的调用次数进行速度控制。由于笔试活动，系统或被测端点的流量应该会有所增加，并且可能会触发监控警报。我们建议只在预生产环境中运行 AWS 安全代理或任何笔试活动。

#### 用户能否安排或限制 AWS 安全代理？
<a name="_can_users_schedule_or_throttle_aws_security_agent"></a>

AWS Security Agent 没有公共 API，也无法安排笔试运行。在开始笔试运行时，AWS Security Agent 也不对向目标终端节点发出的请求提供并发控制。如果 AWS Security Agent 导致目标终端节点出现问题，客户可以停止正在进行的渗透测试。

#### 完整的安全评估通常需要多长时间？
<a name="_whats_the_typical_duration_for_a_complete_security_assessment"></a>

每个 pentest 的运行时间取决于目标应用程序的广度以及配置为要评估的风险类型。大多数渗透测试会在 16 小时内完成。