威胁建模是一个严格的过程,旨在在设计的早期阶段识别和纠正潜在的产品漏洞。您创建的威胁模型描述了您的产品组件如何与用户一起工作,并列举了潜在的威胁和减轻这些威胁的对策。理想情况下,您会希望在设计过程的早期对每个系统进行威胁建模,此时可以以比产品完成时低得多的成本进行更改。威胁建模是安全开发生命周期 (SDL) 计划的重要组成部分,可确保您的组件、系统和代码在设计上得到适当保护。威胁建模是软件开发人员和信息技术系统工程师和架构师的一项重要工作。即使您没有构建您运行的系统,定期进行威胁建模练习会迫使您像攻击者一样思考,并会激发提高产品安全性的想法。当然,只要对系统进行重大更改,请务必更新现有的威胁模型。
威胁建模的核心是记录系统设计元素的过程,特别是从攻击者的角度来看对这些元素的威胁。该过程涉及了解系统的组件和用户、这些组件和用户之间的界限,以及攻击者可能喜欢的攻击路径或威胁向量。这种观点可帮助您采用基于风险的方法来设计减轻这些威胁的正确保护措施和对策。例如,威胁模型将突出显示连接敏感数据存储与公共 Web 服务器相邻的风险,并指导选择适当的逻辑安全控制以将风险降低到可接受的水平。
威胁模型方法
即使互联网在 20 世纪 90 年代初开始兴起,研究人员和科学家也已经开始考虑威胁建模。攻击树和威胁树的早期模型是通过枚举系统漏洞并系统地检查攻击者可能破坏系统的所有方式而开发的。随着 Internet 的扩展和利用漏洞成为日常问题,许多公司寻求在其产品的核心中构建更好的安全性。例如,Microsoft 开发了 STRIDE 威胁模型,该模型成为其自身安全开发生命周期的重要组成部分。STRIDE 是一个系统的过程,用于发现潜在威胁并建议针对六个潜在威胁类别的缓解措施:
欺骗
篡改
否认
信息披露
拒绝服务
特权提升
还有其他类型的威胁模型方法论,原理都是类似的。重要的是问问自己可能出了什么问题,然后将这些潜在威胁分类以帮助您考虑适当的对策的过程。例如,您可能将敏感数据通过 HTTP 传输到远程系统视为潜在的信息泄露威胁,可以通过加密网络流量来缓解这种威胁。
数据流程图
威胁建模的基本要素是数据流图 (DFD),其中包括系统的所有重要组件及其交互。该图显示了所有关键组件和系统——无论它们分布在本地和云基础设施中,还是驻留在一台服务器上或单个应用程序中。DFD 中的方法和详细程度取决于您的设计。例如,如果您要在网络上部署新的摄像机,您可能无法对摄像机软件本身进行威胁建模,但您应该确定摄像机需要与之通信的所有周围系统、它使用的协议以及谁将访问它。请务必将此信息包含在您的 DFD 中。希望相机制造商也对他们的视频软件的开发进行威胁建模。例如,他们的软件威胁模型可能会识别软件用来隔离敏感数据并与其他对象和系统通信的内部边界、对象和方法。DFD 应显示对象及其对其他对象的请求和响应,并清楚地划定不同对象组之间的边界。例如,您可能会显示前端网络应用系统和更敏感的数据存储之间的逻辑边界。将您系统的用户,特别是可能滥用您系统的参与者(或威胁代理)添加到您的 DFD 中。例如,在为您的系统建模授权流程时,将特权操作员与定期获得证书的员工区分开来。识别您的 DFD 中潜在的不良行为者并展示他们可能如何访问您的系统。软件用来隔离敏感数据并与其他对象和系统通信的方法。DFD 应显示对象及其对其他对象的请求和响应,并清楚地划定不同对象组之间的边界。例如,您可能会显示前端网络应用系统和更敏感的数据存储之间的逻辑边界。将您系统的用户,特别是可能滥用您系统的参与者(或威胁代理)添加到您的 DFD 中。例如,在为您的系统建模授权流程时,将特权操作员与定期获得证书的员工区分开来。识别您的 DFD 中潜在的不良行为者并展示他们可能如何访问您的系统。软件用来隔离敏感数据并与其他对象和系统通信的方法。DFD 应显示对象及其对其他对象的请求和响应,并清楚地划定不同对象组之间的边界。例如,您可能会显示前端网络应用系统和更敏感的数据存储之间的逻辑边界。将您系统的用户,特别是可能滥用您系统的参与者(或威胁代理)添加到您的 DFD 中。例如,在为您的系统建模授权流程时,将特权操作员与定期获得证书的员工区分开来。识别您的 DFD 中潜在的不良行为者并展示他们可能如何访问您的系统。DFD 应显示对象及其对其他对象的请求和响应,并清楚地划定不同对象组之间的边界。例如,您可能会显示前端网络应用系统和更敏感的数据存储之间的逻辑边界。将您系统的用户,特别是可能滥用您系统的参与者(或威胁代理)添加到您的 DFD 中。例如,在为您的系统建模授权流程时,将特权操作员与定期获得证书的员工区分开来。识别您的 DFD 中潜在的不良行为者并展示他们可能如何访问您的系统。DFD 应显示对象及其对其他对象的请求和响应,并清楚地划定不同对象组之间的边界。例如,您可能会显示前端网络应用系统和更敏感的数据存储之间的逻辑边界。将您系统的用户,特别是可能滥用您系统的参与者(或威胁代理)添加到您的 DFD 中。例如,在为您的系统建模授权流程时,将特权操作员与定期获得证书的员工区分开来。识别您的 DFD 中潜在的不良行为者并展示他们可能如何访问您的系统。将您系统的用户,特别是可能滥用您系统的参与者(或威胁代理)添加到您的 DFD 中。例如,在为您的系统建模授权流程时,将特权操作员与定期获得证书的员工区分开来。识别您的 DFD 中潜在的不良行为者并展示他们可能如何访问您的系统。将您系统的用户,特别是可能滥用您系统的参与者(或威胁代理)添加到您的 DFD 中。例如,在为您的系统建模授权流程时,将特权操作员与定期获得证书的员工区分开来。识别您的 DFD 中潜在的不良行为者并展示他们可能如何访问您的系统。
通过确定信任边界、跨越这些边界的通信以及构成这些通信的人员和内容的 DFD,您可以开始查看对系统的潜在威胁。
威胁建模工具
如果您不熟悉威胁建模,那么识别正确的威胁可能会让人不知所措。幸运的是,有多种威胁建模工具可用于指导您完成此过程并帮助确定要查找的威胁类型。一种免费且易于使用的工具是 Microsoft 威胁建模工具。虽然此工具面向软件开发人员和架构师,但它也可以针对基本 IT 运营模型进行扩展。Microsoft 威胁建模工具在尝试快速掌握威胁建模的基础知识时特别有用。下载并安装客户端,您将在几分钟内创建您的第一个威胁模型。按照以下步骤使用 Microsoft 威胁建模工具创建威胁模型:
通过拖放各种组件(例如数据库、主机或移动客户端)并将它们与数据流操作链接起来,使用图形界面创建 DFD。
套索对象以创建各种边界。边界示例包括物联网 (IoT) 设备区域、Azure 信任边界和远程用户区域。
自定义这些对象以反映您自己的环境。例如,将数据存储对象属性设置为您使用的特定 SQL 版本。
完成后,您可以运行报告,该工具将使用这些对象、属性和边界来生成并向您显示初步的威胁列表和建议的缓解措施。您将需要验证其假设并调整威胁模型以将其改进为您的环境和特定用例。
还有许多其他针对特定类型的操作模型量身定制的强大的商业和社区威胁建模工具。例如,一种工具可能与敏捷软件开发过程集成得特别好,而另一种工具可能擅长对传统信息技术系统进行建模,例如调出特定的防火墙和入侵检测系统及其配置。其中一些工具执行复杂的攻击模拟,并托管在基于权限的协作 Web 平台上,该平台使您可以轻松地在团队成员之间共享威胁建模数据。
结论
威胁建模是一个直接的过程,用于识别您的系统、系统可能出现的问题以及如何预防。然而,创建一个好的威胁模型有很多细微差别,你会希望确保你自己的过程捕获正确的数据,这样你就不会错过任何重要的事情。威胁建模工具在帮助提供此框架方面大有帮助。请记住利用 Internet 上的许多威胁建模资源来帮助您设计和构建非常适合您自己环境的流程。
审核编辑hhy
-
建模
+关注
关注
1文章
299浏览量
60731 -
IOT
+关注
关注
186文章
4174浏览量
196170
发布评论请先 登录
相关推荐
评论