谈恶意程序自我保护技术的发展

互联网 | 编辑: 杨剑锋 2008-09-26 00:30:00原创 一键看全文

加壳和Rootkits

隐形病毒(Stealthviruses)

把恶意程序隐匿在系统中程序成为自保护的第二种手段,这种对付检测的手段为DOS时代的病毒作者所精通。这种技术首先用于1990年,如今变得更罕见,它属于我们提到的病毒——Whale的兵器库中的一员。本质上,隐匿的病毒以某种方法中断DOS系统服务并传递假的数据给用户或者反病毒程序——比如,传递“干净的”启动扇区内容,而不是被病毒感染后的真实的内容。

尽管不久后针对DOS操系统的这种隐形技术随着DOS时代的终结而消声匿迹,但在10年后,与这一技术类似的一种技术再度兴起,这就是针对Windows操作系统的Rootkit技术,只不过,它变得更加复杂,也更为隐秘。

壳(Packers)

渐渐的,病毒——这种只有在受害者体内才能发挥作用,而不能独立作为文件存在的恶意程序——被本身完全独立的木马程序取代。这个过程始于Internet比如今速度还很慢规模还很小的时候,那时硬盘和软件都很小,这意味着程序的大小很重要。为了减小木马的体积,病毒作者开始使用所谓的“壳”——而这还要追溯到DOS时代,那时壳被用来压缩程序和文件。

从恶意程序的角度来看,使用壳的一个副作用是,加壳的恶意程序更难被文件检测方式查到,这对它们来说非常有用。

当对已有的恶意程序做一个新的修改时,病毒作者往往要修改多行代码,仅仅不改动程序的核心代码。在编译后的文件中,特定序列的代码同样要修改,如果病毒库包含的并不是这个被修改的特定的序列,那么恶意程序仍会像从前那样被检测到。用壳来压缩程序解决了这个问题,因为原程序一个比特的改动可使得加壳后的文件的一整段发生变化。

加壳技术在如今仍在广泛使用。加壳程序的类型数量和复杂度仍在增长。许多现代的壳不仅压缩源文件,而且附加了一些附加自保护功能,比如干扰用调试器脱壳和分析。

Rootkits

在新千年的前几年,Windows下的恶意程序开始使用隐匿技术来隐藏它们在系统中的行踪。如前面所述,大约在隐匿程序作为概念出现并用于DOS的10年后,在2004年初,卡巴斯基实验室发现了一个惊人的程序——它的无法在进程和文件列表中看到。对许多反病毒专家来说,这是一个新的起点——理解Windows下恶意程序的隐匿技术,这是病毒产业的一个主要方向的预兆。

Rootkit的名称源于Unix,rootkit是Unix下提供给用户未经认可的root访问权限而不被系统管理员发现的工具。如今,rootkit已经是欺骗系统的专用工具的统称了,而且具有此功能的恶意程序可以隐匿它们自己的行踪。这些可以被第三方注册程序显示:进程列表中的名称,磁盘上的文件,注册表项甚至网络活动。

使用rootkit技术来隐匿于系统中的恶意程序,是什么使得反病毒程序或其他安全软件如此难以检测到它?非常简单:反病毒程序仅仅是一个外部人员——和用户一样。通常,如果用户看不到某样东西,那么反病毒程序也是看不到的。然而,有些反病毒软件使用了某些技术增强了其视野,使得它们能检测到用户看不到的rootkit。

Rootkit和DOS下的隐匿病毒的原理是相同的。许多rootkit都有修改系统调用链(修改程序执行路径)的机制。这种rootkit可以看作是一个钩子,存在于命令或信息交换路径上的一点。它会修改这些命令或者信息或者在接受者不知情的情况下控制接收终端的结果。理论上说,钩子可以存在的点的数量是无限的,实际上,通常有很多不同的方法来钩住API和系统核心函数。这些rootkit包括广为人知的Vanquish和HackDefender,以及恶意程序如Backdoor.Win32.Haxdoor,EmailWorm.Win32.Mailbot和某些版本的Email-Worm.Win32.Bagle等。

另一种通常类型的rootkit技术就是直接修改系统内核对象(DirectKernelObjectModification,DKOM),它可以被看作是直接修改源信息和命令的内部人员。这种rootkit会改变系统数据。典型的例子是FU,还有具有同样功能的Gromozon(Trojan.Win32.Gromp)。

更新的属于rootkit分类的技术是在NTFS文件系统交换数据流(ADS)中隐藏文件。这种技术首先在2000年在恶意程序Stream(Virus.Win32.Stream)中出现,第二次爆发则是在2006年的Mailbot和Gromozon中。严格来说,利用ADS并不是一种对系统的欺骗,而仅仅是利用了一个鲜为人知的函数,这也是这种技术不太可能非常流行的原因。

还有一种罕见的技术,它仅仅部分地可以视为属于rootkit(但是它更不大可能归类为其他类的恶意程序自保护技术)。这种技术使用无形的文件——这意味着恶意程序不在磁盘保留任何本体。目前仅知道两个这种子群的代表:Codered,就是2001年出现的NetWorm.Win32.CodeRed,它仅以MS IIS的内容中的形式出现,还有个是近期的一种新概念的木马——它把本体放在注册表中。

现代rootkit的趋势是虚拟化和系统函数的使用——换句话说,会更加深入到系统之中。

提示:试试键盘 “← →” 可以实现快速翻页 

一键看全文

本文导航

相关阅读

每日精选

点击查看更多

首页 手机 数码相机 笔记本 游戏 DIY硬件 硬件外设 办公中心 数字家电 平板电脑