hacktricks/generic-methodologies-and-resources/threat-modeling.md

6.3 KiB
Raw Blame History

Threat Modeling

Threat Modeling

欢迎来到 HackTricks 关于威胁建模的综合指南!开始探索网络安全这一关键方面,在这里我们识别、理解并制定针对系统潜在漏洞的策略。此线程作为逐步指南,包含真实案例、有用的软件和易于理解的解释。非常适合希望加强网络安全防御的新手和经验丰富的从业者。

Commonly Used Scenarios

  1. 软件开发作为安全软件开发生命周期SSDLC的一部分威胁建模有助于在开发早期识别潜在漏洞来源
  2. 渗透测试渗透测试执行标准PTES框架要求进行威胁建模以了解系统的漏洞,然后再进行测试。

Threat Model in a Nutshell

威胁模型通常以图表、图像或其他形式的可视化插图表示,描绘应用程序的计划架构或现有构建。它与数据流图相似,但关键区别在于其安全导向的设计。

威胁模型通常包含用红色标记的元素象征潜在的漏洞、风险或障碍。为了简化风险识别过程采用CIA机密性、完整性、可用性三元组构成许多威胁建模方法的基础其中STRIDE是最常见的。然而所选方法可能会根据具体上下文和要求而有所不同。

The CIA Triad

CIA三元组是信息安全领域广泛认可的模型代表机密性、完整性和可用性。这三大支柱构成了许多安全措施和政策的基础包括威胁建模方法。

  1. 机密性:确保数据或系统不被未经授权的个人访问。这是安全的核心方面,需要适当的访问控制、加密和其他措施以防止数据泄露。
  2. 完整性:数据在其生命周期内的准确性、一致性和可信度。该原则确保数据未被未经授权的方更改或篡改。通常涉及校验和、哈希和其他数据验证方法。
  3. 可用性:确保数据和服务在需要时可供授权用户访问。这通常涉及冗余、容错和高可用性配置,以保持系统在中断情况下仍能运行。

Threat Modeling Methodlogies

  1. STRIDE由微软开发STRIDE是欺骗、篡改、否认、信息泄露、拒绝服务和特权提升的首字母缩略词。每个类别代表一种威胁,这种方法通常用于程序或系统的设计阶段,以识别潜在威胁。
  2. DREAD这是微软用于已识别威胁风险评估的另一种方法。DREAD代表损害潜力、可重现性、可利用性、受影响用户和可发现性。每个因素都被评分,结果用于优先排序已识别的威胁。
  3. PASTA(攻击模拟和威胁分析过程):这是一种七步的以风险为中心的方法。它包括定义和识别安全目标、创建技术范围、应用程序分解、威胁分析、漏洞分析和风险/分流评估。
  4. Trike:这是一种基于风险的方法,专注于保护资产。它从风险管理的角度出发,考虑威胁和漏洞。
  5. VAST(可视化、敏捷和简单的威胁建模):这种方法旨在更易于访问,并集成到敏捷开发环境中。它结合了其他方法的元素,专注于威胁的可视化表示
  6. OCTAVE操作关键威胁、资产和漏洞评估由CERT协调中心开发该框架旨在进行组织风险评估,而不是特定系统或软件

Tools

有几种工具和软件解决方案可用于协助创建和管理威胁模型。以下是您可能考虑的一些工具。

SpiderSuite

一个先进的跨平台多功能GUI网络爬虫/蜘蛛适用于网络安全专业人员。Spider Suite可用于攻击面映射和分析。

Usage

  1. 选择一个URL并爬取
  1. 查看图表

OWASP Threat Dragon

OWASP的一个开源项目Threat Dragon是一个网页和桌面应用程序包含系统图示以及自动生成威胁/缓解措施的规则引擎。

Usage

  1. 创建新项目

有时它可能看起来像这样:

  1. 启动新项目
  1. 保存新项目
  1. 创建您的模型

您可以使用像SpiderSuite Crawler这样的工具来获得灵感基本模型可能看起来像这样

关于实体的简要说明:

  • 过程实体本身如Web服务器或Web功能
  • 参与者(如网站访客、用户或管理员的人)
  • 数据流线(交互的指示)
  • 信任边界(不同的网络段或范围。)
  • 存储(数据存储的地方,如数据库)
  1. 创建威胁步骤1

首先,您必须选择要添加威胁的层

现在您可以创建威胁

请记住,参与者威胁和过程威胁之间是有区别的。如果您要向参与者添加威胁,则只能选择“欺骗”和“否认”。然而在我们的示例中,我们将威胁添加到过程实体,因此我们将在威胁创建框中看到:

  1. 完成

现在您完成的模型应该看起来像这样。这就是如何使用OWASP Threat Dragon制作简单的威胁模型。

Microsoft Threat Modeling Tool

这是微软提供的一个免费工具帮助在软件项目的设计阶段发现威胁。它使用STRIDE方法特别适合在微软技术栈上开发的人员。