📜  威胁建模

📅  最后修改于: 2021-10-20 10:33:13             🧑  作者: Mango

随着技术的进步,黑客越来越容易访问敏感数据、禁用应用程序等。因此,应用程序安全已成为一个主要问题。在设计过程中用于实现应用程序安全的一种方法是通过威胁建模。

威胁可以是任何可以利用漏洞破坏安全并对一个或多个感兴趣的对象进行负面更改、擦除、伤害的事物。威胁建模可以在开发的任何阶段进行,但如果在开始时进行,它将有助于及早确定可以正确处理的威胁。

威胁建模的目的是尽早识别、沟通和了解对组织利益相关者的威胁和缓解措施。此过程的文档为系统分析师和防御者提供了对可能的攻击者概况、最可能的攻击媒介和攻击者最想要的资产的完整分析。

威胁建模有助于实现以下目标:

  1. 定义应用程序的安全性
  2. 识别和调查潜在的威胁和漏洞
  3. 导致更早发现架构错误

通过在设计时使用威胁建模来识别威胁、漏洞和缓解措施,开发团队将能够在设计过程中实施应用程序安全性。有多种威胁建模方法可用。我们将讨论 8 种方法:

  1. 罢工 –
    STRIDE 是 Microsoft 开发的一种威胁建模方法。它提供了六类安全威胁的助记符:
    • 欺骗:攻击者冒充另一个用户、组件或其他系统,在被建模的系统中具有身份。
    • 篡改:修改系统内的数据以达到恶意目标。
    • 赖账:对手的拒绝在没有充分证据的执行一些恶意活动的能力。
    • 信息披露:将受保护的数据暴露给不允许访问该数据的用户。
    • 拒绝服务:当攻击者使用非法手段来假设信任级别而不是他当前拥有的不同特权时,就会发生这种情况。
  2. 恐惧——
    DREAD 被提议用于威胁建模,但由于评级不一致,它在 2008 年被微软放弃。它目前被 OpenStack 和许多其他公司使用。它提供了使用五个类别的风险评级安全威胁的助记符。类别是:
    1. 损害潜力:对漏洞被利用时可能发生的损害程度进行排名。
    2. 再现性:对再现攻击的难易程度进行排名
    3. 可利用性:为发起攻击所需的努力分配一个数字。
    4. 受影响的用户:如果漏洞被广泛使用,将影响多少人的特征值。
    5. 可发现性:衡量发现威胁的可能性。
  3. 意大利面 –
    攻击模拟和威胁分析流程 (PASTA) 是一个以风险为中心的七步方法。目的是提供动态威胁识别、枚举和评分过程。威胁模型安全主题专家完成后,将对已识别的威胁进行详细分析。最后,可以列举适当的安全控制。这有助于开发人员通过分析以攻击者为中心的应用程序视图来制定以资产为中心的缓解策略。
  4. 三轮车——
    重点是使用威胁模型作为风险管理工具。威胁模型基于需求模型。需求模型建立了利益相关者定义的分配给每个资产类别的“可接受”风险级别。需求模型的分析产生威胁模型,从中识别威胁并分配风险值。完整的威胁模型用于基于资产、角色、操作和计算的风险暴露来构建风险模型。
  5. 广阔的 –
    VAST 是 Visual、Agile 和 Simple Threat 建模的首字母缩写词。该方法为各种利益相关者(如应用程序架构师和开发人员、网络安全人员等)的独特需求提供了可操作的输出。它提供了独特的应用程序和基础设施可视化方案,因此威胁模型的创建和使用不需要特定的安全主题专业知识.
  6. 攻击树——
    攻击树是显示资产或目标可能如何受到攻击的概念图。这些是由一个根节点、叶子节点和子节点组成的多级图。从下到上,子节点是必须满足的条件才能使直接父节点成立。当根满足时,攻击被视为完成。每个节点只能由其直接子节点满足。

    假设根节点下有 1 个孙子节点。在这种情况下,必须采取多个步骤来执行攻击,因为首先必须满足孙子条件才能使直接父节点为真,然后必须满足直接父节点条件才能使根节点为真。它还具有 AND 和 OR 选项,代表实现该目标的替代方案和不同步骤。

  7. 通用漏洞评分系统 (CVSS) –
    它提供了一种捕获漏洞主要特征并生成描述其严重性的数字分数(范围为 0-10,其中 10 为最严重)的方法。

    然后可以将分数转换为定性表示(例如低、中、高和严重),以帮助组织正确评估其漏洞管理流程并确定其优先级。

  8. T-MAP –
    T-MAP 是一种在商用现货 (COTS) 系统中用于计算攻击路径权重的方法。该模型使用UML类图、访问类图、漏洞类图、目标资产类图和受影响的Value类图进行开发。

目前有八种工具可用于威胁建模:

  1. 微软的威胁建模工具——
    该工具基于 STRIDE 威胁分类方案识别威胁,并且基于数据流图 (DFD)。
  2. 我的应用安全 –
    它提供了第一个商用威胁建模工具——ThreatModeler。它使用 VAST 威胁分类方案并基于流程流程图 (PFD)。
  3. IriuRisk –
    提供该工具的社区和商业版本。该工具主要用于在整个 SDLC 中创建和维护实时威胁模型。它与其他几种不同的工具(如 OWASP ZAP、BDD-Security 等)连接以促进自动化,并涉及完全可定制的问卷和风险模式库。
  4. securiCAD –
    它是由斯堪的纳维亚公司 predictti 开发的威胁建模和风险管理工具。通过对当前和未来 IT 架构进行自动攻击模拟来识别和量化风险,并根据结果提供决策支持。 securiCAD 提供商业版和社区版。
  5. 安全指南针的 SD 元素 –
    它是一个软件安全需求管理平台,包括自动威胁建模功能。进行有关应用程序的技术细节和合规性驱动因素的简短问卷调查以生成一组威胁。对策以开发人员可操作的任务的形式包含在内。
  6. 建模攻击树 –
    SecurITree、AttackTree+ 等商业工具和 ADTool、Ent、SeaMonster 等开源工具用于对攻击树进行建模。
  7. CVSS 3.0 –
    CVSS 目前的版本是 3.0。它用于 CVSS 模型。
  8. 提拉米苏 –
    此工具用于 T-MAP 方法。它用于计算所有攻击路径的列表,并根据攻击路径的总权重产生总体威胁。

如何创建威胁模型:
所有威胁建模过程都从创建正在分析的应用程序或系统的可视化表示开始。有两种方法可以创建视觉表示:

  1. 使用数据流图的可视化表示——Microsoft Methodology、PASTA 和 Trike 均使用数据流图 (DFD) 开发了应用程序基础设施的可视化表示。 DFD 是在 1970 年代开发的,作为系统工程师的工具,用于提供有关应用程序如何在系统内移动、存储和操作数据的工作方式的高级可视化。安全专家在 2000 年代初添加了信任边界的概念,试图使其适用于威胁建模。

    DFD 用于识别广泛的类别,通常使用 STRIDE 威胁分类方案。通过这些方法识别的威胁列表是有限的,因此建模的起点很差。基于 DFD 的方法使用三个主要步骤:

    1. 将系统视为对手
    2. 表征系统
    3. 确定威胁
    4. DFD 不能准确地表示应用程序的设计和流程。
    5. 他们分析数据是如何流动的,而不是用户如何与系统交互。
    6. 基于 DFD 的威胁建模没有标准方法,因为不同的人针对相同的场景或问题创建具有不同输出的威胁模型。
  2. 使用流程流程图的可视化表示——为了解决基于 DFD 的威胁建模的局限性,流程流程图于 2011 年推出,作为一种工具,允许敏捷软件开发团队基于应用程序设计流程创建威胁模型。这些是专门为说明攻击者的想法而设计的。

    攻击者不分析数据流。相反,他们试图弄清楚如何在基于 DFD 的威胁建模中不支持的应用程序中移动。
    他们的分析侧重于如何滥用普通用例来访问资产或其他目标。
    VAST 方法使用 PFD 来可视化应用程序。
    从用户交互的角度基于PFD视图应用的威胁模型。以下是基于 PFD 的威胁建模的步骤:

    1. 设计应用程序的用例
    2. 定义了个人在用例之间移动的通信协议
    3. 包括各种技术控制——例如表单、cookies 等
    4. 基于 PFD 的威胁模型很容易理解,不需要任何安全专业知识。
    5. 创建流程图 – 显示个人如何在应用程序中移动。因此,从攻击者的角度很容易理解应用程序。