软件开发安全之道:概念、设计与实施
上QQ阅读APP看书,第一时间看更新

2.2 4个问题

很多年来,在微软公司执掌安全建模的专家亚当·肖斯塔克(Adam Shostack)针对安全建模总结了下列4个问题。

我们的工作是什么?

哪里有可能出错?

我们打算怎么办?

我们干得怎么样?

第一个问题旨在建立项目的背景和范围。回答这个问题需要描述清楚项目需求和设计方案、项目的各个组件和它们之间的互操作,以及对操作方面的问题和用例的考虑。第二个问题是这种方法的核心,旨在尽可能地判断有可能发生的问题。第三个问题则旨在设法缓解我们发现的问题(本书第3章会进一步探讨降低风险的措施,但是我们会首先搞清楚它们与威胁之间的关系)。第四个问题则旨在让我们对整个流程发问——软件承担了什么工作、软件可能产生什么问题,以及我们在应对这些威胁的时候发挥得如何?这些内容都是为了评估危机在多大程度上得到了缓解,同时确认系统目前已经足够安全了。如果还有问题没有得到解决,我们就可以再次考虑上述问题,以便解决遗留的问题。

威胁建模当然远不止于此,但通过上述4个问题可以大幅度简化威胁建模的工作。借助这些概念,结合本书中介绍的其他理念和方法,我们就可以让自己搭建和运维的系统在安全性方面获得大幅提升。