杀毒软件原理



     杀毒软件原理

  杀毒软件的构造的复杂度程度要远远高于木马或病毒。鉴于木马病毒越来越向系统底层发展,杀毒软件的编译技术也不断向系统底层靠近。如主动防御技术,就是应用RING0层的编译技巧。

杀毒软件一般由扫描器、病毒库与虚拟机组成

扫描器是杀毒软件的核心,用于发现病毒,杀毒软件的好坏就直接取决于他的扫描器编译技术与算法是否先进,杀毒软件不同的功能对应着不同的扫描器,也就是说,大多杀毒软件都是由扫描器组成的。而病毒库存储的特征码形式取决于扫描器采用哪种扫描技术。它里面存储着很多病毒所具有的独一无二的特征字符,称为特征码(用来区分一个文件是否是病毒)分为文件特征码和内存特征码。文件特征码存在于一些未执行的文件,如exejpg。。都可能存在文件特征码。而内存特征码仅存在于内存中已运行的应用程序。

而虚拟机是最近引入的概念,它为待查的可执行程序创建一个虚拟的执行环境,提供它可能用到的一切元素,包括硬盘,端口等,让它在其上自由发挥,最后根据其行为来判定是否为病毒

杀毒软件的原理就是匹配特征码。当扫描到一个文件,杀毒软件会检测这个文件里是否包含病毒库里所包含的特征码,如有就查杀。

基于文件的杀毒技术:第一代扫描技术、第二代扫描技术、算法扫描。

  1. 通配符扫面技术

     它为第一代扫描技术的分支,通配符可理解为具有一定意义的符号。简单的扫描器支持通配符,应为鉴于字符串扫描技术的执行速度与特征码长度限制,使其退出历史。

    扫描器中的通配符一般用于跳过某些字节或字节范围,以至于现在有些扫描器支持正则表达式

    例如我们的病毒库中有这样一段特征码:
    0400 B801 020E 07BB ??02 %3 33C9 8BD1 419C

    上面的特征码可以解释为:
    1、尝试匹配04,如果找到则继续,否则跳出。
    2、尝试上一匹配目标后匹配00,如果找到则继续,否则跳出。
    3、尝试上一匹配目标后匹配B8,如果找到则继续,否则跳出。
    4、尝试上一匹配目标后匹配01,如果找到则继续,否则跳出。
    5、尝试上一匹配目标后匹配02,如果找到则继续,否则跳出。
    6、尝试上一匹配目标后匹配0E,如果找到则继续,否则跳出。
    7、尝试上一匹配目标后匹配07,如果找到则继续,否则跳出。
    8、尝试上一匹配目标后匹配BB,如果找到则继续,否则跳出。
    9、忽略此字节。
    10
    、尝试上一匹配目标后匹配02,如果找到则继续,否则跳出。
    11
    、在接下来的3个位置(字节)中尝试匹配33,如果找到则继续,否则跳出。
    12
    、尝试上一匹配目标后匹配C9,如果找到则继续,否则跳出。
    13
    、尝试上一匹配目标后匹配8B,如果找到则继续,否则跳出。
    14
    、尝试上一匹配目标后匹配D1,如果找到则继续,否则跳出。
    15
    、尝试上一匹配目标后匹配41,如果找到则继续,否则跳出。
    16
    、尝试上一匹配目标后匹配9C,如果找到则继续,否则跳出。

  这种扫描技术通常支持半字节匹配,可以更精确匹配特征码,早期加密病毒用这种方法都可以检测出来。

2、智能扫描

  智能扫描属于第二代扫描技术的一个分支,它会忽略检测文件中像NOP这样无意义的指令,对于文本格式的脚本病毒或宏病毒,则可以替换掉多余的例如空格、换行符、制表符等空白字符,这一切替换在扫描缓冲区就会执行,提高扫描器的检测能力。

3、近似精确识别法

    近似精确识别法同样是属于第二代扫描技术的一个分支。

  3.1多套特征码

    采用两个或更多字符串集来检测每一个病毒,如果扫描器检测其中一个特征符合,就会警告发现变种,但不会执行下一步操作。如多个特征码全部符合,则报警发现病毒,并执行下一步操作。

3.2效验和

   这个方法的思路是将每一个无毒的文件生成一个校验和,等待下次扫描时在进行简单的校验和比对即可,如果校验和有所变化,在进行进一步的扫描,这样有利于提升扫描器的效率。效验和是一个复杂的概念,简单的说就是通过对病毒中的某一段代码的计算,从而得出一个值(例如123XY4),与MD5加密有些相似,当然这样说不完全正确。

卡巴斯基的密码校验和扫描技术

  特殊的扫描方法必然会导致特殊的特征码,所以密码校验和的真正特征码通常体积都比较大,通过脚本木马的一些实验,卡巴斯基7.0对字母的大小写不是很敏感,此外对文件代码的变动也不是很敏感。也就是说,只要包含特征码的这行代码在卡巴斯基的校验和取样范围之内,那么它就会报毒,而如果你将其移出这个范围,那么肯定会导致文件不能正常运行,唯一的办法就是更改代码结构。

 

4.行为监测

   利用病毒的特有行为特征性来监测病毒的方法,称为行为监测法。通过对病毒多年的观察、研究,有一些行为是病毒的共同行为,而且比较特殊。在正常程序中,这些行为比较罕见。当程序运行时,监视其行为,如果发现了病毒行为,立即报警。

计算机病毒的防治策略

 即防毒、查毒、解毒

 防毒:根据系统的特征,采取相应系统安全措施防御病毒侵入计算机。查毒:是指对于确定的环境(内存、文件、引导区、网络),能准确的报出病毒名称。解毒:指从感染对象中清除病毒根据不同类型病毒对感染对象的修改,按照病毒的特征进行恢复。

你可能感兴趣的:(扩展知识)