Akiyama_tsuki

导航

威胁分析和风险分析

威胁分析

三个定义:威胁(Threat),指的是可能造成危害的来源。风险(Risk),可能造成的损失。漏洞,系统中可能被威胁利用从而造成危害的地方。

威胁分析就是把系统中存在的威胁全部找出来,即确定所有可能的危险来源。除了单纯的头脑风暴外,存在一些科学的方法,比如威胁建模,它使用一个模型帮助思考可能在那些地方可能存在威胁,相比人干想,能够避免一定的遗漏。

威胁建模个人感觉就是列出一张清单,上面有着威胁可能出现的形态,然后我们对着这张单,一条条思考就行。

一种实用的威胁建模是微软的STRIDE模型。名字取自六类可能的威胁。

威胁 定义 对应的安全属性
Spoofing(伪装) 冒充他人身份 认证
Tampering(篡改) 修改数据或代码 完整性
Repudiation(抵赖) 否认做过的事 不可否认性
InformationDisclosure(数据泄露) 机密信息的泄露 机密性
Denial of Service(拒绝服务) 拒绝服务 可用性
Elevation of Privilege(权限提升) 未经过授权获得许可 授权

一个让人无奈和沮丧的事,工程师花了大把的时间指定的方案,却由于出人意料地漏洞被击破。这就是威胁分析阶段出现的问题。(当然不可否认的是,极难真的在这一阶段就把所有威胁找出来,漏洞总是出人意料,所以才会有许多补丁,但只要这一步做的尽可能地好,后续威胁造成的破坏和补救的代价就都会可接受些。)

风险分析

风险是某一个威胁可能造成的损失,由风险能够造成的伤害和风险发生的概率两方面因素决定。即:
$$
Risk = Probability * Damage Potential
$$
一种用于风险分析的方法是微软的DREAD模型,用于指导我们应该从哪些方面判断一个威胁的风险。

高(3) 中(2) 低(1)
Damage Potential(破坏潜力) 获得完全的验证权限;执行管理员操作;非法上传文件 泄露敏感信息 泄露其他信息
Reproducibility(再现性) 攻击者能够随意地再次发动攻击 攻击者可以再次攻击,但存在时间限制 攻击者很难重复攻击
Exploitability(可利用性) 初学者短时间内也能掌握攻击方法 熟练的攻击者才能完成攻击 漏洞利用条件极其苛刻
Affected users(受影响用户) 所有用户,使用默认配置,关键用户 部分用户,使用非默认的配置 极少用户,匿名用户
Discoverability(可发现性) 漏洞很明显,攻击条件很容易获得 在私有区域内,部分人能够看见,需要深入挖掘 极难发现该漏洞

在DREAD模型中,每一种风险因素都有高中低三种危险等级。用321个表示其权重,总合个因素的权重可以算出某个威胁的风险值。

一个例子,疫情封校期间,FQ出校门:风险值计算应该是:D(2) + R(3) + E(3) + A(2) + D(3) =13 。这算是一个风险较大的漏洞了,所以应该加大校警巡逻力度。

posted on 2022-05-12 11:12  Akiyama_tsuki  阅读(869)  评论(0编辑  收藏  举报