3)威胁建模活动概述
威胁建模主要流程包括五步:确定安全目标、确定建模对象、识别威胁、评估威胁和消减威胁:
◇确定安全目标
清晰的目标可帮助实施者调整威胁建模活动,并确定在后续步骤上花费多少努力。 ◇确定建模对象
确定要保护和评估的对象,了解软件应用的可信任边界之内的所有功能组件。威胁建模中常用“资产”来描述对象,这里资产可能指软件系统本身、信息的可用性、或者信息内容本身,例如客户数据。
◇识别威胁
发现组件或进程存在的威胁。威胁是一种不希望发生、对资产目标有害的事件。从本质上看,威胁是潜在事件,它可能是恶意的,也可能不是恶意的。因此,威胁并不等于漏洞。
◇评估威胁
对威胁进行分析,评估被利用和攻击发生的概率,了解被攻击后资产的受损后果,并计算风险。
◇消减威胁
根据威胁的评估结果,确定是否要消除该威胁以及消减的技术措施。在设计阶段,可以通过重新设计,以直接消除威胁,或设计采用技术手段来消减威胁。在本阶段,应在确定消减威胁手段后继续评估是否可以接受残余的安全风险。
在威胁建模实施过程中,可供参考的一些建议如下:
确保所有的威胁模型符合起码的威胁模型质量要求。所有的威胁模型必须包含数据流程图,资产描述,威胁与漏洞描述、缓解措施。威胁建模可以使用各种不同的方式和工具、文档来定义和创建。
确保威胁模型输出的数据和文件(功能/设计规范要求等)都已经被文档控制系统存储并正确地被软件开发人员所使用。
针对威胁上的每个漏洞形式和缓解措施。建立一个独立的工作小组进行检查和验证。这样可以让质量管理组织确保每个缓解措施都得以真正地实施。
针对所有的威胁模型以及提出的缓解措施,应该由至少一个开发人员,一个测试人员,一个项目经理参与审查并批准。咨询软件架构师、开发人员、测试人员、项目经理、用户或者其他软件相关的人员有助于威胁模型和缓解措施尽可全面。
微软提出使用STRIDE模型来进行威胁建模的实践,STRIDE由Spoofing(假冒)、Tampering(篡改)、Repucliation(否认)、Information Disc,losure(信息泄漏)、Denial of Service(拒绝服务)和Elevatio,,of Privilege(提升权限)的第一个字母组合而成,如下表所