existence way of The malicious software
随着新一轮病毒的来袭,杀毒软件显示了它的脆弱。从熊猫烧香、AV终结者、机器狗、磁碟机病毒,拥有的反杀毒能力越来越强,没有自我防护功能的检测软件注定不受市场欢迎了解恶意软件隐藏自己、对抗跟踪的生存方式,不仅对检测软件的研发有非常重要的作用,对用户手动检测也有极大的参考价值。
对大部分用户来说,靠肉眼发现病毒是不容易的,检测软件的扫描器可部分的弥补这个缺陷。如何在扫描器前隐藏自己,甚至反制检测软件,是恶意软件的重要目标。
一、对抗检测软件的方式
1、 扫描可见的窗口标题,对含检测软件名称的窗口,发送一条退出消息关闭窗口或者发送大量的垃圾消息使其反应缓慢。或者自动点击检测软件界面上的下一步、跳过等按钮使检测软件部分的失去作用。
2、 利用垃圾数据覆盖检测软件空间,使其崩溃退出。
3、 采用守护进程,多个线程互相监视,发现一个被关闭立即生成新的线程。
4、 将自身注入检测软件进程空间,钩住检测软件使用的某些函数,使检测软件工作无法进行。
5、 修改检测软件数据库,使检测软件不能识别或错误识别。或者替换检测软件的某些关键文件以达到同样的目的。
运行在用户模式下的恶意软件对于具有System权限的检测软件上述一些手段无法成功。这可以通过提升权限获得关闭检测软件的能力,但这样比较容易检测。更通用的方式是释放一个.sys文件,然后加载该驱动程序,从而获得完全控制计算机的能力。
二、隐藏自己的手段
一直以来病毒有一些通用的隐藏手段,这些手段对一般的恶意软件同样适用,使得检测软件无法识别出这是恶意软件,这些方法包括:
1、 加密
这种恶意软件包括解密引擎,运行时引擎读出被加密的内容,然后在内存中重建原执行体。仅仅一个解密引擎容易被检测,一般采用多个解密引擎,运行时随机选择一个。
2、 多态
多态病毒的解密引擎可以大幅度改变,一般通过随机插入垃圾块或指令从而创造出无穷多个解密引擎。
3、 变形
变形病毒并没有解密引擎,它的病毒体是变化的。通过等价指令替换,随机插入垃圾指令,在感染文件时对宿主大幅度改变从而使检测软件难以识别。
Windows时代也有一些防止被用户查知的方法,如将病毒插入PE文件的空闲区域,使文件看起来没有任何变化,在任务管理器中隐藏自己等手段,但这些方法一般逃不过检测软件的眼睛。现在rootkit技术被越来越多的恶意软件所喜爱。通过挂接内核钩子rootk可以与检测软件同步,达到隐藏自己的能力。常用的挂钩位置有
1、 钩住系统服务调度表(SSDT),可以使大部分检测软件监控功能失效。
2、 Winxp及以后可以通过rdmsr与wrmsr指令修改IA32_SYSENTER_EIP寄存器在SSDT之前截获调用,达到同样的目的。
3、 钩住设备驱动程序对象中主要的I/O请求报文函数表,也是常用的隐藏自己的手段。
三、防止被删除的方式
1、 以独占方式打开文件,这样使得打开该文件的进程关闭之前基本无法删除该文件。
2、 监控文件变动,发现文件被改动之后立即还原。微软提供的FindFirstChangeNotification 、FindNextChangeNotification和ReadDirectoryChanges可以达到监控作用。
3、 释放文件系统过滤型驱动程序。再用将自己创建的设备对象加到文件系统对象上层,就可作过滤删除操作。
4、第二部分提到的钩子技巧同样也可以达到这个目的。
恶意软件是计算机技术中一个复杂并且不断发展的领域。在 IT 业面临的所有问题中,几乎没有比恶意软件攻击更具普遍性,也几乎没有比处理恶意软件的相关费用更昂贵的了。了解恶意软件的生存原理,将有助于您以主动的方式处理此问题。 你吓撒 ,, 我都是裸奔地 ,.,
页:
[1]