安天实验室·反病毒引擎14年 卷首语 | AVL SDK引擎演进 | 原创技术文章&报告 | 引擎一日一问
反病毒引擎一日一问
安天实验室 反病毒引擎研发中心 2014年11月11日
问:反病毒引擎的基本思想是在何时成熟的?
答:反病毒引擎的基本思想成熟我认为有两个标志,第一是把各种病毒检测问题,转化为程序模块+可维护的规则集来实现。第二是对这些程序模块完成了包括分流器、预处理器、检测器、和处置器的抽象。
安天的同事在《反病毒技术发展的四部曲》一文对此有如下描述,我基本同意他的观点:
尽管实际的反病毒引擎机理要比其抽象过程更为复杂,但这种抽象思路其实在DOS时代已经完成,而后则是持续的能力迭代和归一化维护。其中令笔者经常感叹的一个掌故是,最早反病毒引擎开始脱壳处理并非是因为病毒作者利用其进行免杀,而是一些软件作者的机器感染病毒导致所开发编译的的软件工具也被感染,但因为作者自己没有发现,发布时又使用了压缩壳,导致病毒不能被检测,但却可以正常传播。而此时勇敢站出来,对看似并非很主流事件进行脱壳处理对的厂商,由于建立范式后开始持续的相关能力积累,在木马时代到来是,就获得很大的技术优势。
抽象模块 |
DOS时代解决的问题 |
分流器 |
将文件划分成有毒和无毒格式,加快检测速度,降低误报。 |
预处理器 |
解ZIP、RAR等压缩包、脱PKlite等早期壳、基于虚拟机和相关模块对DOS时代加密、变形病毒的解密处理。 |
匹配器 |
基于KMP等算法的连续特征匹配、正则匹配的优化、基于缓冲区定位寻址和偏移的特征哈希检测 |
鉴定器 |
对感染式病毒基于加权特点的启发式扫描。 |
处置器 |
基于参数和脚本的感染式病毒清除 |
表 1反病毒引擎抽象
从上表即可看出,DOS时代后期本地反病毒引擎的模型已经基本成形,到了1996年前后,对针对复杂结构的可执行体PE的检测处理和针对复合文档Office的宏病毒的检测处理方式库化后,本地反病毒引擎的基本思想就已经彻底成熟。
但同时来看,最近几年,在核心检测机理上,SVM带来了新的变化,其不再是传统的大扁平规则集。而安天提出的在网络上支持多层次检测、实时/异步结合、中间向量可输出等特性的NG-AVE的思路,也实际上在传统引擎的基础上做了更多的尝试。