View a markdown version of this page

创建威胁模型 - AWS 安全代理

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

创建威胁模型

在 AWS 安全代理 Web 应用程序中创建威胁模型,以分析您的应用程序架构并识别安全威胁。威胁模型产生两个主要输出:描述系统构建方式和行为方式的系统概述,以及一组描述系统如何受到攻击的威胁,每种威胁都有严重性级别、STRIDE 分类和可行的建议。

威胁模型接受两种输入,您可以提供其中一种或两者兼而有之:

  • 范围文档 — 定义威胁模型重点内容的技术设计文档、API 规范或架构文档。如果提供,则代理将其分析范围限定在这些文档中描述的上下文中。您可以上传文件(DOC、DOCX、JPEG、MD、PDF、PNG、TXT)、提供 S3 URI 或通过集成连接 Confluence 页面。

  • 来源-来自连接的存储库(GitHub、 GitHub 企业服务器、 GitLab GitLab Self-Managed、或 Bitbucket)或 S3 位置的源代码。AWS 安全代理读取源代码以了解您的现有系统。当与作用域文档结合使用时,源代码提供了有关当前实现的上下文。

在此过程中,您可以通过配置威胁模型的输入和权限来创建威胁模型,然后开始运行。

先决条件

在开始之前,请确保您满足以下条件:

  • 访问 AWS 安全代理 Web 应用程序

  • 至少以下配置之一:

    • 用作源的已连接存储库(GitHub GitHub 企业服务器、 GitLab GitLab Self-Managed、或 Bitbucket)(请参阅启用威胁建模

    • 包含源代码的 S3 存储桶

    • 设计要作为范围文档或 Confluence 集成上传的文档

提示

如果您已经将存储库或 S3 存储桶连接到 Agent Space(例如,通过代码审查或渗透测试设置),则可以立即创建威胁模型,无需进行其他设置。

AWS 安全代理如何运行威胁模型

您提供的输入决定了 AWS 安全代理如何运行威胁模型。有三种情况。

您提供的输入 AWS 安全代理如何运行威胁模型

仅限源代码(源代码)

AWS Security Agent 会分析源代码以了解您的应用程序结构,对组件进行分类,提取数据流,构建威胁模型,并根据系统的实际实施方式识别威胁。

仅限范围文档(设计文档)

AWS Security Agent 运行的威胁模型侧重于您的文档中描述的设计。它根据范围文档中描述的架构、数据流和组件来识别威胁,这对于在任何代码存在之前对设计进行威胁建模非常有用。

源代码和范围文档

AWS Security Agent 将威胁模型的范围限定为范围文档(例如,新功能的设计文档)中描述的上下文。它使用源代码来了解您的现有系统,然后对范围文档中描述的设计进行威胁建模,无论该设计是否已经实现。

访问威胁模型页面

导航到 Web 应用程序中的威胁建模部分。

  1. 登录 AWS 安全代理 Web 应用程序。

  2. 在左侧边栏中,选择威胁模型

  3. 您会看到现有威胁模型的列表,包括其标题、最新运行状态和按严重程度划分的威胁计数。

创建威胁模型

通过配置其输入和权限来设置新的威胁模型。

  1. 威胁模型页面上,选择创建威胁模型

配置威胁模型详细信息

为您的威胁模型提供标题。

  1. 在标字段中,输入威胁模型的描述性名称。

    提示

    使用标识正在建模的应用程序或服务的名称。例如,“计费服务” 或 “结账API”。

添加范围文档

提供定义威胁模型重点内容的技术设计文档,例如架构文档、API 规范或设计提案。提供范围文档时,代理将其分析范围限定在这些文档中描述的上下文中。如果您提供来源,则范围文档是可选的。

  1. 范围文档部分,使用以下一种或多种方法添加文档:

    • 上传文件 — 直接上传设计文档(DOC、DOCX、JPEG、MD、PDF、PNG 或 TXT)。

    • S3 URI — 输入指向存储在连接的 S3 存储桶中的文档的 S3 URI。

    • Confluence 页面 — 如果您将 Confluence 集成连接到代理空间,请从 Confluence 工作区中选择页面。

提示

为了获得最佳结果,请提供架构图、API 规格和技术文档,以描述您的系统组件、数据流和信任边界。

添加来源

选择 AWS 安全代理用于了解您的现有系统的源代码。当与作用域文档结合使用时,源代码提供了有关当前实现的上下文——代理使用它来了解已经存在的内容。如果您提供范围文档,则来源是可选的。

  1. 代码部分,使用以下一种或多种方法添加源代码:

集成存储库

从连接到代理空间( GitHub 企业服务器GitHub、、或 Bitbucket)的存储库中进行选择。 GitLab GitLab Self-Managed

  1. 选中要作为来源包含的每个存储库旁边的复选框。

  2. 使用搜索字段按名称查找特定的存储库。

注意

此处仅显示与您的代理空间相连的存储库。要添加更多存储库,请要求您的管理员更新代理空间配置。

S3 来源

添加指向存储在连接的 S3 存储桶中的源代码的 S3 URI。

  1. 输入要包含的每个源代码位置的 S3 URI。

配置 AWS 资源

为此威胁模型选择 IAM 服务角色和可选 CloudWatch 日志组。

  1. 服务角色下拉列表中,从您配置的服务角色中选择 IAM 角色。

    注意

    服务角色必须有权访问 S3 中的源代码并写入 CloudWatch 日志。服务角色是在 AWS 管理控制台中设置代理空间期间配置的。

  2. (可选)在日志组下拉列表中, CloudWatch 选择用于存储威胁模型执行日志的日志组。

创建威胁模型

  1. 审核 配置。

  2. 选择创建威胁模型

您将被重定向到威胁模型详细信息页面,您可以在其中开始运行。

运行威胁模型

创建威胁模型后,开始运行以开始分析。

  1. 在威胁模型详细信息页面上,选择开始运行

  2. AWS 安全代理开始分析您的来源和范围文档。

您也可以从威胁模型列表页面开始运行,方法是选择要运行的威胁模型旁边的开始运行。

监控威胁模型的运行情况

跟踪威胁模型的执行进度。

运行状态

运行页标题显示一个状态指示器:

  • 进行中-威胁模型代理正在运行。

  • 正在停止 — 已请求取消;代理在停止之前正在完成其当前任务。

  • 已完成-运行成功完成。

  • 失败-运行遇到错误。将显示一条包含详细信息的错误消息。解决问题后重新开始运行。

  • 已停止 — 用户取消了运行。停止之前产生的所有威胁都将被保留。

运行页面选项卡

在运行详情页面上,在选项卡之间导航:

  • 概述-查看运行摘要(作业 ID、开始时间、状态、持续时间),其严重性级别饼图显示了按严重性(严重、高、中、低)细分的威胁。在摘要下方,查看STRIDE威胁类别条形图,该条形图显示了每个STRIDE类别中有多少威胁。运行完成后,查看代理生成的系统概述。

  • 配置-查看用于此次运行的来源、文档和权限(服务角色、 CloudWatch 日志组)。

  • Prefli ght — 查看威胁分析开始之前运行的预检检查的状态,包括日志基础架构设置、S3 源访问验证(如果适用)和测试环境设置。进度条显示已完成的检查次数。

  • 日志-查看代理在运行期间执行的任务的可筛选列表。选择任意任务可在侧面板中查看其详细日志输出。

  • 威胁-查看运行期间发现的威胁(请参阅查看来自威胁模型的威胁)。

运行历史记录

每个威胁模型都保留所有运行的历史记录。在威胁模型详情页面上:

  • 运行表列出了所有运行及其开始时间、状态、持续时间、威胁计数和 ID。

  • 选择任何跑步的开始时间链接以查看其完整详细信息。

提示

Re-run 在更新源代码或修改范围文档以查看系统概述和威胁如何随时间变化之后,使用相同的威胁模型。

编辑威胁模型

要修改威胁模型配置,请执行以下操作:

  1. 在威胁模型详细信息页面上,选择编辑

  2. 根据需要更新标题、来源、范围文档或 AWS 资源。

  3. 选择保存更改

注意

编辑威胁模型不会影响之前完成的运行。它们会保留运行时使用的配置快照。

删除威胁模型

要删除威胁模型及其所有相关的运行和威胁,请执行以下操作:

  1. 在威胁模型详细信息页面上,打开操作菜单并选择删除

  2. 确认删除操作。

重要

如果当前正在运行,则必须先将其停止,然后再删除威胁模型。

后续步骤

运行威胁模型后:

  • 查看系统概述和威胁(请参阅查看来自威胁模型的威胁

  • Re-run 为验证威胁是否得到解决而进行更改后的威胁模型

  • 随着应用程序的发展,调整来源和范围文档