先看看云引擎的优势:
1. 反应迅速,因为只要确定病毒,基本可排除误报的可能,可立即升级。
2. 具备互联网优势。
3. ……
传统引擎的优缺点基本是前者的反向,那么有没有一种引擎可以兼顾二者呢?
我们知道,特征码提取是一个“缓冲偏移+校验”的构架。例如md5值是“全文缓冲0偏移+md5校验”。如果我们固定这个缓冲,并且用更快的校验方法那么就可以实现“固定缓冲大小的X偏移+校验”的模式,在拓展一步“缓冲偏移+校验+……+缓冲偏移+校验”可形成散列算法,有效控制误报。
“全文缓冲+明码”可以提取流查毒特征,用多模匹配算法;也可以“缓冲偏移+明码+缓冲偏移+校验+……”。
缓冲区数据是最关键的,形成一个可以提取唯一识别文件特征的数据区是可以实现的。例如“熊猫烧香”,固定缓冲区有个数据结构存储PE图标,模糊识别一下“熊猫图标”即可报疑似病毒。
从一定意义上说,传统引擎和云引擎并不矛盾,本质都是相同的,只不过实现方式不同罢了。我们所说的面向互联网的免费杀毒模式即是两者的结合,云不是md5也可以实现。我们看看clamav里面的特征码,有散列特征,有md5,,,引擎特征会朝着多元化发展,反病毒引擎也会朝着多元化发展,而面向互联网的反病毒引擎自然是最贴近用户的分支。
那么传统引擎真的落伍了吗?
答案至少目前是否定的,原因很多,先看云引擎的局限性:
1. 断网后无法查杀。
2. md5校验查杀率低,这里的查杀率是指文件改变任何一个字节会漏杀。
3. 无法解毒。
4. 无法脱壳。当然,即便脱壳,由于脱壳程序不同,脱出的文件和原文件md5值不同,造成md5值冗余。
5. 查毒慢。我们知道IO消耗了70%左右的时间,整个文件读取是比较慢的。
6. ……