Антивирусен двигател (Antivirus engine) или още антивирусно ядро
Една от основните части на антивирусната програма е така наречения антивирусен двигател – модул, отговарящ за проверката на обектите и обезоръжаването на вредните програми и компоненти. От това как е разработен и какви методи за откриване и евристика използва той, зависи качеството на вирусите и като следствие, нивото на защитата, предоставено от антивирусната програма.
Основните критерии, по които може да се определи качеството на антивирусния модул са:
• Нивото на откриване с евристични анализатори.
• Нивото на лъжливите сработвания. Ако за 100% не заразени файлове, програмата рапортува за възможно заразен файл, то това е лъжливо сработване. Фалшива тревога.
• Поддръжката на голямо количество опаковчици и архиватори. Това е много важен фактор, защото създателите на вредни програми, написали и получили няколко различни вируса ги опаковат в няколко изпълними модули, след което ги разпространяват. За антивируси поддържащи почти всички познати архиватори, няма да е трудно да идентифицират всички тези модификации на вируса.
• Честота и размер на обновяванията на антивирусната база. Честото обновяване гарантира, че потребителя винаги ще бъде защитен и от току що появили се вируси.
• Възможност за обновяване на самия антивирусен двигател, без обновяване на цялата програма. В някои случаи, за изолирането на вирус трябва да се обнови не само антивирусната база, но и самия антивирусен двигател. Ако софтуерът не поддържа подобна опция, то потребителя може да остане беззащитен пред новите вируси, а и тази възможност позволява да се подобри двигателя на антивирусната програма или да се коригират възникнали или открити пробиви и грешки.
Антивирусният двигател (Anti-Virus Engine) е основен компонент във всяка антивирусна програма.
За откриването на вируси са реализирани няколко технологии при повечето антивирусни двигатели:
• Търсене по “сигнатура” (байтове с уникална последователност)
• Търсене по контролни суми или CRC (контролни суми с уникална последователност на байтовете)
• Използване на редуцирани маски.
• Криптоанализ.
• Статистически анализ.
• Евристичен анализ.
• Емулация.
- Търсене по “сигнатура”. Сигнатура - това е уникална “линия” байтове, която еднозначно характеризира тази или онази вредоносна програма. Сигнатурното търсене се използва за изолиране на вируси и други вредни програми, като се прилага от времето на най-първите антивирусни програми да сега. Неоспоримо качество на сигнатурното търсене е - скоростта на работа и възможността да открива няколко вируса с една сигнатура.
- Търсенето по контролни суми (CRC - cyclic redundancy check) се явява модификация на търсенето по сигнатури. Метода е разработен за да се избегнат основните недостатъци на сигнатурното търсене - размера на базата и намаляване на вероятността от лъжливи сработвания. Същността на метода се състои в това, че за да се открие вредния код се взима не само “опорния” ред - сигнатура, а по-точно казано контролната сума на този ред и местоположението на сигнатурата в тялото на вредоносната програма. Местоположението се използва, за да не се събират контролни суми за целия файл.
- Използването на маски за разкриването на вредния код, много често е усложнено от наличието на шифрован код (при така наречените полиморфни вируси), защото в тези случаи, или е невъзможно да се избере маска, или маската с максимален размер не удовлетворява условието за еднозначна идентификация на вируса, без лъжливи сработвания.
- Криптоанализът се изразява в следното: по известен базов код на вируса и по известен зашифрован код (или по подозрителен код, приличащ на зашифровано тяло на вирус) се възстановяват ключовете и алгоритъма на програмите на разшифровчика. След това, този алгоритъм се прилага към зашифрования участък и в резултат от това се явява разшифрованото тяло на вируса. При решението на тези задачи се налага използването на системни уравнения.
- Статистическият анализ също се използва за откриване на полиморфни вируси. По време на своята работа, скенера анализира честотата на използваните команди, прави таблица на срещащите се команди и на основата на тази информация прави извод за заразяването на файла с вирус. Този метод е ефективен за търсене на някои полиморфни вируси, защото тези вируси използват ограничен набор команди, докато чистите файлове използват съвсем други команди, с друга честота.
- Евристичен анализ. С увеличаването на броя на вирусите, антивирусните експерти се замислили над идеята за разкриване на вредни програми, за съществуването на които антивирусната програма още не знае (няма съответстващи сигнатури). В резултат били създадени така наречените евристични анализатори. Те представляват набор от програми, които анализират кода на изпълнимите файлове, макроси, скриптове, памети или застрашени сектори за изолиране в тях на различни типове вредоносни компютърни програми.
Съществуват два принципа на работа на анализатора.
Статичен метод. Търсене на общи кратки сигнатури, които присъстват в повечето вируси (така наречените “подозрителни команди”).
Динамичен метод. Този метод се е появил едновременно с внедряването в антивирусните програми на емулации на команди. Същността на метода се състои в емулация на изпълнение на програмите и протоколиране на всички техни “подозрителни” действия. Въз основа на този протокол се взима решение за възможно заразяване с вирус. За разлика от статичния, динамичния метод използва повече ресурси, но и нивото на откриване е по-високо.