专栏名称: 默安科技
引领下一代企业安全体系——开发安全(DevSecOps)与运营安全(AISecOps)双轮驱动。
目录
相关文章推荐
上海市司法局  ·  依靠AI生成的内容,能够随心使用吗? ·  23 小时前  
阜阳新闻综合频道  ·  歌手周深,传来喜讯! ·  2 天前  
阜阳新闻综合频道  ·  歌手周深,传来喜讯! ·  2 天前  
最高人民检察院  ·  扛起“家本故里”的职责使命 ·  2 天前  
最高人民检察院  ·  第九届全国检察“三微”优秀作品展播|微电影: ... ·  3 天前  
51好读  ›  专栏  ›  默安科技

5分钟看完安全开发大讲堂之“威胁建模”

默安科技  · 公众号  ·  · 2020-03-31 17:14

正文


错过了上周五“威胁建模”的直播?

不要紧, 勤奋的小默为大家整理了

2000字的内容小结

想5分钟看完的童鞋

可跳过80分钟的录播 。。

你要的精华都在这儿了

安全开发大讲堂第三课 《威胁建模》

直播回看:


一、软件可能面临哪些安全风险?


  • 系统软件本身的安全问题

  • 应用软件开发过程中出现漏洞

  • 直接使用第三方代码的安全问题

  • 新技术的出现


二、安全开发的常见模型有哪些?


  • SDL:安全开发生命周期

  • BSI:内建安全

  • BSIMM:软件安全构建成熟度模型

  • SAMM:软件保障成熟度模型

  • CLASP:综合的轻量应用安全过程


课程中展开介绍了SDL、BSIMM、SAMM。


SDL


在微软定义的SDL中,威胁建模属于设计阶段,安全设计是从安全性的角度定义软件的总体结构。通过分析攻击面,设计相应的功能和策略,降低并减少不必要的安全风险。同时通过威胁建模,分析软件或系统的安全威胁,提出缓解措施。


BSIMM



点开看大图

在BSIMM模型中 威胁建模 属于架构分析(AA)阶段。根据右下图BISMM10记分卡对金融、医疗、保险三大行业的软件安全开发水平统计数据可以看出,架构分析、 攻击模型等 是这三个行业普遍薄弱的模块。


SAMM


SAMM从企业组织与软件开发的核心活动开始,规定了5个软件开发过程中的核心业务功能,包括治理、设计、实施、验证、操作。其中设计关注软件安全开发中的需求、目标和架构方面的过程、活动和措施。主要包括威胁建模、安全要求和安全架构三个方面的实践。


三、什么是 威胁建模 ?


网络安全的本质是攻防双方的对抗与博弈。攻击方往往凭借天赋、脑洞和个人兴趣发起五花八门的攻击活动,执行单点式攻击;但是防御方却要防住所有,全靠脑洞不讲究方法就难免会有疏漏。因此防御方需要有方法论的指导。 威胁建模就是其中一种方法论。


那什么是威胁建模?简单来说,威胁建模就是通过结构化的方法,系统地识别、评估产品的安全风险和威胁,并针对这些风险、威胁制定消减措施的一个过程。在此过程中,可以识别、枚举潜在威胁,并确定缓解的优先级。同时,可以回答例如“我最容易受到攻击的地方是哪里”、“我该怎么做才能抵御这些威胁?”这样的问题。


常见的威胁建模方法有以下四种,分别是STRIDE、PASTA、Trike、VAST。以上4个方法主要分为2个类型,分别是基于数据流程图和基于过程流程图。


STRIDE、PASTA和Trike都利用数据流程图(DFD)开发了应用程序基础结构的可视表示。传统上,DFD仅使用四个唯一的符号:数据流,数据存储,进程和交互器。在2000年代初期,增加了一个附加符号,即信任边界,以允许将DFD用于威胁建模。


VAST区分了应用程序威胁模型(ATM)和运营或基础架构威胁模型(OTM),一旦构建了ATM或OTM,该方法将指定如何识别,枚举,划分优先级并将其与相关风险和缓解安全控制措施相关联。


下面简要介绍基于STRIDE数据流程图的微软威胁建模模型。


微软的威胁建模


1. 整体模型

微软威胁建模模型


说起微软的威胁建模,可以追溯到本世纪初,2004年微软从流程管理、技术措施、人员组织和考量指标四个方面清晰地定义了威胁建模能力,包括1个流程、2个模型、1个支撑工具、多名角色定义及多个评价指标。


2. 工具

微软威胁建模工具界面


2008年11月,微软宣布安全开发生命周期(SDL)威胁建模工具的通用版本,并提供免费下载。工具的发布是微软威胁建模发展的关键点。将威胁建模能力工具化。从2008年至2020年,历经12年的时间,威胁建模的方法论基本没有更新。在2016年,微软对威胁建模工具进行了扩展性更新,包括模版编辑等。目前最新的版本是TMT7,于2020年2月发布。


3. 流程管理

微软威胁建模流程


该流程就是上图“微软威胁建模模型”中“流程管理”部分的详细步骤。简单说,是在威胁建模软件上绘制业务数据流程图,然后采用STRIDE模型进行威胁识别和利用DREAD模型完成威胁评价。


(1) 绘制业务数据流程图

其中标识资源、创建结构、分解程序这三部分主要用于:

  • 了解软件信息,包括需要保护的数据、功能架构、使用技术、数据走向、特权代码和信任边界等;

  • 在对软件具有一定认知后,完成数据流程图的绘制。同时为后续威胁识别做铺垫。


(2)识别威胁

绘制数据流程图后,进入威胁识别过程。最为大众所熟悉的威胁识别方法是STRIDE,它从攻击者的角度,把威胁划分成 6 个类别,分别是 Spoof ing (欺骗)、Tampering(篡改)、Repudiation(抵赖)、Information Disclosure(信息泄露)、DoS(拒绝服务) 和 Elevation of Privilege (特权提升)。


软件开发4个元素分别对应的威胁类型


STRIDE威胁建模方法已经明确了每个数据流图元素具有不同的威胁,具体可以对照表格进行威胁识别。数据存储中 Repudiation(抵赖)是红色,表示只有存储的数据是审计类日志才会有抵赖的风险,存储其它数据时无抵赖。


(3)记录威胁

当分析完数据流图中的所有对象的潜在威胁后,要输出一个威胁列表,记录列表举例如下:

威胁列表中不仅需要有具体的威胁信息还应具备缓解措施,同时,在提出缓解措施时,也要考虑软件的易用性。


(4)威胁评价

针对发现的威胁,采用DREAD模型对其进行评级,用来作为解决或管理威胁的参考。DREAD分别是6个指标的英文首字母:

  • 潜在损失(Damage Potential):如果缺陷被利用,损失有多大?

  • 重现性(Reproducibility) :重复产生攻击的难度有多大?

  • 可利用性(Exploitability) :发起攻击的难度有多大?

  • 受影响用户(Affected Users):用粗略的百分数表示,有多少用户受到影响?

  • 可发现性(Discoverability) :缺陷容易发现吗?

这6个指标每个指标的评级分为高中低三等,最终威胁的危险评级由这6个指标的加权平均算出。

DREAD模型下的威胁评价参考标准

微软的威胁建模到这里就告一段落。具体人员部分没有展开讲是因为每个组织的架构各不相同,无法一概而论。

其它威胁识别模型(除STRIDE外)


威胁建模的重点是威胁识别。除STRIDE外,常见的威胁识别模型还有攻击树和攻击库(较为流行的攻击库由CAPEC组织发布)两种。模型细节可以通过查阅课程PPT或自行学习。


实际操作中,威胁识别可采用多方式组合的方法进行威胁发现,例如,基于CAPEC攻击库,结合攻防用例绘制基于业务场景的攻击树,再用STRIDE去补充攻击树的缺陷等。具体威胁识别模型的使用,各位可在实际操作中进行探索、选择。

四、学习资料


课程结尾,讲师推荐了 18款威胁建模工具 威胁建模学习资料 的推荐,有兴趣了解的小伙伴可在“默安科技” 公众号后台 回复“直播” ,直接获取PPT下载链接。




安全开发大讲堂第四课

《默安DevSecOps落地实况》

直播预告:


本周五(4月3日)下午4点 准时开播!想听的同学们直接扫描下方海报底部二维码,添加小默微信,进入微信群后获取直播链接。
参与 每场直播结束时的问答环节,更有机会获得默安内部限量发行的 《上医治未病 企业安全开发体系(SDL)建设指南》 书籍一本!









请到「今天看啥」查看全文


推荐文章
上海市司法局  ·  依靠AI生成的内容,能够随心使用吗?
23 小时前
阜阳新闻综合频道  ·  歌手周深,传来喜讯!
2 天前
阜阳新闻综合频道  ·  歌手周深,传来喜讯!
2 天前
最高人民检察院  ·  扛起“家本故里”的职责使命
2 天前
国家人文历史  ·  军事|决定大唐帝国气运的陌刀
8 年前
CEO智库  ·  央视曝光,家里有LED灯的都看看
7 年前