Microsoft SDLC-DREAD威胁评级模型

0x00 背景

威胁建模工具是 Microsoft 安全开发生命周期 (SDL) 的核心要素。潜在安全问题处于无需花费过多成本即可相对容易解决的阶段,软件架构师可以使用威胁建模工具提前识别这些问题。因此,它能大幅减少开发总成本。此外,我们设计该工具时考虑到了非安全专家的体验,为他们提供有关创建和分析威胁模型的清晰指导,让所有开发人员都可以更轻松地使用威胁建模。

通过使用Microsoft threat-modeling工具进行威胁建模后,我们需要对威胁进行评级,进行优先排序。

0x01威胁评级DREAD

威胁评级

根据威胁造成的危险对其进行评价。这样就能够首先解决危险最大的威胁,然后再解决其他的威胁。实际上,解决所有找出的威胁也许在经济上是不可行的,可以进行决策,忽略掉一些,因为它们发生的机会很小,即使发生,带来的损失也很小。 那依据什么标准对威胁评级呢?

简单评价系统: 危险 = 发生概率 × 潜在的损失

这种评价方式很容易理解,发生概率大,潜在损失也大的威胁肯定危险等级最高;而发生概率低,潜在损失也低的威胁危险等级最低。发生概率大损失小或者发生概率小损失大的,危险等级就居中。 实际做STRIDE威胁分析时就是用的这种简单评价方式,评价简洁实施容易,但由于评价标准单一,对于有争议的威胁就可能出现大家对危险等级的评级意见不统一。

DREAD威胁评级模型

如何更科学的衡量风险呢?DREAD威胁评级模型

DREAD分别是威胁评级的6个指标的英文首字母。

  • 潜在损失(Damage Potential) 如果缺陷被利用,损失有多大?
  • 0 = 没有损失
  • 5 = 个人用户数据被盗用或影响
  • 10 = 整体的系统或数据破坏
  • 重现性(Reproducibility) 重复产生攻击的难度有多大?
  • 0 = 非常困难或者不可能,即时对于应用管理员
  • 5 = 需要一步或两步,可能需要变成授权用户
  • 10 = 仅仅一个浏览器和地址栏就完成攻击,不需要身份认证
  • 可利用性(Exploitability) 发起攻击的难度有多大?
  • 0 = 高级程序和网络知识,以定制的或高级攻击工具
  • 5 = 互联网上存在恶意软件,此漏洞可被轻易地利用和可用的攻击工具
  • 10 = 仅仅一个web浏览器就可以
  • 受影响的用户(Affected users) 用粗略的百分数表示,多少用户受到影响?
  • 0 = 没有
  • 5 = 一些用户,但不多
  • 10 = 所有用户
  • 可发现性(Discoverability) 缺陷容易发现吗?
  • 0 = 非常困难,甚至不可能; 需要源码或者管理员权限
  • 5 = 可以通过猜测或者监测网络活动来发现
  • 9 = 错误的细节已经在公共平台上披露,可以用搜索引擎轻易发现
  • 10 = 信息在web浏览器的地址栏或者表单里可见。

等级

高(3)

中(2)

低(1)

潜在的损失

Damage Potential

获取完全验证权限,执行管理员操作,非法上传文件

泄露敏感信息

泄露其他信息

重现性

Reproducibility

攻击者可以随意再次攻击

攻击者可以重复攻击,但有时间限制

攻击者很难重复攻击过程

可利用性

Exploitability

初学者短期能掌握攻击方法

熟练的攻击者才能完成这次攻击

漏洞利用条件非常苛刻

受影响用户

Affected users

所有用户,默认配置,关键用户

部分用户,非默认配置

极少数用户,匿名用户

可发现性

Discoverability

漏洞很显眼,攻击条件很容易获得

在私有区域,部分人能看到,需要深入挖掘漏洞

发现漏洞极其困难

这6个指标每个指标的评级分为高中低三等,最终威胁的危险评级由这6个指标的加权平均算出。比如前不久刚爆出的CPU芯片的Meltdown和Spectre漏洞,这个威胁因为是涉及硬件底层的漏洞,所以在其上面运行的任何软件或者系统都可能受到影响,而不像通常的某个软件的漏洞,只针对对应的软件。

所以这个漏洞在“潜在的损失”(Damage Potential)这项评分一定是高,但在“可发现性”(Discoverability)这项评分上就是低,因为这个底层的漏洞非常难发现,需要有非常丰富经验和技术的研究者花很多时间和精力才可能发现的,事实上这个漏洞的确也是存在了很多年一直没有被发现。类似如此对每项指标逐一评级后就能算出最终的危险评分。每项评级的评定标准参考上表。

0x02 CVSS(通用漏洞评分系统)

美国国土安全部(DHS)成立了NIAC漏洞披露工作组,将思科系统,赛门铁克,国际空间站,Qualys(美国一家提供漏洞管理和合规性解决方案的公司), 微软,计算机应急小组,eBay(美国著名购物网站)的数据整合在一起。而这个工作组的一个成果就是 通用漏洞平分系统(CVSS)。
CVSS的优势:

  • 你已经从一个安全研究者或其他来源得知你的产品有漏洞,而且你希望去保证它有一个精确的标准严重等级,所以在发布的时候提醒你的客户进行合适的活动。
  • 你是一个安全研究者,而且在测试应用的时候已经找到几种威胁。你将会用CVSS系统来产生可信赖的风险比率,保证独立软件开发商将依据他们的等级慎重处理漏洞。
  • CVSS已经被工作组推荐给美国政府部门应用。但在此文完成的时候CVSS会成为政策性强制还是被广泛应用还不明确。
    CVSS的局限性:
  • CVSS并没有将攻击范围降低,或者帮助统计任何片段代码,它仅仅是一个评分系统,而不是一个方法论模型。
  • CVSS比STREAD/DREAD更复杂,因为它致力于计算应用于部署的软件和环境因素对其的已宣布的漏洞的风险。
  • CVSS 的风险等级是复杂的——假设CVSS已经将特定漏洞识别了和定义了,一个电子表格是需要去计算这些风险的,或者一个蠕虫或木马已经针对少数攻击向量发布。
  • 计算CVSS的风险等级的上界可能会非常高,如果进行一个彻底的代码审查的话,可能会在250分甚至更高。

0x03 OCTAVE

OCTAVE是源于卡耐基梅隆大学软件工程学院(SEI)与CERT(计算机紧急应急小组)的一个合作项目的重量级风险方法论。OCTAVE关注与企业风险,而非技术风险。OCTAVE有两个版本:完全的OCTAVE,面向大型企业;和OCTAVE-S版本面向小组织,两个版本都有独立的操作,档案,工作项目的文档化输出模型。
OCTAVE在许多站点流行适用:

  • 实现一个企业文化的风险管理和控制变得越来越有必要。
  • 记录并测度商业风险变得越来越及时。
  • 记录并测度整体的IT安全风险,尤其是与之合作方的IT风险,变得越来越必要。
  • 记录风险周边系统环境变得越来越必需;
  • 能够适应根本性的重组,比如当一个公司没有工作风险的管控理论,而需要一个健壮的风险管理框架的时候。
    OCTAVE的局限性:
  • OCTAVE与AS/NZS 4360框架是不相容的,因为它将可能性置为1(即:它假设风险永远会发生)而这对许多企业是不合适的。OCTAVE-S使得这个选项变得可以改变(即可以设为可能性为零点几),但这不是更复杂的OCTAVE的标准。
  • 包含了18个变量,OCTAVE是庞大而复杂的,有许多项目内容和实践工作需要去做。
  • 不提供一系列“盒子外面”的实践,去评估和减轻web应用安全风险。
    因为这些问题,OWASP预期OCTAVE不会被应用设计师或开发者运用,因为它并没有将威胁风险考虑进去,而这在整个开发和所有人员参与者中是很重要的,能够减轻应用风险演变为可攻击的漏洞。

0x04 参考资料

https://blog.csdn.net/qq_29277155/article/details/89947058

https://www.anquanke.com/post/id/161442
https://www.jianshu.com/p/3534c30c0a83

你可能感兴趣的:(网络安全分析,技术译文)