未来趋势
对付反病毒软件
而如今恶意程序正以更积极主动的态势保护自己,其自保护机制包括:
● 在系统中有目的的搜寻反病毒程序,防火墙或其他安全软件,然后干扰这些安全软件运行。举个例子,有恶意程序会寻找某个特定的反病毒软件的进程,并试图影响反病毒程序的功能。
● 阻断文件并且以独占方式打开文件来对付反病毒程序对文件的扫描。
● 修改主机hosts文件来阻止反病毒程序升级。
● 检测安全软件弹出的询问消息(比如,防火墙弹出窗口询问“是否允许这个连接?”),并模拟鼠标点击“允许”按钮。
实际上,有目的的攻击安全软件更像是某人顶住一堵墙,而不是主动攻击。现如今, 反病毒厂商不仅分析恶意代码的内容,而且分析它们的行为 ——恶意程序多少显得无力。无论是多态,加壳,甚至是隐匿技术都无法给恶意程序提供全面的保护,这就是为什么恶意程序要盯着所谓的敌人的特定功能或技术。当然,有时自保护机制是仅有的措施;否则它们不可能如此常见。同时从最大化、全方位保护的观点来看,这也的确引起了很大的麻烦。
未来将是怎样的?
反病毒保护技术仍在不断发展,从文件分析到程序行为分析。和文件分析相比,行为分析的根本并不是基于处理文件,而是基于处理系统级的事件,比如 “列出所有活动的系统进程”,“在一个文件夹中创建某个名字的文件”和“打开某个端口来接收数据”。通过分析这些事件链,反病毒程序可以衡量出这一组事件在多大程度上是具有潜在威胁的,并且在必要时提出警告。
然而,当行为分析术语化时可能令人困惑,而且不是那么容易弄懂。比如,一个行为分析机可能有不同的名字:主机入侵防护系统(HIPS),前摄防护(proactive protection),启 发式(heuristic),或者沙箱(Sandbox)……然而,不管用什么名称,有一件事情是清楚的:恶意程序在行为分析面前终究是无力的。而这一点很可能影响到将来恶意程序的演变。
换句话说,病毒作者面对的问题是——需要以某种方法搞定行为分析。我们无从知道他们将如何着手应付这个障碍。但是我们知道,在行为级别上使用混淆技术基本上无效。不过,另一件有意思事情的是,这可能导致病毒“自我意识”能力的增加,它们必须具有对环境作出诊断的能力,也就是说,它们要判断它们在哪:在“真实世界”(用户的工作环境中)中还是在“矩阵”(在反病毒程序的控制下)里。
诊断技术也有先例:有些恶意程序,如果他们在虚拟环境中运行(比如VMWare或 VirtualPC),它们会立刻自我销毁。通过在恶意程序内构建自销毁机制,它可以防止自己被分析,因为这种分析往往在虚拟环境中进行。
趋势和预测
根据前面的介绍,通过分析当今恶意程序自保护技术的趋势和当前能达到的有效程度,我们可以预期到以下几点:
1.Rootkit正在往利用设备函数和虚拟化的方向发展。然而,这种方法还没有达到其顶点,而且在未来几年内很可能不会成为主要的威胁,也不会被广泛使用。
2. 阻断磁盘文件的技术:已知有两个的概念性的程序实现了这种技术,我们预期这一领域在不远的将来会有发展。
3. 混淆技术的使用已经没有意义,不过它们现在仍然存在。
4. 检测安全软件并干扰其功能的技术已经非常普遍,并被广泛使用。
5. 加壳工具的使用非常广泛,仍在稳步增长。
6. 为了抵御反病毒程序向行为分析的大量转变,探测调试器、模拟器和虚拟机的技术以及其他环境诊断技术可能会发展起来。
不难发现,恶意程序自保护技术的进化趋势随着恶意程序本身和抵御恶意软件技术的发展变化而变化。当大多数恶意程序感染文件并且反病毒程序使用基于病毒库的检测时,多数恶意程序自保护的措施就是多态和代码保护。而如今,恶意程序多数是独立的,反病毒程序也逐渐的主动化。基于这些因素,我们可以预测以下这些恶意程序自保护机制会比其他机制大幅增长。
1.Rootkit。它们在系统中的不可见性给了它们一个明显的优势——即使它们不阻止被检测。我们预测很可能出现无体的恶意程序新机制,之后一段时间,虚拟化技术会完成。
2. 混淆和加密。这些方法仍将被广泛使用,用以干扰代码分析。
3. 用于对付基于行为分析的安全软件的技术。我们预期会出现一些新的技术,因为现有的一些(有目标的攻击反病毒程序)并不怎么有效。我们很可能会看到检测虚拟环境或者某种行为加密类的技术。
结论
恶意程序自我保护技术将随着反病毒技术的发展而不停发展下去,恶意软件和安全软件之间的斗争永远不会停止。
恶意程序总是不断发展新的技术,而反病毒程序也随之再提供相应补救措施,用户的系统始终处于这样一个邪恶循环中。而每次新的轮回又将产生更加复杂的恶意程序和更加重量的安全防护措施。
这一冲突耗费许多资源,毫无意义的也没有尽头,而作为夹杂在这二者之间的用户来说,我们要意识到,没有任何一种防护可以提供100%的安全,保护自己远离威胁的最好的方式就是阻止它们。
————————————————————————————————————
注解:
*多态:可以让自我复制的程序在复制自身时,完全的或部分的修改外在的外表和/或者代码结构的 一种技术。
*混淆:用多种手段相结合来使程序的源代码变得混淆。这使得代码尽可能难以读懂和分析,而同时保留其完整的功能。混淆技术可以用于编程语言的级别(包括高级,脚本和汇编语言)。最简单的混淆的 例子就是向代码中加入中性的说明(不会改变程序功能),或者使用极大数量的无条件的跳转(或把无条件 的转换伪装成条件跳转)使代码难以阅读。
原文参考:http://www.viruslist.com/en/analysis?pubid=204791949
网友评论