威胁建模,是一种基本的安全实践,是一个分析和解决问题的结构化方法,用来识别、量化并应对威胁,利用抽象的方法来帮助思考风险。安全人员通过威胁建模来体现安全漏洞的潜在破坏力,然后交付防范或减轻系统威胁的对策,并按轻重缓急实施补救措施。
威胁建模方法论众多,知名的STRIDE、PASTA、Attack Trees、TRIKE、OCTAVE、VAST等。介绍威胁建模的文章也多,但详细介绍VAST方法的很少,本文将重点介绍VAST威胁建模方法。
VAST ( Visual, Agile, and Simple Threat )可视化、敏捷和简单威胁建模,是一个可扩展的建模过程,用于在整个软件开发生命周期中进行安全规划。VAST方法是在反思回顾了其他威胁建模方法固有的缺点和实施挑战后构思出来的,基本原则是:为了有效,威胁建模必须贯穿整个基础架构和 DevOps 体系,无缝集成到敏捷环境中,并为开发人员、安全团队和高级管理人员等提供可操作、准确和一致的输出。VAST是唯一一种使用敏捷DevOps原则创建的威胁建模方法,用于支持可伸缩性和可持续性企业开发流程,知名的自动化威胁建模平台ThreatModeler便是采用的VAST模型。
考虑到开发团队、基础架构团队在实际运营和关注方面的差异,VAST需要创建两种类型的模型:应用程序威胁模型(Application Threat Models)和运营威胁模型(Operational Threat Model)。
VAST 使用过程流程图(PFD,Process Flow Diagrams)以易于理解的方式说明威胁、资产、漏洞和响应补救措施,下图说明了威胁、漏洞、潜资产和响应能力之间的联系:
应用程序威胁模型(ATM)
开发团队的应用程序威胁模型是使用过程流程图(PFD,Process Flow Diagrams)创建的。PFD映射应用程序的功能和通信,其方式与开发人员和架构师在SDLC设计会话中思考应用程序的方式大致相同。VAST方法中的过程流程图(PFD)与传统的数据流图(DFD)相似,但前者更加精简,并且侧重于用户和执行代码在系统中的移动方式,更紧密地反映了攻击者的思维方式。通过依赖 PFD ,VAST 威胁模型不需要广泛的系统专业知识便可上手,如下图。
ATM应仅关注为其创建的应用程序,主要目的是:
1.确定与该应用程序相关的威胁(如OWASP Top 10 等);
2.从创建过程流程图(PFD)开始,要关注开发人员需要如何解决这些威胁。
PFD 允许开发人员、安全专业人员和其他利益相关者构建和修改威胁模型作为功能图,根据开发人员对编码过程的思考,可对应用程序进行可视化分解。即使没有技术安全专业知识,PFD 对开发人员来说也是清晰易懂的,因为它们与敏捷开发方法论相辅相成。这有助于减少安全团队和开发人员之间的来回沟通,从而提高项目效率和工作效率。
运营威胁模型(OTM)
运营威胁模型是为基础架构团队设计的,其关注点在基础架构级别(服务器、数据库、负载均衡和其他基础架构组件)上,OTM可帮助基础架构团队减轻业务基础架构中的固有威胁,同时与业务战略保持一致。OTM使企业能够可视化其基础架构风险,并增强关键利益相关者对完整攻击面的理解。通过利用OTM,企业领导者可以规划和优先考虑基础设施风险缓解策略。
OTM的第一步是识别运行环境,包括共享组件(如SSO 服务器、加密服务器、数据库服务器等),接下来,每个组件的属性都将被附加上潜在威胁。例如,具有不受限制的管理员访问权限或大量机密数据的数据库可能比其他数据库具有更多的潜在威胁。最后,可以系统地识别内部和外部的潜在威胁和已知常见漏洞 ,并列举相关的安全控制。
VAST必须依靠三大关键能力来实现可扩展的解决方案:自动化、集成和协作,这也是VAST的核心思想。
自动化(Automation)
自动化提升效率、减少重复工作,这使得威胁建模过程能够持续进行,可以在设计、实施和部署后定期评估威胁。它还允许扩展威胁建模以涵盖整个企业,确保在整个过程中识别、评估威胁并确定其优先级。
可集成(Integration)
威胁建模过程必须与SDLC中使用的工具集成,以提供一致的评估结果。这些工具包括一些列支持敏捷软件开发框架的工具、平台,该框架强调适应性规划和持续改进。通过敏捷SDLC,大型项目被分解为短期目标,在两周的短周期内冲刺完成。对于支持敏捷DevOps的威胁建模方法,威胁模型本身必须是敏捷的,支持短期sprint结构,并在持续改进和迭代的环境中进行威胁建模。
协作(Collaboration)
企业范围内的威胁建模系统需要关键利益相关者的支持,包括软件开发人员、系统架构师、安全经理和整个组织的高级管理人员。可扩展的威胁建模要求以上相关人员进行协作,使用不同技能、视角、知识、权限来评估威胁并确定缓解措施的优先级。没有协作,就不可能实现企业范围的全局威胁建模。另一方面,协作有助于公司扩展威胁建模活动,以涵盖SDLC的所有阶段,并通过更深入地了解整个企业的安全风险现状,来应对新的威胁。
合适自己的才是最好的,如何选择合适的威胁建模模型?
STRIDE 威胁建模,以开发人员为中心,SDL中的一个环节
PASTA 威胁建模,以风险为中心,是一个攻击模拟和威胁分析的过程
Attack Trees 威胁建模,以攻击方法中心,多与其它方法共用
VAST 威胁建模,专注于企业组织,可视化、简单、敏捷的建模方式