错过了上周五“威胁建模”的直播?
不要紧,勤奋的小默为大家整理了
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 个类别,分别是 Spoofing(欺骗)、Tampering(篡改)、Repudiation(抵赖)、Information Disclosure(信息泄露)、DoS(拒绝服务) 和 Elevation of Privilege (特权提升)。
软件开发4个元素分别对应的威胁类型
STRIDE威胁建模方法已经明确了每个数据流图元素具有不同的威胁,具体可以对照表格进行威胁识别。数据存储中 Repudiation(抵赖)是红色,表示只有存储的数据是审计类日志才会有抵赖的风险,存储其它数据时无抵赖。
(3)记录威胁
当分析完数据流图中的所有对象的潜在威胁后,要输出一个威胁列表,记录列表举例如下:
威胁列表中不仅需要有具体的威胁信息还应具备缓解措施,同时,在提出缓解措施时,也要考虑软件的易用性。
(4)威胁评价
针对发现的威胁,采用DREAD模型对其进行评级,用来作为解决或管理威胁的参考。DREAD分别是5个指标的英文首字母:
潜在损失(Damage Potential):如果缺陷被利用,损失有多大?
重现性(Reproducibility) :重复产生攻击的难度有多大?
可利用性(Exploitability) :发起攻击的难度有多大?受影响用户(Affected Users):用粗略的百分数表示,有多少用户受到影响?
可发现性(Discoverability) :缺陷容易发现吗?
每个指标的评级分为高中低三等,最终威胁的危险评级由这5个指标的加权平均算出。
DREAD模型下的威胁评价参考标准
微软的威胁建模到这里就告一段落。具体人员部分没有展开讲是因为每个组织的架构各不相同,无法一概而论。
其它威胁识别模型(除STRIDE外)
威胁建模的重点是威胁识别。除STRIDE外,常见的威胁识别模型还有攻击树和攻击库(较为流行的攻击库由CAPEC组织发布)两种。模型细节可以通过查阅课程PPT或自行学习。
实际操作中,威胁识别可采用多方式组合的方法进行威胁发现,例如,基于CAPEC攻击库,结合攻防用例绘制基于业务场景的攻击树,再用STRIDE去补充攻击树的缺陷等。具体威胁识别模型的使用,各位可在实际操作中进行探索、选择。
四、学习资料
课程结尾,讲师推荐了18款威胁建模工具和威胁建模学习资料的推荐,有兴趣了解的小伙伴可在“默安科技”公众号后台回复“直播”,直接获取PPT下载链接。
安全开发大讲堂第四课
《默安DevSecOps落地实况》
直播预告:
本周五(4月3日)下午4点准时开播!想听的同学们直接扫描下方海报底部二维码,添加小默微信,进入微信群后获取直播链接。参与每场直播结束时的问答环节,更有机会获得默安内部限量发行的《上医治未病 企业安全开发体系(SDL)建设指南》书籍一本!
来源:freebuf.com 2020-04-01 17:04:18 by: 默安科技
请登录后发表评论
注册