安天实验室·反病毒引擎14年 卷首语 | AVL SDK引擎演进 | 原创技术文章&报告 | 引擎一日一问
反病毒引擎一日一问
安天实验室 反病毒引擎研发中心 2014年11月10日
问:反病毒引擎是如何产生的?其主要技术思想是何时成熟的?
在80年代中后期,针对X86系统的病毒产生并发展,由于当时病毒总量有限,而且依赖于一定地缘性流行。因此早期的计算机病毒的对抗和处理,往往依赖于那些一对一的免疫程序或者专杀工具。 这种方式一般需要知道某种病毒即将流行,之后通过免疫程序设置感染标志欺骗病毒,或者从微机使用者,发现或者猜测有某种病毒开始,之后使用特定的专杀工具清除。效率比较差。 之后,一些开发专杀工具的程序员将工具作了简单的集成,添加了一个类似如下的字符界面:
Press 1-5 to Continue…. |
这种工具只是将若干个专杀工具置于一个统一界面调度下而已,并没有实质性的进展。
随着病毒数量的增多,上述方式显然不再适合。一些初步具有商业软件风格的反病毒软件开始产生,这些软件可以自动完成对软件可查杀的所有病毒的检测,但早期的一些反病毒软件还只是简单的把若干个选择执行的模块串联起来而已。类似如下的流程。
比如一个完成对Boot检测的流程:
这种串接结构还不能称为反病毒引擎,它实际上做了大量的重复工作,耗费了资源,而且造成程序的结构混乱,不方便调试。
病毒引擎的最终出现,来自对病毒(样本)共性的提取,从而形成一组或者几组比较规范的用于病毒描述的数据结构。
可见反病毒引擎的产生,并不是基于早期安全工作者的先验设计和预言,而是病毒数量开始快速增长,导致反病毒工作者必须改善对抗过程,从而是反病毒走向了采用反病毒引擎+病毒库这种可以较低成本持续维护的归一化模型的结果。