映像劫持
记得N年前知道有计算机病毒这一名词的时候,就有大牛说计算机病毒是同时具备操作系统与编程技术的高手才能够写出来的程序,现在回想的确不为过,道高一尺魔高一丈,传统杀毒软件都是在跟着计算机病毒的后面跑,如果真的不存在计算机病毒杀软也就成了废物,而且还浪费计算机资源。但是如今黑客产业的壮大、相关法律的不完全,都意味着计算机病毒根本就不会消失,而是一步一步的向我们的计算机系统靠拢,如果你的周围已经被病毒蠕虫弥漫的时候,那么应该怎么办?难道要每天都给硬盘分区格式化,或者拼命加内存让硬盘只读不写?所谓上有政策下有对策,这种趋势只会使得计算机病毒硬件化,到那时候估计计算机硬件与维修是最赚钱的了,每天写固件都可以赚到相当可观的一笔财富,到那是杀软只不过起一个杀毒后提醒你去修机器的作用,安装了反而要担惊受怕的,想想看,安装了查到病毒又得花钱去修机器,不安装又怕自己中了病毒不知道,其实问题只出在我们太被动,被动就容易被欺负,不要吵我中了某某病毒杀不掉、重启后又删除不了,那都是活该的,只能够怪你伸着脖子被人宰,又怪得谁呢?
主动一些才可以未卜先知,主动一些才可以反客为主。其实病毒每运行一步都会调用相关的API函数,无论是原生的还是封装的,当然不排除操作系统多如牛毛的年代,那时候病毒估计直接中断CPU了,软件防御也就失去了它的最大意义,要CPU内部做防火墙才可以。毕竟现在不是那个中断CPU的年代,所以防御还是很有用的,不会中毒的系统系统资源永远都是浪费最少的。
最近一两月病毒技术可谓是更新换代,瞧瞧都有什么……
一、映像劫持
自从出了一个美女游戏后,IFEO就被人吵的沸沸扬扬的,其实那个算不起真正的映像劫持,只不过找到微软的一个小缺口作了一个思维的小小过渡,把运行A过渡到B形象化了一些,真正的映像劫持是在内存中进行的,NtCreateProcess或NtCreateProcessEx一个进程空壳后没有从原磁盘映像地址载入主线程映像,而是而是把另一个进程的代码从内存中写入这个进程空壳并激发,所以被写入代码的进程是看不到主线程映像的,因为它的映像不在本地硬盘上存放,而是存在于内存中,可以在%temp%\XXXXXXX.tmp中找到,当然要存在被劫持的进程。
感染
二、驱动化
接触到带有驱动的病毒后,第一感觉就是它的顽固,无论是流氓程序还是后门间谍,一旦它的驱动驻留到系统内核后,除了重启延时删除,直接在内存中卸载几乎是不可能的,因为它门门操作系统的关系实在太密切了,所以只能够在没有加载的将这类顽固病毒清除,一旦清除机制没有病毒驱动加载的时间早,那么这个驱动就可以尽情发挥了,锁定文件、锁定进程、锁定注册表……以及各式各样的Rootkit技术被发挥淋漓尽致,这不过是病毒顽固化的一种,还称不上驱动化,因为这个驱动除了为病毒主体作辅助之外没有体现出其他的性质。真正的驱动化病毒是完全不依赖三环中的程序但能够体现出病毒性质的设备驱动程序文件,当然这种病毒还在过渡中,不久的将来可能会出现,但半驱动化病毒已经浮现,runtime2就是一个很好的例子,由驱动直接吐出exe文件,exe在去吐驱动、驱动在互守、开IE相辅相成配合完成病毒后门工作,这种病毒清除起来已经很不容易了,至少我所知IceSword、Rootkit Unhooker、Wsyscheak全部挂彩了,其他的估计也类似,不做评论。半驱动病毒威力如此可观,全驱动病毒该如何面对?
三、感染
感染文件是病毒寄生自身的一种很好的方式,有着隐蔽、攻击主动的多种“好处”,但如果被发现也就面临着死亡,所以这里不讨论捆绑式感染和节感染等感染方式,而把重点放在被感染的文件上。倘若被感染的是一个普通的PE文件,我们可以用杀软清除掉,感染强度高的大不了直接删了,那么被感染的是重要的系统文件呢?见过几例大致写一点:
1、机器狗驱动写扇区,绕过了SFC,因为Winlogon没有追上去userinit被感染了,删除后重启系统瘫痪。
2、通过某种方法绕过SFC替换修改过的services,SCM启动后将病毒dll作为自身模块加载,那时杀软服务还没有启动,如何清除?
3、感染系统某驱动,给驱动追加病毒驱动路径以及初始化代码,系统驱动通过ZwSetSystemInformation加载病毒驱动,病毒驱动初始化病毒主程序,没有启动项如何手杀?
4、直接感染系统执行体,硬方式修改系统服务中断地址到病毒驱动,病毒被杀,系统崩溃。
以上的几个例子已经充分的体现出了病毒技术的内核过渡,重在防御,不在清除(删除更是弱智的行为),因为有了防御的把握才可以使得清除更容易一些。
网友评论