信息安全原理与实践-第二版12-软件中的安全课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《信息安全原理与实践-第二版12-软件中的安全课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信息 安全 原理 实践 第二 12 软件 中的 课件
- 资源描述:
-
1、1美Mark Stamp著Information Security:Principles and Practice,2nd Edition张 戈译第12章 软件中的安全212.1 引言本章主要内容:软件逆向工程 数字版权管理 软件开发312.2 软件逆向工程软件逆向工程有时也被称为逆向代码工程,或者简称为逆向工程。用途有好有坏。好的用途包括理解恶意代码或是对以往的遗留代码进行分析。不那么好的用途包括移除对于软件的使用限制、查找和利用软件缺陷、在游戏中实施欺诈活动、破解DRM系统以及许许多多其他类型的针对软件的攻击。基本的逆向工程工具包括反汇编器(disassembler)和调试器(debugg
2、er)。反汇编器能够将可执行文件转换为汇编代码,这种转换属于尽力而为型,但是反汇编器并不能确保总是正确地反汇编出汇编代码。调试器用来设置程序中断点,据此Trudy就可以在程序运行时一步步地跟踪代码的执行过程。对于任何有一定复杂度的程序而言,调试器都是理解代码的必备工具。比如OllyDbg。IDA Pro是一款强大的反汇编器和调试器412.2.1 Java字节码逆向工程当你编译Java的源代码时,会将其转换成字节码,之后字节码再被Java虚拟机(Java Virtual Machine,JVM)执行。有一些工具就可以用于将Java字节码转换成Java源程序代码,而且得到的源程序代码很可能与原始的
3、源程序代码非常相似。512.2.2 SRE示例攻击者Trudy不知道序列号,当她给出(错误的)猜测时,得到的结果如图12-1中所示:Trudy决定她首先要做的第一件事就是对serial.exe实施反汇编。图12-2中给出了一小部分使用IDA Rro反汇编的结果。6在图12-2中,地址显示为0 x401022的一行表明正确的序列号是S123N456。于是Trudy尝试使用这个序列号并且发现确实是正确的,这从图12-3中就可以看出来。Trudy想要对这个可执行文件serial.exe进行修补,以便她不再需要记录这个序列号。接下来Trudy对这个exe文件(以十六进制表示的形式)在地址0 x4010
4、30处的二进制位进行检查,这时她观察到图12-4中呈现的结果。7图12-5中给出了原始可执行文件和经过修补之后的可执行文件的对比。于是,Trudy执行这个经过修补的代码serialPatch.exe,并输入不正确的序列号。图12-6中的结果表明,这个修补的程序可以接受不正确的序列号。8最后,我们又对文件serial.Exe和serialPatch.Exe分别执行反汇编,图12-7中给出了结果的对比情况。这些代码片段表明修补工作达成期望的目标结果。912.2.3 防反汇编技术防反汇编的方法 对可执行文件实施加密 错误反汇编 自修改代码。n 顾名思义,自修改代码能够实时地修改自身的可执行文件 10
5、12.2.4 反调试技术有几种不同的方法可以用来令调试更加困难。因为调试器会使用一些特定的调试寄存器,所以程序就可以监控这些寄存器的使用,并且当这些寄存器被使用时,程序就停止。调试器不能很好地对线程进行处理,因此在被恰当实现的情况下,相互作用的线程就能够提供一种相对而言比较强的方法以便对调试器产生迷惑作用。还有许多其他的能令调试器工作不力的技巧,其中的大部分都是高度调试器相关的。1112.2.5 软件防篡改防篡改的目标是要令修补更为困难,通过让代码更加难以被理解,或是让代码一旦被修补便无法执行等方式来实现这个目标。1.Guard 让程序包含自身的哈希片段,当执行时可以将新计算出的哈希值与已知的
6、原始代码的哈希值进行比较。如果有篡改行为(例如代码已被修补过)发生,哈希校验将会失败,从而程序也就可以采取规避措施。研究表明,使用Guard机制有可能以一种最小的性能损失来获得对于软件较好程度的一种保护。2.混淆处理混淆处理的目标就是令代码更加难以被理解。基本逻辑则是:如果Trudy无法理解代码,那么她在对代码进行修补时也就会遭受折磨。例子:spaghetti代码 12对于下面伪码:无论 x 和 y 为任何值,if 条件总是为假,因为(x-y)(x-y)=x2-2xy+y2 代码混淆处理有时候会被提高到作为一种强大的通用型安全技术的层面上。事实上,在Diffie和Hellman提出的关于公开密
7、钥加密技术的原始概念里,他们提议了一种所谓的“单向编译器”(也就是混淆处理的编译器),将其作为开发这样一个密码系统的一种可能途径。混淆处理技术也可以与其他的手段结合在一起使用,包括前面提到的防反汇编、反调试以及防修补技术等诸多方法中的任何一种。1312.2.6 变形2.0“一次攻破,处处得逞”(BOBE)的免疫力变形软件可以被病毒编写者用来逃避检测手段。那么,相似的技术是否可以用于行善而不是作恶呢?由于开放平台和SRE技术的存在,我们无法阻止针对软件的攻击行为。可以说,我们所能够期望的,最多也就是提高BOBE抵抗力的水平。而要获得一定程度的BOBE抵抗力,变形软件就是其中一种可能的手段。变形并
8、不能阻止SRE,但却能够提供实质性的BOBE抵抗力。变形技术最为引人注目的是在恶意软件中的应用。1412.3 数字版权管理数字版权管理(Digital Rights Management,DRM)为了说明软件中实施安全的局限性提供了很好的示例。接下来我们要讨论DRM是什么,以及DRM不是什么。然后,我们还将介绍实际的DRM系统,该系统的设计目标是为了在特定的公司环境之内保护PDF文档资料。此外,我们也会简略地给出用于流媒体保护的DRM系统的梗概,最后我们还要讨论一款推荐的peer-to-peer应用,其中就使用到了DRM。1512.3.1 何谓DRM从最基本的层面上看,DRM可以被视为一种针对
9、数字内容提供某种“远程控制”的尝试。例子:如何在数字化时代防止书本被复制?持久保护(persistent protection)是DRM保护理论层面的时髦术语。意思是说,我们希望对数字化内容进行保护,要使得即便在数字化内容被交付之后,这种保护仍能够伴随内容本身而留存。n 禁止拷贝n 仅读一次n 直到圣诞节才能打开n 禁止转发如何施加这样的持久保护?n 一种选择就是完全依赖信用系统,在这种情况下,我们实际上并不强制用户遵守规则。n 另外一种选择是放弃在诸如PC这样的开放平台上强制实施DRM的做法。16开发“强壮的”基于软件的DRM系统 出于某种客观需要,基于软件的DRM系统在很大程度上要依赖于不
10、透明带来的安全性。强壮的基于软件的DRM系统是不可能实现的。1712.3.2 一个真实世界中的DRM系统MediaSnap公司的DRM系统共包括两个主要的组成部分。n 一个服务器组件,称之为安全文档服务器(SDS);n 另一个是客户端软件,可以作为插件加载到Adobe的PDF阅读器程序中。在这个DRM框架中,整个电子邮件都会被转换成PDF格式,随后再被加密并发送给SDS。最后SDS将期望的持久保护措施应用到文档上面。然后,通过邮件,这样处理之后的结果文档就被发送给了Bob。18在这个架构中,服务器和客户端都存在一些安全问题。n SDS必须保护密钥并对用户进行身份认证,还必须将需要的持久保护应用
11、到文档上面。n 客户端软件必须保护密钥,对用户进行身份认证,并且实施持久性保护,所有这些操作都是在一种可能会暗藏敌意的环境中执行。另一方面,DRM客户端软件对于任何攻击者来说都随手可得。下面的讨论主要集中在客户端软件上。客户端软件高阶设计的图解 这个软件的外层用于尝试创建抗篡改的屏障,这包括防反汇编技术和反调试技术的应用。19反调试技术相当复杂精深,虽然基本思想只不过就是对调试寄存器的使用进行监控。它面临中间人攻击。防篡改技术能够对攻击者起到延缓的作用,但是这些技术并不能阻止持之以恒的攻击者获得最终的成功。混淆处理技术被应用于一些至关重要的安全操作中,这包括密钥管理、身份认证以及加密操作等。在
12、这个系统中,对数字内容的加密使用的是高级加密标准(AES)的分组加密方案。因此,MediaSnap的系统也利用了“加扰”算法,这本质上又是一种专门的密码方案。MediaSnap的DRM系统利用了多个层次的混淆处理技术。这个系统实现的另一个安全特性就是一种防抓屏技术。20MediaSnap的这款DRM软件使用变形技术来提升BOBE抵抗力。其中,变形技术的使用体现在几个不同的地方,而最为引人注目的就是“加扰”算法。MediaSnap的DRM系统利用到各种各样的软件保护技术。几乎可以肯定,这款产品应该是最先进的基于软件的DRM系统之一了。其中唯一没有采用的重要保护机制就是guard,也可以称为“脆弱
展开阅读全文