防病毒軟件的引擎是軟件的技術核心。要做到準確,高效和快速,既不可漏殺,也不可誤殺。病毒特征庫則定義病毒的特征串或模式。兩者結合起來才能有效的防病毒。
現在的病毒有時是統稱,包括了病毒(viruses),垃圾(spam,通常特指垃圾郵件), 釣魚式攻擊(phishing attacks),間諜軟件(spyware)和廣告軟件(Adware)等。病毒通常有自我複製的特征。垃圾郵件我想大家都很清楚。釣魚式攻擊通常指偽裝的網頁或郵件用於竊取用戶信息。間諜軟件是在未經用戶未知的情況下搜集用戶個人信息的軟件。廣告軟件師附帶廣告的軟件用於營利。它們的共同特點是:用戶並不想要,可能占用用戶的資源甚至損害用戶利益。讀者可以理解很多威脅是與Internet相關的,所以很多軟件公司除提供防病毒軟件外,通常還提供專門的網絡安全(Internet Security)軟件,如Symantec和AVG。
那麽為什麽稱引擎是軟件的核心哪?這是因為現代的這些惡意unwanted軟件通常為裝得很好,有的經過加密或壓縮,有的有很強的反防病毒軟件功能,使得舊的防病毒軟件引擎可能無法查殺。新一代的防病毒軟件引擎,不但可以掃描病毒特征串(dictionary of virus' signature),還用啟發法(Heuristic)來發現未知病毒,甚至在虛擬機上運行可疑程序以發現危險。好的引擎還要保證反病毒軟件自身不被侵害,做到實時檢測,並確保操作係統的完整(Integrity),這樣才能確保不漏殺。舉例來說,如果係統內核被病毒控製了,當防病毒軟件內核API(應用程序接口)進行文件讀寫以進行掃描,病毒可能會改寫API地返回結果以欺騙反病毒軟件。同樣,誤殺也會給用戶帶來不必要的麻煩。所以有最新技術,良好算法的引擎很重要。