网工干货知识

超全学习笔记
当前位置:首页 > 干货知识

威胁建模

更新时间:2026年03月27日   作者:spoto   标签(Tag):

威胁建模是一种结构化的方法,用于识别、分析并减轻系统、应用程序或组织中的潜在威胁。它有助于团队尽早发现漏洞,并在攻击者利用这些弱点之前,将安全措施融入到系统的设计中。

  • 在部署之前,能够识别出可能出现的问题。
  • 有助于了解攻击者的目标、所使用的技术以及进入系统的途径。
  • 根据风险的影响程度及其发生的可能性来优先处理这些风险。
  • 确保安全性成为开发生命周期的一部分。

它可以应用于各种目标,例如:

  • 软件与应用程序
  • 系统与网络
  • 分布式系统以及物联网设备
  • 业务流程

威胁建模的目的

威胁建模的目的是尽早识别、传达并理解各种威胁以及相应的应对措施,从而让组织的相关方能够及时了解这些情况。

威胁模型的关键组成部分

  • 被建模对象的描述
  • 这些假设可以在一段时间后得到验证或质疑。
  • 与系统或环境相关的潜在威胁
  • 针对每个被识别出的威胁所采取的缓解措施
  • 为确保缓解措施的有效性,需要采取相应的验证步骤。

威胁建模的过程

这一过程确保了安全性在设计阶段就被充分考虑进去,并且在整个应用程序的生命周期中都能得到有效的维护。

明确范围与目标

请明确说明您正在分析的系统的哪个部分,以及为什么要分析这一部分。

  • 识别出需要被保护的内容/事物
  • 定义资产、边界以及目标。
  • 明确由谁负责做出安全决策。

2. 绘制系统图

请绘制出各个组件与数据流的视觉图表示。

  • 展示了用户与系统之间的互动方式。
  • 强调数据传输与信任边界的重要性
  • 暴露了可能发生攻击的区域

3. 识别威胁

确定系统中可能出现的问题。

  • 揭示了攻击者的进入点及他们的攻击手段
  • 使用STRIDE或类似的框架
  • 评估对资产和工作流程的威胁

4. 分析风险并确定优先级

根据威胁的影响程度及其发生的可能性来对其进行排序。

  • 重点关注那些关键性的风险
  • 有助于评估现实中的潜在损害程度
  • 支持基于充分信息的决策制定

5. 设计上的缓解措施

制定安全措施,以减少或消除各种威胁。

  • 明确指出了相应的缓解措施。
  • 将控件与特定的威胁进行对齐。
  • 增强了整个系统的韧性

6. 回顾与迭代

随着系统的不断发展,需要不断改进模型。

  • 验证现有的控制措施是否有效。
  • 随着架构的变更,定期更新相关图表。
  • 确保持续的安全一致性

威胁建模方法论

开发团队可以在设计和开发过程中,通过威胁建模来识别各种威胁、风险以及相应的缓解措施,从而确保应用程序的安全性。

1. 步伐/动作方式

这是一种由微软提出的模型,该模型将威胁分为六个主要的安全领域。

  • 欺骗/伪装成其他人或事物
  • 篡改 → 对数据或系统组件进行修改
  • 否认/拒绝接受某些行为,而实际上并没有任何证据支持这种否认/拒绝。
  • 信息泄露 → 未经授权的数据暴露
  • 拒绝服务 → 导致服务无法正常运行
  • 提升特权等级 → 获得超出允许范围的权限

2. DREAD

这是一种风险评级系统,用于根据威胁的严重程度和影响力来对其进行评分。

  • 破坏潜力 → 影响的严重程度
  • 可重复性 → 攻击行为被重复实施的可能性
  • 可利用性 → 发起攻击的难度
  • 受影响的用户数量 → 受到影响的用户数目
  • 可发现性 → 找到该弱点的难易程度

3. PASTA(攻击模拟与威胁分析流程)

这是一种由7个阶段组成的方法论,重点在于分析攻击者的行为以及现实中的各种攻击场景。

  • 从攻击者的角度来看,他们所面临的威胁模型
  • 使系统架构与可能的攻击路径保持一致。
  • 有助于设计出强大且基于风险的安保控制措施。

4. 三脚架

一种以风险管理为导向的模型,该模型能够确定资产可以接受的风险水平。

  • 遵循相关方的需求/要求
  • 地图上的操作、角色以及资产权限设置
  • 根据定义的风险范围来优先处理各种威胁。

5. VAST(可视化、敏捷且简单的威胁建模方法)

这是一种适用于大型企业和敏捷团队的可扩展解决方案。

  • 在应用程序和基础设施方面,使用可视化模型来辅助设计。
  • 可以轻松地与开发工作流程相结合。
  • 不需要深入的安全知识来使用它

6. 攻击树

这是一个可视化图表,展示了攻击者实现目标的所有可能途径。

  • 具有AND/OR逻辑关系的层级结构
  • 有助于分析多种攻击路径。
  • 支持对攻击可行性进行结构化推理。

7. CVSS(通用漏洞评分系统)

一种标准化的评分方法,用于评估脆弱性的严重程度(0–10)。

  • 使用诸如影响力、可利用性、复杂性等指标来评估性能。
  • 有助于确定优先处理的安全漏洞修复事项。
  • 提供一致的、符合整个行业标准的评分结果。

8. T-MAP

这是一种用于基于现有系统的建模方法,它利用了UML图表来进行建模。

  • 识别资产的脆弱性以及攻击途径
  • 根据资产与威胁之间的关系来计算风险。
  • 支持对打包后的系统进行结构化评估。

威胁建模工具

这些工具有助于自动化和简化威胁建模过程,从而让团队能够在整个软件开发生命周期中更高效地识别、评估并减轻安全风险。

  1. 微软的威胁建模工具
  2. MyAppSecurity
  3. IriuRisk
  4. securiCAD
  5. Security Compass的SD Elements
  6. 建模攻击树
  7. CVSS 3.0
  8. 提拉米苏

如何创建威胁模型

所有的威胁建模过程都始于对正在分析的应用程序或系统的可视化表示。有两种方式来创建这种可视化表示:

使用数据流图进行可视化表示

DFDs展示了数据在系统中的流动、存储以及处理过程。

  • 由微软的方法论、PASTA以及Trike所使用。
  • 起源于20世纪70年代;为了加强安全性,信任边界在21世纪初被引入。
  • 有助于通过STRIDE等方法来对威胁进行分类。
  • 以敌手的角度来审视系统,对各个组件进行描述,并识别其中的威胁。
  • 虽然能够突出数据转移的过程,但实际上并不能准确反映真实用户的操作行为。
  • 通常存在不一致性,因为并不存在统一的标准方法。
  • 不同的人可能会为同一个系统设计出截然不同的模型。
  • 有限的威胁识别能力 → 往往是一个薄弱的起点

2. 使用流程图进行可视化展示

PFDs是在2011年引入的,其目的是克服DFD的局限性,从而更好地支持敏捷开发团队的工作。PFDs关注的是攻击者如何在应用程序中移动,而不仅仅是数据流的流动方式。

  • 从攻击者的角度来模拟该应用程序的行为。
  • 专注于利用普通用户的操作来获取资产。
  • 该方法由VAST方法论所使用。
  • 表示用户的交互行为、转换过程以及各种控件(如表单、Cookie、协议等)。
  • 易于理解,不需要任何安全方面的专业知识。
  • 生成一份清晰的流程图,展示用户或攻击者如何操作该系统。


基于 PFD 的威胁模型是从用户交互的角度来审视应用程序的。以下是基于 PFD 进行威胁建模的步骤:

  1. 设计应用程序的使用场景
  2. 定义了个体在不同使用场景之间切换时所采用的通信协议。
  3. 包括各种技术控制措施——比如表单、Cookies等。
  4. 基于 PFD 的威胁模型很容易理解,而且不需要任何安全方面的专业知识来使用它们。
  5. 创建流程图——展示各个人员在整个应用程序中的流动路径。这样一来,从攻击者的角度来看,就能更容易理解整个应用程序的运作方式了。

威胁建模的最佳实践

威胁建模有助于让整个团队共同理解安全问题,从而将安全工作转化为一种集体责任。为了充分发挥其作用,在创建或更新威胁模型时,请遵循以下五个关键最佳实践。

  • 让整个团队都参与进来(包括开发团队、安全团队、运营团队以及产品团队)。
  • 在建模之前,请先充分了解该系统的情况。
  • 专注于那些最具价值的资产和潜在威胁。
  • 随着系统的不断发展,需要定期对其进行迭代处理。
  • 识别文档中的风险,并跟踪相应的缓解措施,直至问题得到解决。
  • 通过测试来验证假设(包括渗透测试、代码审查、漏洞检测等)
  • 使用一致的模板和评分方法,以确保结果的重复性。
              马上抢免费试听资格
意向课程:*必选
姓名:*必填
联系方式:*必填
QQ:
思博SPOTO在线咨询

相关资讯

即刻预约

免费试听-咨询课程-获取免费资料