一、引言
网络安全的本质是攻防双方的对抗与博弈。攻击方往往凭借天赋、脑洞和个人兴趣发起五花八门的攻击活动,执行单点式攻击;但是防御方却要防住所有,全靠脑洞不讲究方法就难免会有疏漏。因此防御方需要有方法论的指导。威胁建模就是其中一种方法论和指导思想。
二、什么是威胁建模
威胁建模就是通过结构化的方法,系统地识别、评估产品的安全风险和威胁,并针对这些风险、威胁制定消减措施的一个过程。威胁模型用于分析可能的攻击者和黑客,并识别最可能的攻击途径以及最有可能成为目标的硬件和软件。防御者可以确定保护系统免受这些威胁所需的安全控制,并根据每种威胁的成本和收益决定实施哪些控制。未知攻,焉知防,我们应当站在攻击者的视角去审视网络安全问题,识别威胁,规避风险。威胁建模是结构化的理论框架,是在网络安全前辈们基于工程实践情况下总结出的理论体系框架,从审视者和践行者的眼光去构建威胁模型,在理论框架指导下,不再茫然和手足无措,有利于识别不断变化的安全威胁。
三、威胁建模的目标
威胁建模评估信息系统的威胁和风险,识别每个威胁成功的可能性,并评估组织响应每个已识别威胁的能力。主要目的如下:
-
识别安全要求和漏洞
-
量化威胁和漏洞的严重性
-
确定修复方法的优先顺序
四、如何进行威胁建模?
威胁建模可识别软件应用程序或计算机系统面临的威胁类型。最好在软件或系统的设计过程中进行威胁建模,以便可以在系统上线之前解决漏洞。软件、基础设施和威胁环境的变化也是重新审视威胁模型的重要机会。威胁建模一般遵循以下五个步骤:
设定分析目标。
创建要分析的系统的可视化模型。
使用可视化模型来识别系统面临的威胁。
采取措施减轻威胁。
验证威胁是否已得到缓解。
五、识别威胁建模方法的差异
威胁建模通过关注潜在攻击、系统资产或软件本身来识别威胁。以资产为中心的威胁建模侧重于系统资产以及每个目标资产损失的业务影响。以攻击为中心的威胁建模可识别针对系统的威胁,成功机会最大。以系统为中心的威胁建模侧重于在评估针对系统的威胁之前了解正在建模的系统。
六、威胁建模分类
- CIA模型
CIA模型是威胁建模的一个基本框架,它有助于组织全面了解其信息资产所面临的潜在风险,围绕着保密性(C)、完整性(I)、可用性(A)三原则展开。
保密性(Confidentiality):涉及确保信息只对授权人员可用。保密性的目标是防止未经授权的访问、披露或泄漏敏感信息。在威胁建模中,分析人员会考虑各种可能导致信息泄露的威胁和漏洞。
完整性(Integrity): 关注信息是否在未经授权的情况下遭到修改或破坏。威胁建模的过程中,分析人员会研究可能威胁到数据完整性的因素,包括未经授权的修改、损坏或篡改。
可用性(Availability):指的是确保信息和系统在需要时可用。可用性的目标是防止服务中断、拒绝服务攻击以及其他可能导致信息无法访问的事件。在CIA建模中,分析人员会考虑可能导致系统不可用的威胁因素,例如DDOS攻击等。
- 攻击树模型(Attack trees)
攻击树由90年代后期的信息安全传奇人物布鲁斯·施耐尔(Bruce Schneier)开创,提供了一种正式而条理清晰的方法来描述系统所面临的安全威胁和系统可能受到的多种攻击,是一种用于可视化和分析信息系统安全威胁的工具,它通过图形化的方式展示攻击者可能使用的路径来达到其攻击目标。我们用树型结构来表示系统面临的攻击,其中根节点表示攻击者的目标,而分支和叶子节点则表示攻击者可能采取的不同策略和步骤。该模型基于树状结构,从根节点开始,通过分支表示攻击的不同途径,直至达到叶子节点,其中包含具体的攻击手段或方法。通过穷举和抽丝剥茧的方法不断找到最清晰的攻击手段和攻击路径。
攻击树模型有助于系统管理员和安全专业人员全面了解潜在威胁和系统脆弱性。通过分析攻击树,可以识别系统中的关键节点和弱点,从而采取有针对性的安全措施。此模型可用于不同层次的威胁建模,从高级别的系统整体安全分析到详细的单个攻击路径探讨。
3. STRIDE威胁建模
STRIDE是威胁建模的鼻祖,由Microsoft安全研究人员于1999年创建,从攻击者的角度,把威胁划分成6个类别,分别是Spooling(仿冒)、Tampering(篡改)、Repudiation(抵赖)、InformationDisclosure(信息泄露)、Dos(拒绝服务)和Elevation of privilege (权限提升)。
Spoofing(欺骗): 指攻击者伪装成合法用户或系统,以获取未经授权的访问权限。这可能涉及伪造身份、IP地址或其他标识。
Tampering(篡改):意味着攻击者可能修改数据、配置或代码,以损害系统的完整性。这可能导致数据损坏、信息泄露或系统崩溃。
Repudiation(否认):涉及攻击者否认其操作或交易,使其难以追踪或追究责任。这可能导致法律纠纷或证据缺失。
Information Disclosure(信息泄露):表示攻击者可能获取系统中的敏感信息,如用户凭证、业务数据等。信息泄露可能导致隐私侵犯或敏感数据曝光。
Denial of Service(拒绝服务):攻击者可能采取措施阻止合法用户访问系统或服务,导致系统不可用。这可能通过超载、资源耗尽或其他方式实现。
Elevation of Privilege(权限提升):指攻击者试图获取比其正常权限更高的权限级别。这可能导致未经授权的访问和操作系统的敏感功能。
STRIDE框架提供了一个系统性的方法,有助于安全专业人员在设计和评估系统时识别潜在的威胁。通过了解这些威胁,组织能够更有效地采取措施,提高其系统的安全性。STRIDE常常与其他威胁建模方法和工具结合使用,以全面评估系统的安全性。
随着全球对隐私保护重视程度的加大,隐私安全也成了产品的一个重要威胁,STRIDE的6个威胁也添加了一项隐私(Privacy),变成了ASTRIDE,A代表Advanced。
4. DREAD威胁建模
DREAD是一种用于评估和量化安全风险的威胁建模方法,它考虑了以下五个关键方面:Damage(损害)、Reproducibility(可重复性)、Exploitability(可利用性)、Affected Users(受影响用户)和Discoverability(可发现性)。这个方法有助于组织更系统地理解潜在威胁,并优先处理最具风险的问题。
Damage(损害):表示攻击成功发生后可能对系统造成的实际损害程度。这包括数据泄露、服务中断、财务损失等。
Reproducibility(可重复性):表示攻击的复杂度以及攻击者是否能够轻松地重复该攻击。高可重复性意味着攻击很容易被多次执行。
Exploitability(可利用性):衡量攻击者实施攻击的难度,以及攻击是否需要先前的专业知识或技能。较低的可利用性表示攻击相对难以实现。
Affected Users(受影响用户):表示攻击可能影响的用户数量。如果攻击影响广泛的用户群体,风险程度可能会更高。
Discoverability(可发现性):衡量攻击是否容易被检测或发现。低可发现性表示攻击者能够在系统中潜伏而不容易被察觉。
DREAD通过对这五个方面进行评分(通常在1到10的范围内),帮助安全专业人员量化潜在威胁的风险水平。这种评估使组织能够有针对性地制定和实施安全对策,将资源集中在最具风险的领域。DREAD常常与其他威胁建模方法结合使用,提供更全面的安全分析。
5. PASTA威胁建模
攻击模拟和威胁分析(PASTA)过程是一种由七个阶段构成的威胁建模方法,是以风险为核心,旨在选择或开发与要保护的资产价值相关的防护措施。PASTA的七个阶段如下。
阶段1:为风险分析定义目标
首先,明确定义组织的业务目标。这包括了对于组织的核心任务、服务、产品以及其它关键业务方面的清晰认知。业务目标的明确定义是PASTA威胁建模的起点,确保整个过程对业务需求有明确的了解。
阶段2:定义技术范围
确定威胁建模的技术范围,包括系统、网络、应用程序等。明确技术范围帮助建模团队集中精力于关键组件,从而更有效地识别潜在威胁。
阶段3:分解和分析应用程序
对系统中的应用程序进行详细分解,识别关键组件和其相互关系。这一步骤有助于深入理解系统结构,为后续的威胁分析提供基础。
阶段4:威胁分析
在业务和技术的基础上,通过威胁分析识别系统可能面临的威胁。这包括了攻击者可能的目标、方法、攻击路径等方面的调查,为后续步骤提供详实的威胁情报。
阶段5:弱点和脆弱性分析
深入审查系统,识别潜在的弱点和漏洞。这一步骤关注系统中可能存在的安全缺陷,为制定有效安全对策提供基础。
阶段6:攻击建模与仿真
模拟攻击者的思维方式,枚举潜在的攻击路径,并建模攻击过程。通过这一步骤,团队可以更具体地了解攻击者可能采取的步骤,帮助发现系统中的弱点。
阶段7:风险分析和管理
对潜在威胁的风险和影响进行分析,量化威胁的严重性。这有助于组织优先处理最具风险的问题,制定有针对性的安全对策和风险缓解计划。
PASTA 的每个阶段都有该阶段需要完成的目标和交付物的特别目标清单。通过这七个步骤,PASTA威胁建模提供了一个系统性的方法,帮助组织更全面地理解其信息系统所面临的威胁,并制定相应的安全对策。
- VAST威胁建模
可视化、敏捷和简单威胁 (VAST)是一种应用于应用程序威胁或操作威胁的自动化威胁建模流程。为了对应用程序威胁进行建模,VAST 绘制了对系统架构的威胁图。为了对操作威胁进行建模,VAST 从攻击者的角度绘制了威胁图。
VAST通过简化复杂性,使威胁建模变得更加敏捷和实用。其核心特点包括使用图形来表示威胁、关注关键信息的敏感性、支持敏捷开发方法,并通过迭代的方式持续改进安全性。VAST威胁建模适用于各种规模的组织,为团队提供了一种快速而直观的方式,帮助他们识别和理解潜在威胁,以采取有效的安全对策。这一方法的注重简洁性和可操作性,使得威胁建模成为更贴近实际开发和运营的实践。
- Trike威胁建模
Trike(Threat and Risk Intelligence Knowledge-base)威胁建模是一种基于知识库的方法,旨在帮助组织理解和管理其面临的威胁和风险。Trike通过收集、整理和分析威胁情报,构建了一个全面的知识库,其中包括威胁漏洞、攻击向量等信息。该方法强调实时的威胁情报,使组织能够更准确地评估其系统的安全状况。Trike威胁建模采用图形化的方式,帮助用户直观地理解威胁,促使更好的决策制定。这一方法适用于各种组织,为其提供了一个强大的工具,帮助他们在不断变化的威胁环境中保持对系统风险的敏感性,并采取及时而有效的对策。
8. OCTAVE威胁建模
OCTAVE代表“运营关键威胁,资产和脆弱性评估”,是由卡耐基梅隆大学开发的一种威胁建模方法。与传统的技术风险侧重不同,OCTAVE关注整体组织风险,强调将信息安全与业务运营相结合。该方法分为三个关键阶段:
建立基于资产的威胁配置文件: 在这一阶段,组织识别和分类其关键资产,并评估与这些资产相关的威胁。这有助于确定哪些威胁对业务运营最为关键。
识别基础架构漏洞: 通过分析组织的基础架构,包括人员、流程、技术等方面,识别可能存在的漏洞。这一步骤有助于理解潜在的脆弱性,从而更好地评估威胁的实际影响。
制定安全策略和计划: 在这一阶段,基于先前的分析,制定有针对性的安全策略和计划。这包括确定和实施控制措施,以降低威胁和脆弱性对组织的潜在风险。
OCTAVE强调整合业务和信息安全,帮助组织更全面地理解其风险,并制定有效的安全对策,以保护运营关键的资产和业务。
- NIST威胁建模
NIST威胁建模是由美国国家标准与技术研究院开发的一种威胁建模方法。它主要基于NIST特别出版物SP 800-30《风险管理指南》中的威胁建模指南。该方法强调整体风险管理,通过系统性的过程帮助组织识别、评估和处理信息系统中的威胁。
NIST威胁建模包括以下关键步骤:
建立上下文: 定义组织的上下文,包括业务目标、关键资产和相关利益相关者。
识别威胁: 分析系统,识别可能的威胁,包括自然灾害、人为活动和技术故障等。
评估威胁: 对识别的威胁进行评估,包括威胁的概率、影响和风险。
制定风险应对策略: 根据评估的风险水平,制定适当的风险应对策略,包括接受、转移、降低或避免。
监控和更新:持续监控威胁环境,根据变化的情况更新风险管理策略。
NIST威胁建模是一个灵活而综合的方法,有助于组织建立有效的风险管理体系,提高信息系统的安全性。
- CVSS建模
通用漏洞评分系统 (CVSS) 是一个开放框架,由FIRST所有和管理,用于传达软件漏洞的特征和严重性。CVSS 包含四个指标组:基础、威胁、环境和补充。基本组代表随时间和跨用户环境变化的漏洞的内在特征,威胁组反映了随时间变化的漏洞特征,环境组代表了用户环境特有的漏洞特征。基本指标值与假设威胁和环境指标最高严重性的默认值相结合,产生 0 到 10 之间的分数。为了进一步细化由此产生的严重性评分,可以根据适用的威胁情报和环境考虑因素修改威胁和环境指标。补充指标不会修改最终分数,而是用作对漏洞特征的额外了解。CVSS向量字符串由用于导出分数的值的压缩文本表示形式组成。CVSS4.0版的官方规范详见https://www.first.org/cvss/calculator/4.0。
- TVRA (Threat, Vulnerability and Risk Assessment)
威胁、漏洞和风险评估 (TVRA),用于保护关键基础设施和关键资产,针对资产、系统、网络或功能进行定制并应用,具体取决于其旨在支持的基本服务以及相关关键资产的性质基础设施。TVRA 流程涉及识别关键资产的威胁以及它们如何影响关键基础设施的运行和现场人员的安全,并根据当前的能力和资源需求确定如何最好地减轻这些威胁。
12. LINDDUN威胁建模
LINDDUN是一种隐私威胁建模方法,支持分析师系统地引发和减轻软件架构中的隐私威胁。LINDDUN提供支持,以结构化方式指导您完成威胁建模过程。此外,LINDDUN还提供隐私知识支持,让非隐私专家也能推理出隐私威胁。
- Security Cards(安全卡)模型
安全卡可识别异常和复杂的攻击。它们不是一种正式的方法,而是一种集思广益的技术。此方法使用一副42张卡片组来促进威胁发现活动:“人类影响”(9张卡片)、“对手的动机”(13张卡片)、“对手的资源”(11张卡片)和“对手的方法”(9张卡片)。
14. ATT&CK威胁建模
MITRE ATT&CK是一个全球可访问的基于真实世界观察的对手战术和技术的知识库。包括企业版本、移动版本、工业控制系统版本。
本文只做简单介绍,普及威胁建模的基础知识,后续再针对每种建模方式的应用场景、解决方案做详细介绍。
网络安全学习路线
这是一份网络安全从零基础到进阶的学习路线大纲全览,小伙伴们记得点个收藏!
阶段一:基础入门
网络安全导论
渗透测试基础
网络基础
操作系统基础
Web安全基础
数据库基础
编程基础
CTF基础
该阶段学完年薪15w+没有问题
阶段二:技术进阶(到了这一步你才算入门)
弱口令与口令爆破
XSS漏洞
CSRF漏洞
SSRF漏洞
XXE漏洞
SQL注入
任意文件操作漏洞
业务逻辑漏洞
该阶段学完年薪25w+
阶段三:高阶提升
反序列化漏洞
RCE
综合靶场实操项目
内网渗透
流量分析
日志分析
恶意代码分析
应急响应
实战训练
该阶段学完即可年薪30w+
阶段四:蓝队课程
蓝队基础
蓝队进阶
该部分主攻蓝队的防御,即更容易被大家理解的网络安全工程师。
攻防兼备,年薪收入可以达到40w+
阶段五:面试指南&阶段六:升级内容
需要上述路线图对应的网络安全配套视频、源码以及更多网络安全相关书籍&面试题等内容可在文章后方领取。
如果你对网络安全入门感兴趣,那么你需要的话可以点击这里网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
或者扫描下方csdn官方合作二维码获取哦!