免杀(杀毒软件杀毒原理)

    坑坑洼洼近两年,虽然有碰过些免杀工具(加壳、加花、修改特征码),但是并没有真正的去学这门技术。直到现在才知道发展近二十年的传统免杀技术,基本已经濒临淘汰,而主流变成了Rootkit。感觉心里酸酸的,现在才刚开始捧《终极免杀》和《杀不死的秘密》,实在是落伍,Rootkit再主流也先放一边吧,不管怎样还是要啃啃这些免杀技术,毕竟流行了那么久~
    是先有操作系统还是先有编程,答案是先有编程,是先有杀毒软件还是先有免杀技术,答案是先有杀毒软件。也就是说,免杀技术是在1983年第一个杀毒软件出现后才有的,至今大约二十年左右。免杀可以是名词也可以是动词,有时候还可以是形容词,免杀的目的实际上就是躲过杀毒软件及其他安全工具的检测与监视,使我们的木马、病毒能够“合法”的运行。
    教程依旧是两本比较有名的,《终极免杀》和《杀不死的秘密》,现在好像有本叫什么《精通免杀》的,好像是比较新的,有时间再下载看看。
    这节主要是了解杀毒软件原理,书中写的都是比较老的了,现在的杀毒软件貌似有出现其他的一些杀毒方法,不过大多都还保留以前的一些杀毒方法,了解一下也不错。
    杀毒软件原理之一_特征码法:
    这种方法算是最简单。实现的方法是采集已知病毒样本,抽取其中的特征码,由于是病毒木马,所以特征码与普通程序不大一样。杀毒软件在扫描程序的时候,在文件中搜索是否含有与病毒库中相吻合的特征码,由其特征码与病毒一一对应,就能判断其为病毒。特征码有两个部分,一个是特征位置,另一个是狭义的特征码,也就是说,当杀毒软件利用特征码法扫描病毒的时候要满足两个条件,程序的某一位置要与病毒库中某一位置想同,另外的特征码也要相同。但是这种方法对病毒库的依赖性强,若病毒库中没有该病毒的特征码就检测不出来,所以病毒库维护成员需要及时更新病毒库,而且如果检索5000种病毒,就需要对5000种特征码进行检索,这样的话效率很低,也很费资源。因此在这方面我们能利用修改特征码,从而达到躲避特征码法的目的。特征码还是有优点的,它能立刻检测出已知的病毒,误报率低。
    杀毒软件原理之二_校验和法
    首先计算正常文件的校验和,定期不定期的检查文件的校验是否与正常的校验和一样,因此能检测文件是否被感染,这样可以拟补特征码的弱点,也就是能发现未知的病毒。校验和法通常能在两个地方实现,分别是杀毒软件、应用程序本身,杀毒软件计算被查文件正常运行时的校验和,然后进行比较,而应用程序本身也能有这种功能,计算其正常运行时的校验和,然后达到自检测功能。虽然能够发现未知病毒,但是对已知病毒这种方法也辨别不出该病毒的类型,而且误差率极高,因为被查程序可能会进行更新或者其他情况改变了校验和。
    杀毒软件原理之三_行为检测法
    这个方法是利用病毒特有的行为特征进行监测,因为病毒有许多共同的行为,都是比较特殊的,所以当程序运行的时候,可以进行监视,发现有这些行为,就会报警。什么是特有的行为呢?病毒可能会占有一些特殊的内存,也经常会改变某个内存的内容啥的。
由于是比较老的书,大多都是写这三种方法,现在估计有新的方法出现了,但是许多杀毒软件依旧保留着这三种方法,也就是说在近期内我们还是能利用传统的免杀方法来躲避杀毒软件。

        上面谈了杀毒软件利用的一些杀毒方式,那几个基本上所有杀毒软件都会用到。现在谈一下杀毒引擎其他的一些杀毒方式,包括云查杀、虚拟机技术和实时监控技术。
    虚拟机技术中的虚拟机指的并不是类似VM的那种虚拟机,这种虚拟机技术能为待查程序提供一个虚拟的执行环境,提供它可能用到的一切元素,包括硬盘,端口等,让它在其上自由发挥,最后根据其行为来判定是否为病毒。在虚拟机技术中,能嵌入行为监测法和校验和法等其他技术。这种技术被应用在大多数的杀毒软件中,不过这种技术貌似很占资源。
    实时监控技术并不是什么新的技术了,但是也算是比较主流的技术,要达到实时监控的功能并不是那么容易,因为大多数应用程序都不可能随意监控系统活动,因此实现这功能基本上都使用了驱动编程技术。实时监控可以包括许多方面的,流量监控、行为监控等,其实就是一个文件监视器。它会在文件打开,关闭,清除,写入等操作时检查文件是否是病毒携带者,如果是则根据用户的决定选择不同的处理方案,如清除病毒,禁止访问该文件,删除该文件或简单地忽略。这样就可以有效地避免病毒在本地机器上的感染传播,因为可执行文件装入器在装入一个文件执行时首先会要求打开该文件,而这个请求又一定会被实时监控在第一时间截获到,它确保了每次执行的都是干净的不带毒的文件从而不给病毒以任何执行和发作的机会。
    云查杀技术是在云技术的基础上发展的,云技术的开发主要目的是让客户端“变轻”,例如将许多病毒库放在几十几百个的终端上,客户端将待查文件的特征码发送至各个终端进行对比。这种技术的优点是能减少客户端的负担,而且一般杀毒软件提供商都会假设许多的终端,只要网速OK的话杀毒的速度还是挺快的,缺点是对网络有依赖,如果没有网络连接估计就不能实现了。
    我们能发现无论是虚拟机技术、实时监控技术还是云查杀技术,基本上都会用到特征码法、校验和法和行为监测法,那些技术是基本的工作原理。

你可能感兴趣的:(免杀技术)