反病毒引擎一日一问
安天实验室 反病毒引擎研发中心
问: 什么是反病毒引擎?为什么称之为引擎
答:反病毒引擎是一组可以通过接口调用、依托可维护的数据结构对输入对象进行病毒检测处理的程序模块的统称。
显然反病毒引擎工作所依赖的可维护规则数据的数据结构对应的文件载体就是我们常说的病毒库、或者病毒规则库。
这样的表达有些拗口,假定你是一个拥有开发经验、但从未研发过反病毒技术的程序员,可以这样看,反病毒引擎就是一个SDK,你只需要按照他的接口定义,把要检测的文件或者其他对象传递给他,他就会告诉你这个文件是否有病毒,有什么病毒。如果这个文件是被感染式病毒感染的对象,原则上说,反病毒引擎还可以送回给你复原的文件。而在这个过程中,你无需对反病毒技术有任何了解,所有的一切反病毒引擎为你搞定。因此安全产品对病毒的检测能力,实际上是由其引擎能力决定的。
引擎的本意就是发动机,IT技术领域借用了这个名字,用以说明一些可以通过外部接口和配置定义调用的复杂程序模块,例如游戏引擎、3D引擎、搜索引擎等。
而反病毒引擎之所以称为引擎,一方面因其是反病毒技术的核心,同时也因其可以被开发者“驱动”,为研发反病毒产品提供动力。
因此反病毒引擎通常由调用接口、引擎模块、病毒库和外围模块组成。这个我们也可以与发动机做一个类比。其实发动机是一整套动力输出设备,包括变速齿轮、核心引擎和传动装置等等。我们可以形象的理解为反病毒引擎的调用接口就是发动机的传动装置,而引擎的外围模块就是变速齿轮等装置。
汽车的引擎发动机从研制、改进发展至今己经有三百多年的历史过程,这是一个漫长的历史岁月。而反病毒引擎的研发改进过程也同样艰辛,它是反病毒工作者与恶意代码作者斗争的产物,是与恶意代码对抗过程中经验积累的结晶,一个优秀的反病毒引擎决不是一朝一夕的产物。反病毒引擎也需要不断提供燃油和维护,这才是反病毒引擎开发者更重要的工作。需要持续改进数据处理、检测分支,不断增加维护病毒检测规则等等。 |