《威胁建模:设计和交付更安全的软件》——3.3 篡改威胁

3.3 篡改威胁

篡改就是修改内容,典型的情景是修改磁盘上、网络上或者内存里的内容,还可以修改电子数据表里的数据(Excel表或者其他编辑程序)、改变二进制数据或者磁盘上配置文件,也可以修改类似磁盘上的数据库这样复杂的数据结构。在网络上,可以添加、修改或者移除数据包。有时添加数据包比修改动态的数据包更容易,而程序安全处理额外的数据副本,是非常不好的。表3-3中给出了更多的篡改示例。

3.3.1 篡改文件
攻击者能修改任何他们有写入权限的文件。当你的代码必须依赖于那些别人有写权限的文件时,就存在文件被恶意修改的可能性。虽然文件篡改最明显的是在本地磁盘上,不过,如果文件可以允许远程共享,就像网上的大部分JavaScript,就会有很多篡改的实现方法。攻击者可通过破坏别人的网站来破坏你的安全性,可以(因为可怜特权、假冒或者权限提升)修改你的文件,还可以修改链接或者重定向,因为链接经常不在完整性检查范围内。如果在你所能控制的(例如服务器)和不能控制的对象(例如网络浏览器)之间有高速缓存时,篡改攻击会有一些微妙的变种。例如,“缓存污染攻击”利用缓存中较弱的安全控制策略,向web缓存中插入数据(OWASP,2009)。
3.3.2 篡改内存
如果攻击者与你有同样的权限,他就能修改代码。那么一切防御手段都没有多大用处。如果你的API句柄通过按引用方式(这是为了速度而经常选择的一种方式)处理数据,那么攻击者可以在你执行安全检查之后修改数据。
3.3.3 篡改网络
网络篡改是指能够将网络数据引到攻击者机器中,然后转发一些完好的数据和一些被修改的数据,篡改方式多种多样。不过,并不需要直接把数据带给你,WiFi和蓝牙的出现,使得越来越多的数据流可以通过空气传输。很多网络协议在最初设计时是需要有特殊的硬件设备才能创建或者读取数据包,对硬件的特殊需求可防止篡改(通常是假冒攻击)。软件无线电(Software-Defined Radio,SDR)的出现悄然改变了对特殊硬件的需求。如今很容易买到物美价廉的SDR单元,对其编程后可篡改无线协议。

时间: 2025-01-21 12:03:45

《威胁建模:设计和交付更安全的软件》——3.3 篡改威胁的相关文章

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

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

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

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

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

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

《威胁建模:设计和交付更安全的软件》——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:假冒.篡改.否认.信息泄露.拒绝服务.权限提升.将这一威胁模型制作成权限提升游戏,给模型添加结构化和提示. 有了示意图,还有一副权限提升游戏牌,软件开发者可以对他们正在构建的软件进行威胁建模,系统管理员可以对他们正在部署的软件或是正在构建的系统进行威胁建模,安全专家可以为那些安全以外的技术领域引入威胁建模. 解