威胁建模的艺术:了解网络安全风险的另一面

2024-05-14 07:04

本文主要是介绍威胁建模的艺术:了解网络安全风险的另一面,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

网络安全的本质是攻防双方的对抗与博弈。然而,由于多种攻防之间的不对称性因素存在,使得攻击者总能在对抗过程中抢占先机。为了更好地了解潜在的威胁和缺陷,实现主动式防御,企业需要重新考虑他们的网络防护方法,而威胁建模(Threat modeling)正是网络安全武器库中关键防御武器。
 

威胁建模的必要性

威胁建模是指识别并评估如何管理应用系统中安全弱点的过程,可以帮助企业更快速地发现信息化系统应用过程中的安全隐患,更清楚地了解安全建设需求,从而更有效地建立安全防御体系。

顾名思义,威胁建模会产生一个或多个模型。OWASP将威胁模型定义为:“影响应用程序安全性的所有信息的结构化表示。从本质上讲,它是从风险防御的视角来评估应用程序及其环境的安全性。”通过威胁建模的实践,可以为组织的而网络安全决策提供更全面的信息,并帮助构建和支持网络威胁情报(CTI)。

组织可以将威胁建模广泛地应用于软件应用程序、网络系统、分布式系统、物联网设备和数字化业务流程。概括来说,使用威胁建模可以给企业组织如下好处:

明确组织的安全需求。传统的最佳实践和顶级威胁列表只是网络安全工作的指导方针,它们不能考虑到组织的具体情况。而威胁建模可以告诉组织应该优先考虑什么以及在哪里投入资源。

更快的反馈,更低的成本。遵循“安全左移”的防护理念,威胁建模可以在应用系统开发过程的早期发现问题,甚至在漏洞萌芽之前消除它们,从而大大降低修复成本。

ㆍ更优质的产品+增强的信心。许多数据泄露事件凸显了安全团队对安全的忽视。威胁建模使您的缺陷直观可见,因此您可以制定创新计划并实际量化威胁。

正如安全技术专家Adam Shostack所认为的:“威胁建模是实现网络安全集中化防御的关键。如果没有威胁建模,企业的网络安全工作就是无休止的打地鼠游戏。”
 

威胁建模的过程


从广义上讲,威胁建模涉及从日常的安全工作中退一步,以了解企业的系统、评估网络和数字资源、识别威胁环境中的漏洞并优先考虑涵盖保护、响应、补救和恢复的计划。威胁建模团队的核心成员主要由安全专业人员和架构师组成。在更广泛的情况下,组织可以将各种利益相关者聚集在一起,包括应用程序所有者、技术支持人员、管理员等。

这些团队有许多明确定义的框架需要遵循,例如STRIDE,它是1999年由Microsoft开发的。STRIDE中的威胁建模会议通常以类似于白板会议的方式开始,安全专家和利益相关者在会上讨论风险因素,并集思广益怎么办。然而,这种方式目前必须要改变。

传统的威胁建模方法在当前的计算和威胁环境中,它们的扩展性和实际应用效果都不够好。特别随着越来越多的业务运营转向数字化,解决组织的所有高优先级威胁变得非常耗时,导致太多漏洞未得到解决。如何简化这个过程?组织或许应该反向进行改变,从另一端(攻击端)开始威胁建模过程。组织可以扫描现有系统,整合有关当前和可能威胁的数据,而不是从白板和人声鼎沸的会议开始,安全团队需要像黑客一样思考,试图识别潜在威胁。

在实际应用中,威胁建模过程一般遵循以下步骤:

ㆍ设定风险分析目标,确定需要保护的内容;

ㆍ创建安全风险架构概况,绘制系统或应用程序架构图;

ㆍ利用可视化技术来识别系统面临的网络安全威胁;

ㆍ评估威胁的优先级,并针对重点网络安全威胁优先提出缓解措施;

ㆍ验证所识别的威胁是否已被实际缓解。
 

威胁建模框架及方法

威胁建模的方法有多种,每种方法均有其独特的特点和架构,可指导安全专家识别和减轻相应的潜在威胁。这些威胁建模方法所提供的框架概括了如何应对复杂的威胁分析任务,能够帮助组织对安全风险进行全方位、系统的审查。

1

NIST威胁模型框架

NIST威胁模型是由美国国家标准与技术研究院(NIST)开发的一种威胁建模框架。它主要基于NIST发布的SP 800-30《风险管理指南》中的威胁建模指南。NIST威胁建模框架包括以下关键步骤:

ㆍ建立上下文规则:定义组织的上下文,包括业务目标、关键资产和相关利益相关者。

ㆍ威胁识别:分析系统,识别可能的威胁,包括自然灾害、人为活动和技术故障等。

ㆍ威胁评估:对识别的威胁进行评估,包括威胁的概率、影响和风险。

ㆍ制定风险缓解策略:根据评估的风险水平,制定适当的风险缓解策略,包括接受、转移、降低或避免。

ㆍ监控和更新:持续监控威胁环境,根据变化的情况更新风险管理策略。

2

STRIDE Model框架

STRIDE是威胁建模理念的最早实践者,也是最流行的威胁建模框架之一,由微软安全研究人员于1999年创建。它能够从攻击者的角度出发,将威胁分为以下6个类别:

ㆍ欺骗(Spooling):攻击者试图冒充与系统某些部分交互的实体(例如,用户、服务)。

ㆍ篡改(Tampering):攻击者试图修改数据以操纵某些结果。

ㆍ抵赖(Repudiation):攻击者否认其操作或交易,使其难以追踪或追究责任。

ㆍ信息泄露(Information Disclosure):攻击者可能获取系统中的敏感信息,如用户凭据、业务数据等。

ㆍ拒绝服务(DoS):限制或阻止对系统的正常访问。

ㆍ特权提升(Elevation of privilege):攻击者试图获取比其正常权限更高的权限级别,从而可能导致未经授权的访问和操作系统的敏感功能。

3

DREAD框架

DREAD是一种用于评估和量化安全风险的威胁建模框架,它考虑了以下五个关键方面:

ㆍ损害(Damage):攻击成功发生后可能对系统造成的实际损害程度,包括数据泄露、服务中断、财务损失等。

ㆍ可重复性(Reproducibility):攻击的复杂度以及攻击者是否能够轻松地重复该攻击。高可重复性意味着攻击很容易被多次执行。

ㆍ可利用性(Exploitability):衡量攻击者实施攻击的难度,以及攻击是否需要先前的专业知识或技能。较低的可利用性表示攻击相对难以实现。

ㆍ受影响用户(Affected Users):攻击可能影响的用户数量,如果攻击影响广泛的用户群体,风险程度可能会更高。

ㆍ可发现性(Discoverability):衡量攻击是否容易被检测或发现。低可发现性表示攻击者不易被发现。

4

PASTA流程

攻击模拟和威胁分析流程(PASTA)是一种以风险为中心的威胁分析方法,在模拟和测试威胁的可行性时始终与业务流程联系在一起。它采用以风险为中心的方法,根据威胁的可能性和潜在影响确定威胁的优先级。具体分为以下七个阶段:

ㆍ为风险分析定义目标。这包括对组织核心任务、服务、产品及其他关键业务方面的认知;

ㆍ定义技术范围,包括系统、网络、应用程序等;

ㆍ分解和分析应用程序,识别关键组件及其相互关系;

ㆍ威胁分析,识别系统可能面临的威胁;

ㆍ弱点和脆弱性分析;

ㆍ攻击建模与模拟;

ㆍ风险分析和管理;

5

LINDDUN框架

对于主要担心数据隐私的组织,可以采用更集中的威胁建模方法。LINDDUN就是这样一个框架,它提供了一个隐私威胁的目录,以便对可能影响隐私的广泛设计问题进行调查。

“LINDDUN”是以下隐私威胁类型的首字母缩略词,主要包括:

ㆍ关联(Linking):将数据或操作关联到个人或组的能力。

ㆍ识别(Identifying):了解个体的身份。

ㆍ不可抵赖性(Nonrepudiation):能够将某项主张归于某个人。

ㆍ侦测(Detecting):通过观察推断数据主体对系统的参与情况。

ㆍ数据泄露(Data disclosure):过度收集、存储、处理或共享个人数据。

ㆍ不知情(Unawareness):在处理个人数据时,没有充分告知、涉及或授权个人。

ㆍ不合规(Noncompliance):偏离安全和数据管理最佳实践、标准和法规。

6

TRIKE知识库

TRIKE是一种基于知识库的开源建模方法,通过收集、整理和分析威胁情报,构建一个全面的知识库,主要包括威胁漏洞、攻击向量等信息,来帮助组织理解和管理其面临的威胁和风险。该方法侧重于定义可接受的风险水平,同时分配风险等级,以确定制定的利益相关方是否可以接受风险,并根据这些等级调整安全工作。

7

安全决策树

安全决策树(Security decision trees)是一种以攻击者为中心的威胁建模技术,它允许团队使用树形结构对攻击如何展开进行建模。攻击场景模拟攻击者在攻击的每个阶段可能采取的行动,以及系统可以做些什么来对抗攻击者。这种方法可以帮助团队理解攻击者的心态和决策过程,以及攻击的投资回报(ROI)。
 

威胁建模应用实践

虽然威胁建模优势明显,但想要在组织内成功采用威胁建模却并不容易。为了最大程度地发挥威胁建模的作用,组织可以采取以下一些关键步骤:

首先,必须把重点放在培训和意识上。这意味着要投入时间和资源来教育开发团队、安全人员和其他受众,让他们了解威胁建模的重要性以及用于进行威胁建模的各种技术。彻底理解威胁建模在识别和预防安全漏洞中的作用,对于在团队中培养具有安全意识的文化至关重要。

其次,要将威胁建模集成到开发生命周期中。通过在软件开发的早期阶段威胁建模,组织可以确保安全性考虑不是“事后考虑事项”,而是开发过程的基本组成部分。在早期嵌入威胁建模有助于识别潜在的安全问题,因为这些问题通常更容易解决,而且成本更低。

最后,网络安全的本质要求威胁模型并非静态的。随着网络威胁和软件系统的不断发展,定期审查是必不可少的。组织应该通过定期审查来更新和改进威胁模型,确保它们准确地反映当前的威胁环境和系统本身的任何变化,从而保持一个强大的、响应性强的安全状态,以适应不断涌现的新挑战。

将这些实践整合到组织的安全策略中并非一次性的任务,而是一个持续努力的过程。随着威胁的演变以及系统的日益复杂,威胁建模也必须跟上网络安全的动态特性。如果企业想将威胁建模涵盖自身的所有业务,那么就应该通过优先使用自动化工具和大量可用威胁信息评估企业安全风险的方式,更快地解决所有高风险威胁,同时也不要忽视任何细小威胁。

此文档来源于网络,如有侵权请联系网站删除

这篇关于威胁建模的艺术:了解网络安全风险的另一面的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/988075

相关文章

关于数据埋点,你需要了解这些基本知识

产品汪每天都在和数据打交道,你知道数据来自哪里吗? 移动app端内的用户行为数据大多来自埋点,了解一些埋点知识,能和数据分析师、技术侃大山,参与到前期的数据采集,更重要是让最终的埋点数据能为我所用,否则可怜巴巴等上几个月是常有的事。   埋点类型 根据埋点方式,可以区分为: 手动埋点半自动埋点全自动埋点 秉承“任何事物都有两面性”的道理:自动程度高的,能解决通用统计,便于统一化管理,但个性化定

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(五):Blender锥桶建模

前言 本系列教程旨在使用UE5配置一个具备激光雷达+深度摄像机的仿真小车,并使用通过跨平台的方式进行ROS2和UE5仿真的通讯,达到小车自主导航的目的。本教程默认有ROS2导航及其gazebo仿真相关方面基础,Nav2相关的学习教程可以参考本人的其他博客Nav2代价地图实现和原理–Nav2源码解读之CostMap2D(上)-CSDN博客往期教程: 第一期:基于UE5和ROS2的激光雷达+深度RG

如何做好网络安全

随着互联网技术的飞速发展,网站已成为企业对外展示、交流和服务的重要窗口。然而,随之而来的网站安全问题也日益凸显,给企业的业务发展和用户数据安全带来了巨大威胁。因此,高度重视网站安全已成为网络安全的首要任务。今天我们就来详细探讨网站安全的重要性、面临的挑战以及有什么应对方案。 一、网站安全的重要性 1. 数据安全与用户隐私 网站是企业存储和传输数据的关键平台,包括用户个人信息、

数学建模笔记—— 非线性规划

数学建模笔记—— 非线性规划 非线性规划1. 模型原理1.1 非线性规划的标准型1.2 非线性规划求解的Matlab函数 2. 典型例题3. matlab代码求解3.1 例1 一个简单示例3.2 例2 选址问题1. 第一问 线性规划2. 第二问 非线性规划 非线性规划 非线性规划是一种求解目标函数或约束条件中有一个或几个非线性函数的最优化问题的方法。运筹学的一个重要分支。2

速了解MySQL 数据库不同存储引擎

快速了解MySQL 数据库不同存储引擎 MySQL 提供了多种存储引擎,每种存储引擎都有其特定的特性和适用场景。了解这些存储引擎的特性,有助于在设计数据库时做出合理的选择。以下是 MySQL 中几种常用存储引擎的详细介绍。 1. InnoDB 特点: 事务支持:InnoDB 是一个支持 ACID(原子性、一致性、隔离性、持久性)事务的存储引擎。行级锁:使用行级锁来提高并发性,减少锁竞争

PHP: 深入了解一致性哈希

前言 随着memcache、redis以及其它一些内存K/V数据库的流行,一致性哈希也越来越被开发者所了解。因为这些内存K/V数据库大多不提供分布式支持(本文以redis为例),所以如果要提供多台redis server来提供服务的话,就需要解决如何将数据分散到redis server,并且在增减redis server时如何最大化的不令数据重新分布,这将是本文讨论的范畴。 取模算法 取模运

OCC开发_变高箱梁全桥建模

概述     上一篇文章《OCC开发_箱梁梁体建模》中详细介绍了箱梁梁体建模的过程。但是,对于实际桥梁,截面可能存在高度、腹板厚度、顶底板厚度变化,全桥的结构中心线存在平曲线和竖曲线。针对实际情况,通过一个截面拉伸来实现全桥建模显然不可能。因此,针对变高箱梁,本文新的思路来实现全桥建模。 思路 上一篇文章通过一个截面拉伸生成几何体的方式行不通,我们可以通过不同面来形成棱柱的方式实现。具体步骤

Weex入门教程之1,了解Weex

【资料合集】Weex Conf回顾集锦:讲义PDF+活动视频! PDF分享:链接:http://pan.baidu.com/s/1hr8RniG 密码:fa3j 官方教程:https://weex-project.io/cn/v-0.10/guide/index.html 用意 主要是介绍Weex,并未涉及开发方面,好让我们开始开发之前充分地了解Weex到底是个什么。 以下描述主要摘取于

跟我一起玩《linux内核设计的艺术》第1章(四)——from setup.s to head.s,这回一定让main滚出来!(已解封)

看到书上1.3的大标题,以为马上就要见着main了,其实啊,还早着呢,光看setup.s和head.s的代码量就知道,跟bootsect.s没有可比性,真多……这确实需要包括我在内的大家多一些耐心,相信见着main后,大家的信心和干劲会上一个台阶,加油! 既然上篇已经玩转gdb,接下来的讲解肯定是边调试边分析书上的内容,纯理论讲解其实我并不在行。 setup.s: 目标:争取把setup.

Java了解相对较多!

我是对Java了解相对较多,而对C#则是因工作需要才去看了一下,C#跟Java在语法上非常相似,而最初让我比较困惑的就是委托、事件部分,相信大多数初学者也有类似的困惑。经过跟Java的对比学习,发现这其实跟Java的监听、事件是等同的,只是表述上不同罢了。   委托+事件是观察者模式的一个典型例子,所谓的委托其实就是观察者,它会关心某种事件,一旦这种事件被触发,这个观察者就会行动。   下