Тест бесплатных проактивок: Проверяем free-версии Avast, Avira, AVG, Comodo, ClamAVВ прошлой статье под пресс нашего редакционного катка попали лидеры мирового антивирусного фронта. В этом же выпуске мы обратим свои взоры на самые что ни на есть халявные (а потому популярные) антивирусные продукты.
Этим отличия от прошлого теста не ограничатся — мы будем тестировать не эвристику, а проактивную защиту. А что же такое проактивная защита? Разные компании используют различные названия: реальная защита, защита в реальном времени и так далее, но суть одна: проверка файла на вредоносность осуществляется в процессе его работы. Это и отличает данную технологию от эвристики, задача которой состоит в том, чтобы определить статус файла еще до его запуска. Если эвристические сигнатуры обычно проверяют наличие подозрительных особенностей исполняемого образа, эмулируют машинный код или вызовы системных функций, то вся проактивка, как правило, следит за активностью файла в системе. В основном это достигается с помощью перехватов некоторых системных функций, отвечающих за работу с файлами, реестром, процессами и сетью. В качестве испытуемых были выбраны пять антивирусов. В этом краштесте я буду пытаться обойти AV-продукты от Avast, Avira, AVG, Comodo, ClamAV. А теперь — немного конкретики о версии каждой программы и ее настройках. Представляем подопытных Avira AntiVir PersonalПервый в списке тестируемых антивирусов: Avira AntiVir Personal — Free Antivirus. Версия 9.0.0.13. В этом продукте присутствует один модуль, который, похоже, выполняет роль проактивной защиты — AntiVir Guard. Его я, естественно, включил. Опции довольно скудные, помимо настройки «агрессивности» анализа я больше ничего из того, что могло бы повлиять на качество защиты в реальном времени, не обнаружил. avast! FREE AntivirusСледующий подопытный — avast! FREE Antivirus, версия 110319-1. У аваста, в отличие от авиры, есть целая секция «Экраны в реальном времени». Я убедился, что все модули (а особенно «Экран поведения» — видимо, у аваста проактивная защита именуется именно так), входящие в эту секцию, включены. AVG Anti-Virus Free EditionПоследний антивирус в нашем тесте, который начинается на букву «a» — AVG. Я тестировал AVG Anti-Virus Free Edition, версия 10.0.1204. Этот антивирус не отличается большим количеством настроек. Насколько я понял, проактивная защита представлена в компонентах Resident Shield, Anti-Rootkit, Anti-Virus и Identity Protection. ClamAVПродукт Immunitet 3.0 от ClamAV довольно прост в использовании. Большинство настроек представлено radiobutton’ами — «да» или «нет». Защиту в реальном времени здесь обеспечивает компонент Monitor Program Start. Я дополнительно включил детектирующий движок ClamAV, который был по умолчанию отключен. Отмечу, что при установке я выбрал версию Free (Cloud + AV), а не Trial, которая значительно превосходит бесплатный аналог по функциональности. Comodo Antivirus FreeПоследний исследуемый антивирусный продукт — Comodo Antivirus Free, версии 5.3.181415.1237. В Comodo, в отличие от предыдущих антивирусов, присутствуют очень богатые настройки — интерфейс предлагает нашему вниманию огромное количество галочек и ползунков. Проактивная защита обеспечивается компонентой Defense+, которая также гибко настраивается. Я выбрал максимальный уровень защиты, установив Paranoid Mode, который, правда, практически не отличается от Safe Mode. Сама методика тестирования очень простая: каждый тестовый файл запускается, а затем я фиксирую (или не фиксирую) предупреждение от антивируса. Тест первый: прописываемся в автозапускПростейший вариант — просто чтобы проверить, работает ли проактивная защита вообще. Итак, первый тестовый образец всего лишь прописывает сам себя в «святая святых» Windows — автозапуск по ключу реестра hklm\software\windows\currentversion\run. Часть исходного кода:
Алгоритм работы этой программы очевиден — получение полного пути самого себя и последующая запись в автозагрузку в реестре. Это один из самых популярных у зловредов вариантов добавления программы в автозапуск. И каковы результаты? Довольно странно, но самый примитивный способ закрепления зловреда в системе был обнаружен только двумя антивирусами: Avast и Comodo обнаружили угрозу, остальные же не помешали записи в авторан. Тест второй: получаем права отладчикаСледующий образец я создал, чтобы проверить, как исследуемые антивирусы работают с Token’ами (цифровыми ключами доступа). С этой целью я накидал простую программу, которая выставляет себе права отладчика. Фрагмент исходника:
Код довольно примитивен — получаем токен текущего процесса, а затем ему назначаются привилегии отладчика с помощью функции AdjustTokenPrivileges. И что же? Снова Comodo и Avast справились с этой «угрозой», остальные спокойно промолчали. Ситуация весьма удручающая. Тест третий: инжект в память чужого процессаСделаем пример посложнее, а именно — программку, выполняющую инжект в память другого процесса. Под «инжектом» я подразумеваю выделение памяти в чужом процессе, запись туда своего кода и дальнейший старт удаленного потока. Этот метод можно назвать классическим среди современных вирусов, так как он позволяет выполнять вредоносные действия «под» доверенным процессом. Фрагмент кода программы-образца:
Здесь с помощью функций Process32First/Process32Next я ищу необходимый мне процесс iexplore.exe. Далее, когда он найден, я получаю ID процесса, хэндл процесса и выделяю в адресном пространстве последнего регион памяти с помощью VirtualAllocEx. После этого я записываю в выделенную память код моего потока ThreadFunc: Завершающий этап — запуск удаленного потока — выполняется с помощью функции CreateRemoteThread. И как справились с этим антивирусы? Да абсолютно аналогично: Avast и Comodo обнаружили «угрозу», а остальные — нет. Хотя антивирус AVG и выдал предупреждение о неизвестной угрозе, но сделал он это только после того, как удаленный поток стартовал. Кроме того, Anti-Virus Free Edition выдавал предупреждения через раз, поэтому я поставил ему +/- за этот файл. Тест четвертый: глобальные хукиДальше я решил проверить, как антивирусы обнаруживают установку глобальных хуков. Глобальный хук — процедура, через которую система пропускает определенный тип событий, например, данные, поступающие от клавиатуры. Установка глобального хука — весьма популярная у зловредов техника, используется она для перехвата данных, вводимых пользователем, поэтому весьма любопытно проверить, смогут ли испытуемые антивирусы помочь обычным юзерам. Фрагмент кода основного файла: Чтобы перехватывающая функция обрабатывала все события в системе, она должна быть помещена в DLL в виде экспортируемой функции. Поэтому вначале я получаю базовый адрес вспомогательной библиотеки с помощью LoadLibrary, а затем адрес экспортируемой функции HookProc из последней библиотеки. Далее API’шка SetWindowsHookEx устанавливает хук на клавиатуру. Код экспортируемой функции в DLL вполне тривиален. Как на это отреагировали испытываемые антивирусы? Внедрение библиотеки обнаружил только Comodo. Даже Avast, который успешно отбивал «атаки» трех предыдущих поделок, сдал. О других антивирусах я вообще молчу — они также ничего не выдали. Тест пятый: модификация hostsНу и напоследок я решил проверить, как же антивирусы реагируют на модификацию системного файла hosts, который отвечает за привязку определенных доменных имен к IP-адресам. Фрагмент кода, ответственного за правку hosts:
Код не должен вызывать вопросов — все просто и очевидно. Я решил использовать не связку ReadFile/WriteFile, а маппирование файлов с помощью MapViewOfFile, исключительно для удобства. С этим заданием справились опять же только продукты от Avast и Comodo, что, в общем-то, было уже ожидаемо. Заключение
Бесплатные версии продуктов показали себя не с лучшей стороны — их проактивка не мониторит даже совершенно стандартную вирусную активность. Может быть, платные версии справились бы лучше? Как знать, как знать. С другой стороны, во всем можно найти положительные стороны — помнишь нашу статью про тест халявных антивирусов и защиту от drive-by угроз (xakep.ru/post/54161/default.asp)? Вроде бы, в нем они неплохо себя показали... |