免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2200 | 回复: 0
打印 上一主题 下一主题

现代恶意软件的传播技术 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-22 08:53 |只看该作者 |倒序浏览
1.6 现代恶意软件的传播技术

由于网络应用程序、网络服务和操作系统功能中具有创造力的进步,对于IDS来说,发现恶意软件的传播已经比以前困难得多了。IDS特征码已经被证明在对抗 恶意软件的新版本或者多态的恶意软件时没有什么帮助。在21世纪初,出现了全新的传播技术,这些技术起源于从过去的恶意软件爆发时学习到的经验。恶意软件已经发展到如此高的水平,以致我们现在只能依赖专家来预测可能出现的恶意软件爆发事件,或者旧的技术在什么地方采用创新的方法造成比过去更大的破坏。新的技术利用操作系统和应用程序的系统改进和功能升级来对付最终用户。表1-3列出了恶意软件传播方法的一些最新进展。1-3中描述的蠕虫使用了新的传染和传播方法并且成为近期IT界重要的恶意软件爆发的根源。

1-3 恶意软件的革新

Downadup蠕虫在不到5天的时间内感染了超过900万台计算机。评估恶意病毒的开发非常重要从对付组织的针对性恶意软件到执行恶意代码远程控制受 害计算机的简单客户端利用程序。尽管在刊物和每个人阅读的报纸上报道的几乎所有流行的实例都是以Microsoft Windows为焦点的恶意软件,但确定所有恶意软件的数量仍然很关键。

在恶意软件最初发展阶段使用的技术在当今的恶意软件版本中仍然概念性地存在。由于网络的进步以及简化网络管理员日常任务和职责的路由服务的开发,这些技术 造成的损害比过去更大了。 21世纪来临的时刻,恶意软件制作者也开始使用让取证分析师和网络防御专家更加难以识别和缓解的技术。历史上,这些方法包括了从传统的简单方法到使世界上的许多管理员感到头疼的具有很强的独创性的方法。在下面的部分中,我将讨论一次最大的恶意软件爆发事件,然后描述其他的恶意软件实例及其功能性。

注意:你可在本书的伙伴网站上下载并且打开IDA Pro映像用于个人研究和教育用途。 每个阶段,我们将告诉你应该打开哪个映像阅读,以识别所讨论的技术并且用一个健壮的分析工具分析所提出的恶意软件实例。我们建议使用IDA Pro工具,你可以从http://www.hex-rays.com/idapro/下载它,免费的试用版本能够对读者可在本书网站上取得的实例进行只读访问。

2007年,我们有幸遇到了到目前为止最难以捉摸,最具有说服力表现的一种蠕虫,在2008年中期,这种蠕虫仍然活跃,只是因为业界开发了多种对抗措施才使得它的新变种难以很快出现。

1.6.1  StormWorm(恶意软件实例:trojan.peacomm

StormWorm是一个邮件蠕虫,采用社会工程,在来自可信朋友的邮件中附加二进制文件或者在Microsoft Office附件中嵌入恶意代码,然后对Microsoft Internet ExplorerMicrosoft Office(具体版本是20032007)的脆弱版本发动大家熟悉的客户端攻击。StormWorm是一种影响使用Microsoft操作系统的对等 僵尸网络框架和后门特洛伊木马,在2007117日最早发现。StormWorm培育了一个对等僵尸场网络(botnet farm network),这是一种更新的控制指挥技术,用来确保集群的持续性,并且增强了它的控制指挥中心的生存能力,因为在这里没有单独的中央控制点。每台被 侵害的机器连接到整个僵尸网络集群的一个子集,包括2550台其他受侵害的机器。在图1-5中,你可以看到StormWorm的控制指挥结构的效率 是它难以防范和跟踪的主要原因之一。


1-5 按国家分布的StormWorm感染情况

在对等僵尸网络中,没有一台机器拥有整个网络的完整列表;每台机器只有总表的一个子集,这些子集中含有重叠的机器,分布得像一个错综复杂的蜘蛛网,使得这 个邪恶的网络的范围难以确定。StormWorm的大小从未被精确计算过,但是,估计它是有史以来最大的僵尸网络,可能包含100万~1000万个受害系 统。StormWorm如此巨大,以至于在其运作者发现多家国际安全集团积极与这一僵尸网络战斗并试图拆除它时,向这些安全集团发动了攻击。由于这一国际 性僵尸网络的强大力量,国际性的安全集团和机构遭到了挫败。

感染时,StormWorm将安装Win32.Agent.dh,这不可避免地导致制作者实现的第一个变种的垮台。有些安全集团感到,这个缺陷可能是一个未知实体的一种预先测试或者武器测试,因为实际的宿主代码带有在某些初始的二进制代码分析时就可以避免的缺陷。记住,有很多方法能够用来确保恶意软件难以 发现,这些方法包括变形、多态以及从操作系统最难发现的基于硬件的设备感染。到今天为止,没有人知道这个缺陷到底是不是有意为之,因为分析师们试图更好地 理解StormWorm的方法以及背后的意图,所以这一点仍然在安全界中继续讨论。如果这个蠕虫确实计划在全球流行,它的作者可能已经花费更多的时间采用一些更加复杂的技术来确保这个Rootkit更加难以被发现,或者持久地留在受害的主机上。

1.6.2  变形(恶意软件实例:W32.EvolW32.Simile

变形(metamorphism)的恶意软件在复制或者传播时发生改变,使得基于特征码的防病毒或者恶意软件删除工具难以识别它。每个变种与原型稍有不同,足以使其生存足够长的时间来传播到其他系统中。变形高度依赖于用于创建变种的算法。如果没有合适的变形算法,就可以采取措施来枚举变形引擎可能出现的重复。下图说明了变形引擎每次重复时如何改变,使变种恰好足够改变其特征码,避免被发现。

变形引擎不是新生事物,已经使用超过10年了。在一台计算机上对恶意软件进行变异的方法已经得以改进,使得全面清除感染甚至发现恶意软件都非常困难。接下来是一些采用变形的臭名昭著的恶意软件的实例。

多态(恶意软件实例:W32.Rahack.hW32.Polip W32.Dengue

多态(polymorphism)是指采用与原型不同的结构进行自我复制的恶意软件。多态是一种伪装方式,最初被恶意软件编写者用于挫败采用简单字符串搜 索以发现主机上恶意软件的防病毒引擎。防病毒公司很快就对这种方法做出反击,但是作为多态核心的加密过程不断地发展,确保了恶意软件具备在安全的主机上的 生存能力。下图展示了多态引擎采用的一种典型过程。你可以看到,病毒的每次重复都完全不同。这种技术使防病毒软件更加难以发现恶意软件的重复。第7章中将 会介绍,防病毒引擎多半依靠查找恶意软件的基本静态代码来发现它,有些时候,也使用行为特征判断方法,试图识别新添加的文件的行为是否类似恶意软件。

寡形(恶意软件实例:W95.Sma

这种抗检测技术一般被认为是穷人的多态引擎。这种方法从一组预定义的备选方案中选择一个解密程序。也就是说,这些预定义的备选方案可能用一组有限的解密程 序集识别和发现。下图中,你可以看到寡形引擎的局限性以及在病毒实际投入使用时的效率。

1.6.3  混淆

大部分日常所见的恶意软件都以许多方法进行混淆。最常见的混淆方式是通过压缩或者加密打包代码,这些将在后面的内容中介绍。但是,代码混淆的概念对现在的 恶意软件是非常重要的。主机混淆和网络混淆是两种重要的混淆类型,用于同时绕过两种类型的保护措施。 混淆有时候可能是恶意软件崩溃的原因。例如,恶意软件编写者实施了非常剧烈的混淆方法,以至于网络防御者实际上可以使用逃避的技术来创建检测这个恶意软件的特征码。在接下来的内容中,我们打算讨论两种最重要的恶意软件混淆组件:可移植执行体(portable executablePE)打包程序和网络编码。

存档程序、加密程序和打包程序

许多用来保护数据和确保完整性的公用程序也能成功地用于在恶意软件传播时对其进行保护,最重要的是能帮助其避开取证分析。让我们按照变化的顺序,也即存档程序、加密程序和打包程序的顺序来研究一下这些公用程序在感染系统中的使用方法。

存档程序  20世纪90年代末,ZIPRAR CABTAR实用程序被用来混淆恶意病毒。为了运行存档程序,必须将其安装在受害主机上,除非恶意软件编写者将这个程序作为装载程序的一部分。这种方法后来很少使用,因为要使恶意病毒运行,就必须解压缩,然后将其移到硬盘上的某个位置,这很容易被防病毒引擎发现并删除。此外,现在的大部分防病毒引擎深入扫描存档文件,以搜索嵌入的执行程序。这种方法有些过时,并且没有得到广泛的使用,原因主要是防病毒扫描程序的成熟及其深入扫描存档文件的能力。

加密程序(恶意软件实例:W32.Beagle@mm!enc  通常大部分软件开发人员用这些程序来保护应用程序的核心代码。这些核心代码被加密并压缩,使得黑客很难进行逆向工程或者识别应用程序中的函数。实用加密学 Cryptovirology)与对恶意软件用来混淆和保护自己以得到长期生存能力的加密过程的研究有相同的意义。历史上,恶意软件实施共享密钥(对 称)加密方法,但是一旦数字取证业界识别出这种方法,很容易将其倒推出来,这促进了当前实施的公钥加密。

打包程序(恶意软件实例:W32.Beagle@mm!enc 现在,几乎所有恶意软件实例都以某种方式采用打包程序,以绕过防病毒或者防间谍工具这些安全软件。简单地说,打包程序是一个用于混淆执行恶意病毒功能的主 体代码的加密模块,用于在传输时避开网络检测工具以及基于主机的保护产品。现在的互联网上有数十个可用的公开或者不公开的打包程序。不公开的一次性打包程 序最难发现,因为它们没有公开,企业安全型产品不能很容易地识别它们。打包程序和存档工具有明显的不同,普通计算机用户一般不采用这些工具。打包程序一般保护可执行程序和DLL,不需要在受害主机上预先安装任何工具。

正如黑客的技能水平一样,打包程序也有不同的完备度以及许多功能性选项。打包程序常常能对抗防病毒保护,也能增强恶意软件的隐蔽性。打包程序能够为黑客提 供一组健壮的功能,例如发现虚拟计算机并进入使其崩溃、生成很多异常、利用多态代码避开执行防护,以及插入无用指令增加打包后的文件尺寸,从而更难发现等一系列的能力。你一般会在这些无用指令中发现ADDSUBXOR指令以及对空函数的调用,这些指令用来摆脱取证分析。一般,你还会发现多个文件(例如可执行文件)一起打包或者一起受到保护,其他可执行文件将装载到第一个被解包的文件的地址空间中。

下图是打包程序过程的一个简单实例。 

使用打包程序最强大的地方是恶意软件不需要访问硬盘,所有程序都作为进程内存运行,这一般能够避开大部分防病毒和基于主机的安全工具。利用这种方法,如果 这个打包程序是知名的,防病毒引擎能够在其解包恶意软件时发现它。如果打包程序是不公开或者新型的,那么防病毒软件就不可能避免恶意软件运行,在这次对抗 中也就失败了,并且不能触发任何使管理员采取行动的警告。在图1-6中,你能够清晰地看到,前两年数字取证业界发现的打包程序的数量的增长。

1-6 20072009年间发现的打包程序

网络编码

大部分网络安全工具可以使用网络编码来避开。现在几乎所有企业网络都允许HTTP或者HTTPS通过所有网关,所以编码后的恶意软件能够轻易地穿越边界防 护系统。下面是一些网络编码方法的实例。

XOR XOR是一种简单的加密过程,用于避免网络通信被网络安全设备发现。你一般会发现XOR流隐藏在安全套接字层(SSL)这样的协议中。这样,如果IDS 析师只进行一次简单的评估,这次通信看上去是加密的,但是进行了深入的封包检测之后,分析师将会注意到这个流不是真正的SSL通信。

XOR是一种简单的二进制运算,如果两个二进制输入值相等,则输出0;如果不相等,则输出1XNOR正相反,如果两个输入值相等,则输出1;如果两个输入值不同,则输出0。当恶意软件准备执行时,它将通过相反的过程访问数据,运行所编写的实际二进制文件。XORXNOR是快速改变静止或者运行中的数据 以避开检测方法的简单引擎。

大部分聪明的恶意软件编写者不会采用存档程序来进行编码,因为大部分企业网关应用程序能够解码各种公用的存档程序。在网络中虽然可以实现存档保护的恶意软 件的分段传输或者断续的传输,但是如果恶意软件的任意部分被识别出来,它将被从系统中清除,这样恶意软件就无法被组合成编写者所希望的整体。

1.6.4  动态域名服务(恶意软件实例:W32.Reatle.E@mm

动态域名服务(Dynamic Domain Name ServicesDDNS)是黑客们最新的发明,而最先它是使企业管理员能够快速地在网络中增加机器的一种管理性改进。当Microsoft在其活动目 录企业版系统中实现DDNS,并将其作为一种快速将机器上线和离线的情况通知网络上的其他计算机的手段时,DDNS就为人们所熟知了。DDNS使恶意软件 能够进行外部联网和匿名操作而不用担心归属地被发现。DDNS是一种域名系统,它的域名IP解析可以实时更新,一般在几分钟内就能完成。域名的宿主名称服务器几乎始终保持着指挥控制服务器的缓冲记录。但是,(被入侵的/受害)主机的IP地址可以在任何地方并且可以随时移动。将域的缓冲限制在很短的时间内 (几分钟),可以避免其他名称服务器节点缓冲原始主机的旧地址,确保受害者使用恶意软件编写者控制的名称服务器进行解析。

1.6.5  Fast Flux(恶意软件实例:trojan.peacomm)

Fast Flux是当前的僵尸网络、恶意软件和仿冒方案最常用的通信平台,通过一个不断变化的被侵入代理主机的网络,可用此平台传递内容和指挥控制。对等网络拓扑 结构也能够将Fast Flux作为遍及多个指挥控制服务器的指挥控制框架,像菊花链一样传递信息而不用担心被发现。Fast FluxDDNS很相似,但是速度更快,想要抓住恶意软件背后的编写者和策划者将会更加困难。我们前面提到的StormWorm就是很好地利用这一技术的一个新型恶意软件变种。图1-7展示了两种形式的Fast FluxSingle-FluxDouble-Flux。在这张图中,你能看到受害者之间的Single-FluxDouble-Flux的简单过程,以及每种方法的查找过程。

Single-Flux

Fast Flux的第一种方式一般在一个网络中包含多个节点来登记和注销地址。这种方式一般与用于单个DNS条目的一个DNS A(地址)记录相关,并且为单一域名生成一个变动的目标地址列表,这个列表的条目数可能从几百到几千条。一般来说,Single-Flux DNS记录的生存时间(TTL)设置得非常短,以确保记录不会被缓冲,地址能够快速地移动而不用担心被记录。

Double-Flux

第二种形式的Fast Flux的实现要困难得多,虽然和Single-Flux相似,但是多台主机并不是组成一个登记和注销DNS A记录的网络,而是组成一个名称服务器的网络,登记和注销生成DNS分区列表的NS记录。如果一个节点被发现,这种实现确保恶意软件具备一个保护层和生存能力。你一般会看到被侵入的主机在名称服务器网络中作为代理,将这些主机埋藏到一个代理网络中,有助于保护执行指令的恶意软件网络的身份。由于代理的数量很多,完全可能保护恶意软件编写者,这也就增加了恶意软件系统的生存率,甚至超过了放置在合适位置用于避免受侵害主机访问多个可能的指挥控制点的IP块的能力。


1-7 Single-Flux Double-Flux

要记住,攻击者只需要一个方向就能对你发动攻击,而防御者需要知道并且保护所有的方向,谁的成功几率更大?在这个领域警惕性是必须的。

由于利益的关系,过去10年中为了简化管理员工作所添加的路由和网络服务功能正被不法分子利用。除了对你的用户进行全面的培训和教育,让他们在没有真正得 到信任的邮件发送者的确认之前,不要打开邮件或者附件(即使这些邮件的来源受到信任)之外,对这些技术没有更好的防范措施。这么总结起来有些伤心,但是现在你的用户是最后一条防线。如果他们没有得到进行简单分析的培训,你的网络就会因为我们已经讨论过的这些传播方式而遭到失败。要注意,现在的用户还没有能 够快速地由电子邮件附件中接收到的域名验证域名和/或真实性的工具。有些企业工具能够鉴定真实性,但是执行真实性验证所需的时间对于日常商业运作来说成本可能太高。

现在我们来到了本章中有趣的一部分……

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP