当前位置:文档之家› 信息安全原理与实践-第二版12 软件中的安全

信息安全原理与实践-第二版12 软件中的安全


5
12.2.2 SRE示例
• 攻击者Trudy不知道序列号,当她给出(错误的)猜测时,得到的结果如 图12-1中所示 :
• Trudy决定她首先要做的第一件事就是对serial.exe实施反汇编。图122中给出了一小部分使用IDA Rro反汇编的结果。
6
• 在图12-2中,地址显示为0x401022试使用这个序列号并且发现确实是正确的, 这从图12-3中就可以看出来。
23
• 通过加扰算法实现的这种变形已经深深地嵌入到系统中,并与所有的 数据绑定在了一起。而且,如果服务器知道某个特定的加扰算法被破 解了,那么服务器就不会再选择该算法。并且,如果某个特定的客户 端有过多的已破解算法,那么服务器在同意分发内容之前,将强制执 行一次软件更新。 • 服务器也可以等到分发内容之前的那一刻再去分发客户端软件(或者其 中某些关键的组件),这将会令Trudy实时抓取流媒体的行为更加困难 ,因为可用于攻击软件的时间非常有限。当然,Trudy可以录制媒体流 ,然后待闲暇之时再对软件实施攻击。不过,在许多情况下,攻击如 果无法实现接近于实时的效果,就几乎不会被考虑了。 • 因为加扰算法对于攻击者来说是未知的,所以他们需要付出相当大的 努力来实施逆向工程,然而标准的加密算法则根本无须逆向工程—— 攻击者唯一需要寻找的就是密钥。
• 客户端软件高阶设计的图解
这个软件的外层用于尝试创建抗篡改的屏障,这包括防反汇编技术和反调试 技术的应用。
19
• 反调试技术相当复杂精深,虽然基本思想只不过就是对调试寄存器的 使用进行监控。它面临中间人攻击。 • 防篡改技术能够对攻击者起到延缓的作用,但是这些技术并不能阻止 持之以恒的攻击者获得最终的成功。 • 混淆处理技术被应用于一些至关重要的安全操作中,这包括密钥管理、 身份认证以及加密操作等。 • 在这个系统中,对数字内容的加密使用的是高级加密标准(AES)的分 组加密方案。因此,MediaSnap的系统也利用了“加扰”算法,这本 质上又是一种专门的密码方案。 • MediaSnap的DRM系统利用了多个层次的混淆处理技术。
24
12.3.4 P2P应用中的DRM
• peer-to-peer通常简写为P2P,大量的数字内容都会通过peer-to-peer 网络方式进行递送。例如,在这样的网络上包含有大量不合法的或是 盗版的音乐。 • 例子:
假设Alice已经加入到某个P2P网络中,这时她想要一些音乐,比如由某人 “转播”的一首歌。于是,对这首歌曲的查询就在整个网络上传播,而任 何拥有这首歌的站点——并且也愿意将其分享——就会对Alice予以响应。
18
• 在这个架构中,服务器和客户端都存在一些安全问题。
SDS必须保护密钥并对用户进行身份认证,还必须将需要的持久保护应用 到文档上面。 客户端软件必须保护密钥,对用户进行身份认证,并且实施持久性保护, 所有这些操作都是在一种可能会暗藏敌意的环境中执行。另一方面, DRM客户端软件对于任何攻击者来说都随手可得。下面的讨论主要集中 在客户端软件上。
11
12.2.5 软件防篡改
• 防篡改的目标是要令修补更为困难,通过让代码更加难以被理解,或 是让代码一旦被修补便无法执行等方式来实现这个目标。
1. Guard
• 让程序包含自身的哈希片段,当执行时可以将新计算出的哈希值与已 知的原始代码的哈希值进行比较。如果有篡改行为(例如代码已被修补 过)发生,哈希校验将会失败,从而程序也就可以采取规避措施。 • 研究表明,使用Guard机制有可能以一种最小的性能损失来获得对于 软件较好程度的一种保护 。
• 强壮的基于软件的DRM系统是不可能实现的。
17
12.3.2 一个真实世界中的DRM系统
• MediaSnap公司的DRM系统共包括两个主要的组成部分。
一个服务器组件,称之为安全文档服务器(SDS); 另一个是客户端软件,可以作为插件加载到Adobe的PDF阅读器程序中。
• 在这个DRM框架中,整个电子邮件都会被转换成PDF格式,随后再被加 密并发送给SDS。最后SDS将期望的持久保护措施应用到文档上面。然 后,通过邮件,这样处理之后的结果文档就被发送给了Bob。
21
12.3.3 用于流媒体保护的DRM
• 针对流媒体可能存在的攻击形式包括对端点之间传递的流实施欺诈、 中间人攻击、重放或重新分发数据,以及在客户端抓取明文信息等。 我们主要考虑最后一种攻击行为。 • 客户端软件的每一个实例都在其中配备了大量的加扰算法。主集合包 含了所有的加扰算法,每一个客户端都有不同的从主集合中挑选出来 的加扰算法的子集合,而服务器知道这个主集合。 • 在这个DRM框架中,数据在服务器上被加扰混乱,然后再被加密。在 客户端一侧,数据必须被解密,然后再被解扰恢复。解扰恢复的过程 发生在专用的设备驱动程序上,刚好在内容被播放之前进行。这种处 理方式的目的是希望保持明文信息尽可能地远离攻击者Trudy,直到媒 体被播放之前的最后一刻。
2. 混淆处理
• 混淆处理的目标就是令代码更加难以被理解。基本逻辑则是:如果 Trudy无法理解代码,那么她在对代码进行修补时也就会遭受折磨。 • 例子:spaghetti代码
12
• 对于下面伪码:
• 无论 x 和 y 为任何值,if 条件总是为假,因为(x-y) (x-y)=x2-2xy+y2 • 代码混淆处理有时候会被提高到作为一种强大的通用型安全技术的层 面上。事实上,在Diffie和Hellman提出的关于公开密钥加密技术的原 始概念里,他们提议了一种所谓的“单向编译器”(也就是混淆处理的 编译器),将其作为开发这样一个密码系统的一种可能途径。 • 混淆处理技术也可以与其他的手段结合在一起使用,包括前面提到的 防反汇编、反调试以及防修补技术等诸多方法中的任何一种。
• Trudy想要对这个可执行文件serial. exe进行修补,以便她不再需要记 录这个序列号。 • 接下来Trudy对这个exe文件(以十六进制表示的形式)在地址0x401030 处的二进制位进行检查,这时她观察到图12-4中呈现的结果。
7
• 图12-5中给出了原始可执行文件和经过修补之后的可执行文件的对比。
22
• 假设服务器知道N种不同的加扰算法,分别表示为S0,S1,...,SN-1。每 一个客户端都配备了这些算法的一个子集。举个例子,某个特定的客 户端可能会有如下加扰算法集合: • LIST=(S12,S45,S2,S37,S23,S31) • 这个LIST以加密形式E(LIST, Kserver)存储在客户端,其中Kserver是 只有服务器才知道的密钥。 • 为了协商出加扰算法,客户端要将LIST发送给服务器。之后服务器解 密LIST,再选择客户端内置的某个算法。接下来,服务器必须安全地 将其对于加扰算法的选择传达给客户端。
13
12.2.6 变形2.0
• “一次攻破,处处得逞”(BOBE )的免疫力 • 变形软件可以被病毒编写者用来逃避检测手段。那么,相似的技术是 否可以用于行善而不是作恶呢? • 由于开放平台和SRE技术的存在,我们无法阻止针对软件的攻击行为。 可以说,我们所能够期望的,最多也就是提高BOBE抵抗力的水平。 而要获得一定程度的BOBE抵抗力,变形软件就是其中一种可能的手 段。 • 变形并不能阻止SRE,但却能够提供实质性的BOBE抵抗力。变形技 术最为引人注目的是在恶意软件中的应用。
好的用途包括理解恶意代码或是对以往的遗留代码进行分析。 不那么好的用途包括移除对于软件的使用限制、查找和利用软件缺陷、在游戏中实 施欺诈活动、破解DRM系统以及许许多多其他类型的针对软件的攻击。
• 基本的逆向工程工具包括反汇编器(disassembler)和调试器(debugger)。 反汇编器能够将可执行文件转换为汇编代码,这种转换属于尽力而为 型,但是反汇编器并不能确保总是正确地反汇编出汇编代码。 • 调试器用来设置程序中断点,据此Trudy就可以在程序运行时一步步地 跟踪代码的执行过程。对于任何有一定复杂度的程序而言,调试器都 是理解代码的必备工具。比如OllyDbg。 • IDA Pro是一款强大的反汇编器和调试器
• 于是,Trudy执行这个经过修补的代码serialPatch.exe,并输入不正确 的序列号。图12-6中的结果表明,这个修补的程序可以接受不正确的序 列号。
8
• 最后,我们又对文件serial. Exe和serialPatch. Exe分别执行反汇编, 图12-7中给出了结果的对比情况。这些代码片段表明修补工作达成期 望的目标结果。
14
12.3 数字版权管理
• 数字版权管理(Digital Rights Management,DRM) 为了说明软件中实 施安全的局限性提供了很好的示例。 • 接下来我们要讨论DRM是什么,以及DRM不是什么。然后,我们还将 介绍实际的DRM系统,该系统的设计目标是为了在特定的公司环境之 内保护PDF文档资料。此外,我们也会简略地给出用于流媒体保护的 DRM系统的梗概,最后我们还要讨论一款推荐的peer-to-peer应用, 其中就使用到了DRM。
15
12.3.1 何谓DRM
• 从最基本的层面上看,DRM可以被视为一种针对数字内容提供某种 “远程控制”的尝试。 • 例子:如何在数字化时代防止书本被复制? • 持久保护(persistent protection)是DRM保护理论层面的时髦术语。意 思是说,我们希望对数字化内容进行保护,要使得即便在数字化内容 被交付之后,这种保护仍能够伴随内容本身而留存。
• 这个系统实现的另一个安全特性就是一种防抓屏技术 。
20
• MediaSnap的这款DRM软件使用变形技术来提升BOBE抵抗力。其中, 变形技术的使用体现在几个不同的地方,而最为引人注目的就是“加 扰”算法。 • MediaSnap的DRM系统利用到各种各样的软件保护技术。几乎可以肯 定,这款产品应该是最先进的基于软件的DRM系统之一了。其中唯一 没有采用的重要保护机制就是guard,也可以称为“脆弱化”技术 。
相关主题