杀毒软件(Anti-virus Software),也称反病毒软件或防毒软件,是可以用来扫描文件,以确定和消除计算机病毒、特洛伊木马和其他恶意软件的一类软件 。杀毒软件一般由扫描器、病毒库与虚拟机组成 。
对于一款杀毒软件来说,一次成功的病毒查杀过程,通常都要经历病毒识别、病毒报警、病毒清除、文件或系统复原这几个过程 。最关键的是杀毒引擎技术,从广义上来讲,是指通过文件、网页监视等实时监控行为,运用文件识别技术来完成病毒扫描、识别、报警以及清除,甚至防御的一整套的机制,因此引擎技术也决定了杀毒软件的优劣,而引擎所包含的众多技术中,病毒识别技术又是重中之重 。病毒库是存储病毒的特征码 。而虚拟机可以使病毒在一个由杀毒软件构建的虚拟环境中执行,与现实的CPU、硬盘等完全隔离,从而可以更加深入的检测文件的安全性 。
1、检测杀毒软件的方法
【杀毒软件的原理】检测病毒方法通常有:特征代码法、校验和法、行为监测法、软件模拟法、启发式扫描 。
特征代码法:“同一病毒或同类病毒的某一部分代码相同”的原理来识别病毒文件 。该技术是利用留在受感染文件中的病毒特征值进行检测 。发现新病毒后,对其进行分析,根据其特征编成病毒码,加入到数据库中 。今后在执行查毒程序时,通过对比文件与病毒数据库中的病毒特征码,检查文件是否含有病毒 。
校验和法:此法计算文件的校验和并保存,可定期或调用文件时进行对比,从而判断文件是否被病毒感染 。
行为监测法:此法根据病毒的行为特征来识别病毒,这需要对病毒行为进行详细的分类和研究,分析那些病毒共同的行为,以及正常程序的罕见行为,根据程序运行时的行为进行病毒判断和预警 。
软件模拟法:这种方法通过模拟病毒运行的方式来检测病毒特征 。
启发式扫描是特征码扫描的一个分支,病毒完成特定的功能需要有相应的代码,启发式扫描的特征码就是针对病毒的这些功能总结出来的一套可以判定文件行为的代码 。
启发式扫描就是给各种威胁计算机安全的代码进行加权,举一个简单的例子,杀毒软件设置了如下加权标准:
在系统目录下释放文件得20分
格式化分区得100分
插入远程线程得50分
……………
一个新病毒,他会在系统目录下释放3个文件并且会插入到IE的进程中,杀毒软件使用了启发式扫描并定义了一个判定病毒的分数 。假设这里的分数为60分,当杀毒软件对某文件的加权得分达到60分之后,就将该文件判定为病毒,不到60分则放过该文件 。
2、脱壳
加壳其实就是把木马病毒文件用加密算法压缩,让杀毒引擎无法读取这个文件,从而不能和特征库匹配 。
加壳和脱壳,简单说就是软件的加密和解密 。病毒、木马加壳已经是非常普遍的现象了,目前主要有两种脱壳技术:算法脱壳和动态脱壳,目前主流的杀毒软件都引入了虚拟机技术,虽然这会占用一定的系统资源,但使带壳的病毒文件,运行于虚拟机之上,不仅可以更好的识别各种壳,还可以有效防止病毒真正的感染文件 。
算法脱壳:此法是根据加壳程序的解密算法对病毒进行脱壳,虽然有速度快、消耗资源少的优点,但也有无法脱变形壳的缺点 。不过,很多杀毒软件还是能够向用户发出警报,以弥补无法脱壳的缺憾 。
动态脱壳:众所周知,只有让加过壳的程序运行起来,才能将其还原成本来的面目,此时为了避免程序运行后真正感染系统文件,因此引入了虚拟机技术,为带壳的病毒程序虚拟一个计算机环境,使它运行于虚拟环境 。此法虽优势明显,但也会消耗很多的系统资源 。
3、特征码扫描样例
病毒特征码需要满足以下几个要求:
1、不能从数据区提取,因为数据区的内容很容易改变,一旦病毒程序变更版本,改变了数据内容,特征码就会失效 。而其它的区块则相对来说保险一些 。
2、在保持特征码的唯一性的前提下,应当尽量使得特征码短小精悍,从而减少检测过程中的时间与空间的复杂度,提高检测效率 。
3、经过详细的逆向分析之后选取出来的特征码,才足以将该病毒与其它病毒或正常程序相区别 。
4、病毒程序的特征码一定不能匹配到普通程序,比如选取病毒入口点的二进制代码,就必然出现误报的情况 。
5、特征码的长度应当控制在64个字节以内 。
推荐阅读
- 槭树的种类 槭树科植物有哪些
- 开源免费的VLC播放器推出3.0.8桌面版 修复多处高危安全漏洞
- 十大机器学习算法数据科学家最常用的 新手必知
- MySQL 8 和 MySQL 5.7 在小型设备的内存消耗分析
- 梦到攀爬高处特别艰难特别害怕爬上去了 梦见在危险的高处攀爬
- Python处理session最简单的方法
- 浅谈韩国茶礼的叶茶法
- 信息流的四项指标如何优化,优化技巧是什么?
- Python:如何判断一个url是以http开头的?
- 基于Redis实现Spring Cloud Gateway的动态管理