《威胁建模:设计和交付更安全的软件》——第3章 STRIDE方法3.1 理解STRIDE方法及其为何有用

第3章 STRIDE方法

正如你在第1章中学到的,STRIDE是几个单词的首字母缩写:假冒、篡改、否认、信息泄露、拒绝服务、权限提升。此方法是由Loren Kohnfelder和Praerit Garg(Kohnfelder,1999)提出的,STRIDE框架及助记符旨在帮助软件开发人员识别其开发的软件中可能会遭受的各种攻击。
思考威胁的方法有很多不同的标签:寻找威胁、威胁枚举、威胁分析、威胁启发、威胁发现。每一个标签所对应的方法略有不同。如果是问,威胁是存在于软件还是图表中?那么你是在寻找威胁。如果是问,威胁是存在于分析人员头脑中吗?那么你是在分析威胁或启发引出威胁。没有哪种思考威胁的方法最合适或者更好,不过本书笼统地将上述所有这些标签概括为寻找威胁。STRIDE方法更像是启发式方法,希望你或你的团队理解这个框架,并了解如何使用它。如果你还不熟悉STRIDE,本章将会有大量的表格和示例教你如何使用STRIDE方法寻找威胁。
本章将讲述什么是STRIDE,为何这个方法有用,涉及STRIDE的每一部分。本章针对每个类型的威胁都进行了详细分析,并通过翔实的示例图表进行讨论,目的是教会你使用STRIDE寻找威胁。此外,你还能了解到基于STRIDE产生的各种方法:STRIDE-per-element、STRIDE-per-intersaction及DESIST。基于STRIDE的另外一种方法——权限提升游戏,在第1章、第12章及附录C中都会介绍。

3.1 理解STRIDE方法及其为何有用

信息系统的安全属性一般应具有可靠性、完整性、不可否认性、机密性、可用性及授权,而STRIDE威胁种类与上述安全属性恰恰相反。表3-1描述了STRIDE威胁及其破坏的对应的安全属性、定义、典型受害者和示例。

如表3-1所示,“典型受害者”是指最可能受到损害的对象。例如,你可以通过在磁盘上放置或者开启一个同名的程序来假冒另一个程序。也可以在同一台机器上通过非法占用或者拼接来假冒一个端点。也可以通过假冒网站截获用户身份信息进而假冒用户,但前提是用户会再次在网站上使用认证信息,强制登录(他们上线或者下线)或者在他们的机器上提升特权。你也可以篡改验证身份的数据库,然后以伪造的身份信息进行假冒。
在用STRIDE寻找威胁时,你可以简单地列举所有可能出错的地方。如果想了解是什么原因导致了错误,将在以后学习。(实际上,这可以很容易,也可以很有挑战。在适当的位置可能会有防御措施,例如,你会说“有人可以修改管理表”,有人可能说“不,他们不能是因为……”)记录这些可能发生的攻击事件是很有用的,因为,即使有减缓攻击的方法,也需要进一步测试,你需要有测试案例。
有时你会听到STRIDE被称为“STRIDE类别”或者“STRIDE分类法”。这并没什么帮助,因为STRIDE方法的初衷不是用于对威胁进行分类,我们很容易找到一些使用STRIDE并不能分类的威胁。例如,前面我们提到篡改验证数据库然后假冒,你是将它分为篡改威胁还是假冒威胁呢?答案很简单:这根本不重要。如果你已遭受到这种攻击,为何还费力去给它分类呢?STRIDE的目的是帮你寻找威胁。对威胁进行合理分类对找到正确的防御方法有所帮助,但有时是浪费精力。试图用STRIDE方法进行威胁分类会得不偿失,因为分类工作会让人忽略STRIDE方法本身的作用,这就像是倒洗澡水时把孩子也一起倒掉了。

时间: 2024-09-16 07:27:33

《威胁建模:设计和交付更安全的软件》——第3章 STRIDE方法3.1 理解STRIDE方法及其为何有用的相关文章

《威胁建模:设计和交付更安全的软件》——第2章威胁建模策略2.1 “你的威胁模型是什么样?”

第2章威胁建模策略 越早发现问题,越容易解决问题.威胁建模要做的就是发现问题,让你在开发与设计的早期阶段或准备发布操作系统时及时解决问题.威胁建模方法有很多种,有些方法是特定的,就好比模型飞机装备只能用于构建F-14战斗机一样.有些方法则比较通用,例如用乐高模型可以创造很多种东西.但有些威胁建模方法不是很容易融合,就像Erector的模块和乐高模块连接就不合适.本章内容将讲述多种威胁建模策略和方法,每一种都会深入讲解,为更有效地发现威胁做准备. 我们从简单的问题开始,例如询问"你的威胁模型是什么

《威胁建模:设计和交付更安全的软件》——2.2 集体研讨

2.2 集体研讨 集体研讨是列举威胁的最传统方法.召集经验丰富的专家集聚一堂,提供工作环境(白板和鸡尾酒餐巾纸都是很传统的),然后开始讨论威胁.集体研讨结果的质量与专家经验和所用时间有很大关系. 集体研讨分为产生创意.分析.选择创意三个阶段.集体研讨将会发现各种类型的可能发起的攻击.在产生创意阶段,应该禁止批评.如果你想要挖掘所有可能的潜在威胁,批评气氛会起到阻碍作用.可由一名会议主持人来不断推动研讨过程. 集体研讨的时候,关键是要有威胁建模技术方面的专家参与.不然,很容易陷入对威胁建模本身不能

《威胁建模:设计和交付更安全的软件》——第1章 潜心开始威胁建模1.1 学习威胁建模

第1章 潜心开始威胁建模 谁都可以学习威胁建模,更进一步说,每个人都应该学习威胁建模.威胁建模是利用模型来发现安全问题,这意味着通过提取大量细节对安全问题进行全面检查,而不是代码本身.之所以要构建模型,是因为模型能让你在没构建系统之前即可发现问题,以及在问题出现前提早发现问题.最后,威胁模型可以预见可能侵袭你的威胁. 首先,威胁建模是一门实用科学,本章系统地描述其实用性.尽管本书为你提供了很多有价值的定义.理论.观点.有效的方法和技术,但你还是希望能将这些用于实践.因此,本章内容主要从实践经验展

《威胁建模:设计和交付更安全的软件》——2.4 软件模型

2.4 软件模型 建立清晰的软件模型有助于寻找威胁,否则你会陷入到软件功能正确与否的细节中.图表是软件建模的最佳方法. 正如你在第1章学习到的内容,在白板上绘制图表是开始威胁建模非常有效的方法,但是当一个系统特别复杂,在白板上绘制或重新绘制模型就变得不可行了.这时,你要么简化系统要么使用计算机化的方法. 本章,你能学习到各种图表,在威胁建模时如何使用各种图表.如何处理大型系统威胁建模的复杂性.你也能学到信任边界.有效标签,以及如何验证图表等更多细节内容.2.4.1 图表类型 做图表有很多方法,不

《威胁建模:设计和交付更安全的软件》——1.2 独立威胁建模

1.2 独立威胁建模 你已经初步了解威胁建模,恭喜你!不过要记住:不反复练习的话是无法到达去卡内基音乐大厅表演的水平.这就意味着你要再来一次,这回你独立完成,因为再做一次才能做得更好.选择一个系统,然后对其威胁建模.按照下面简化的五步进行: 1.画示意图 2.用EoP游戏寻找威胁 3.用一些方法来解决每个威胁 4.用本章末尾的检查表来检查工作 5.庆祝和分享你的工作 现在,如果你仍对威胁建模生疏,最好的办法是经常练习,应用于对你来说重要的软件和系统.威胁建模一些系统后,你会发现运用这些工具和技术

《威胁建模:设计和交付更安全的软件》——第二部分 发 现 威 胁

第二部分 Part 2 发 现 威 胁 第3章 STRIDE方法 第4章 攻击树 第5章 攻击库 第6章 隐私工具 威胁建模的核心是威胁. 发现威胁有多种方法,这些方法就是第二部分的主要内容.每种威胁发现方法都各有优缺点,不同情况下可以使用不同的方法.本部分介绍的每种方法都可以看作一个乐高积木,在四步框架的第二步中,你可以用一种方法替代另一种方法. 威胁建模方法与其他建模方法最大的不同是,它关注哪些方面可能出现安全问题.本部分中提供的模型,通过将威胁抽象化,来进一步帮助你思考这些安全问题.模型(

《威胁建模:设计和交付更安全的软件》——3.11 小结

3.11 小结 对所有技术系统来说,STRIDE方法都有助于寻找威胁.能让这种方法更为有帮助的是一整套更为详尽的威胁,威胁表格可为信息安全领域新手提供帮助,或者作为安全专家的参考资料(附录B也有这样的功能).STRIDE的变种方法可突出威胁发现重点和注意事项.由此,STRIDE-per-element方法是非常有用的,它可以按照你的需求定制.如果威胁建模专家想要从头开始学习威胁建模,或许DESIST可能会让我们做得更好--并在寻找威胁上有所突破.

《威胁建模:设计和交付更安全的软件》——3.9 STRIDE变种

3.9 STRIDE变种 在发现威胁中,STRIDE是非常有用的助记符,不过它也不是完美无缺的.在这一部分内容中,你会学到STRIDE的一些变种,以期能帮助弥补其部分弱点.3.9.1 STRIDE-per-Element 对图表中的某些元素来说,所对应的威胁很普遍,而STRIDE-per-Element方法就是使得STRIDE方法更加规范.例如,一个数据存储区不太可能去假冒别的数据存储区(尽管运行代码可能对它正在访问哪个数据库而感到迷惑).通过关注对每个元素的一系列威胁,该方法就能更容易地找到威

《威胁建模:设计和交付更安全的软件》——2.5 小结

2.5 小结 威胁建模的方法不止一种,可以采用资产建模.攻击者建模或软件建模."你的威胁模型是什么"和集体研讨方法,适用于安全专家,但是对没什么经验的威胁建模者来说,结构化不足.集体研讨有一些更为系统化的方法,包括场景分析.事前剖析.电影情节回放.文献检索,可以增添一些框架结构,但还不是最好的. 如果是从资产开始威胁建模,相互重叠的术语定义,包括攻击者想要的.你想保护的和垫脚石等,可能会让你寸步难行.资产会在哪里出问题,在以资产为中心的方法中没有提供相应的解决路径. 攻击者建模也是很有

《威胁建模:设计和交付更安全的软件》——1.4 小结

1.4 小结 每个技术专业人士都可学习威胁建模.威胁建模包含两个模型的交集:一种是可能出错的模型(威胁),应用于你所构建或部署的软件模型,在简图中是已编码的:另一种是威胁模型STRIDE:假冒.篡改.否认.信息泄露.拒绝服务.权限提升.将这一威胁模型制作成权限提升游戏,给模型添加结构化和提示. 有了示意图,还有一副权限提升游戏牌,软件开发者可以对他们正在构建的软件进行威胁建模,系统管理员可以对他们正在部署的软件或是正在构建的系统进行威胁建模,安全专家可以为那些安全以外的技术领域引入威胁建模. 解