Friday, April 2, 2010

防病毒软件的引擎(Antivirus engine)与病毒特征库(virus database)

防病毒软件的引擎是软件的技术核心。要做到准确,高效和快速,既不可漏杀,也不可误杀。病毒特征库则定义病毒的特征串或模式。两者结合起来才能有效的防病毒。
现在的病毒有时是统称,包括了病毒(viruses),垃圾(spam,通常特指垃圾邮件), 钓鱼式攻击(phishing attacks),间谍软件(spyware)和广告软件(Adware)等。病毒通常有自我复制的特征。垃圾邮件我想大家都很清楚。钓鱼式攻击通常指伪装的网页或邮件用于窃取用户信息。间谍软件是在未经用户未知的情况下搜集用户个人信息的软件。广告软件是附带广告的软件用于营利。它们的共同特点是:用户并不想要,可能占用用户的资源甚至损害用户利益。读者可以理解很多威胁是与Internet相关的,所以很多软件公司除提供防病毒软件外,通常还提供专门的网络安全(Internet Security)软件,如Symantec和AVG。
那么为什么称引擎是软件的核心哪?这是因为现代的这些恶意unwanted软件通常为装得很好,有的经过加密或压缩,有的有很强的反防病毒软件功能,使得旧的防病毒软件引擎可能无法查杀。新一代的防病毒软件引擎,不但可以扫描病毒特征串(dictionary of virus' signature),还用启发法(Heuristic)来发现未知病毒,甚至在虚拟机上运行可疑程序以发现危险。好的引擎还要保证反病毒软件自身不被侵害,做到实时检测,并确保操作系统的完整(Integrity),这样才能确保不漏杀。举例来说,如果系统内核被病毒控制了,当防病毒软件内核API(应用程序接口)进行文件读写以进行扫描,病毒可能会改写API地返回结果以欺骗反病毒软件。同样,误杀也会给用户带来不必要的麻烦。所以有最新技术,良好算法的引擎很重要。

1 Comment:

Anonymous said...

Very useful, please continue writing.

Thanks

Post a Comment