9.2.1  威胁建模的定义

9.2.1 威胁建模的定义

威胁建模是一项工程技术,可以用来确定应用程序存在的威胁、攻击、漏洞和对策。威胁建模活动可以帮助研发人员确定安全目标,识别相关威胁,确定相关漏洞和对策。

威胁建模是为了解不同威胁如何成功破坏系统的方法。如果我们要保卫我们工作的大楼免受恐怖分子袭击,那么就应该演练一下恐怖分子最有可能用哪几种方式袭击,这样才能充分了解如何保护大楼和大楼内的人。设想恐怖分子有可能在大楼里放置炸弹,就应该在每个入口点放置屏障。如果想到有人会开车闯进大楼,那就可以在大楼的出入口设置立柱。如果想到恐怖分子会进入设施内的敏感地带(如数据中心、领导办公室),那就应该多设置几层门禁。在软件开发的设计阶段也应该进行这种演练。正如想象恐怖分子可能如何进出大楼那样,设计团队也应该想一下潜在的恶意活动在系统的不同输入、输出点如何发生,以及在系统内部能实施什么样的破坏。

威胁建模过程的输出是一份提供给项目组各个成员的文档。它使这些成员可以清楚地理解需要解决的威胁问题以及如何解决威胁问题。威胁模型由应用程序体系结构和定义、已识别的威胁和威胁特性组成,如图9-2所示。

978-7-111-51949-2-Part03-2.jpg

图9-2 威胁模型的组件

研发团队可以采用画威胁树的方式来进行威胁分析。威胁树可以让开发人员了解特定威胁实现的方式,有助于分析出应该采用哪些安全控制措施,从而消除与每种威胁相关的风险。目前,威胁建模和其他安全工程活动可以通过设计和开发工具来支持,例如微软的“安全性开发生命周期(SDL)威胁建模工具”等。