Статья журнала "Хакер"
Сравнительный анализ антивирусов 2005
Прошло больше года с публикации нашей предыдущей статьи с анализом эвристических анализаторов антивирусов. Мы решили вернуться к этой теме, расширив набор представляемых антивирусов, что получилось - читай ниже.
Вирусная инфекция знакома нам с детства. В последнее время с завидной регулярностью грипп появляется зимой и укладывает добрую половину сограждан в постель. Данное явление стало вполне закономерным и уже привычным. Люди привыкли к инфекции и приспособились. Сообщения об очередной эпидемии волнуют, пожалуй, только сердобольных домохозяек и дают пищу для разговоров старушкам на лавочках у подъездов. И все бы шло своим чередом, если бы в поток сообщений о "человеческой" заразе не вклинивались информационные строки о заразе иного рода - компьютерной. Бабушки разговоров на эту тему не ведут, домохозяйки же, найдя очередную заботу, бросаются обсуждать все ужасы компьютерных вирусов с подругами, занимая и так перегруженные телефонные линии. Без преувеличения можно констатировать: компьютерные вирусы – чума XXI века. Лучшие умы человечества сейчас трудятся над поиском вакцины! На сегодняшний день число антивирусных программ (далее АВП) перевалило за 2 десяток. Пользователи не спят… ломают головы над тем, какую АВП выбрать?? Взять бесплатную или отдать последние 100$, дабы обезопасить свою информацию?
Давайте попробуем разобраться какой антивирус действительно толковый и что к чему да почему. Особенно обратим внимание на мелочи, о которых помалкивают разработчики АВП.
На операционном столе следующие антивирусные программы:
• Stop
• Panda
• F-Prot
• AVG Anti-Virus
• Avast
• AntiVIR
• UNA
• Trojan Remover
• Антивирус Касперского (КАВ)
• Dr WEB’а
• Norton AntiVirus
• McAfee
• NODНа момент написания статьи все последние версии программ (при наличии standart, professional версий – естественно использовала версия проф) были скачанной с официальных сайтов разработчиков и обновлены.
Итак, начнем! Основной упор в тестировании делался на попытку обмануть, одурачить АВП различными способами. Проверялась эвристика и прочее важнейшие компоненты антивируса.
STOP: Очень расстроил это продукт. Заменяешь один байт в точке входа - файл не обнаруживается. Упаковываешь файл – та же картина: антивирус молчит. То же мне АВП… Ого…дак он еще и платный!!! Ужас…. Я согласен платить деньги за лицензионный софт… но он должен быть соответствующего уровня. Мда…
PANDA: КАК МОЖНО ПРОВОДИТЬ ДИСКУСИИ ПО ПОВОДУ, ЧТО ЛУЧШЕ ПАНДА ИЛИ ВЕБ, ПАНДА ИЛИ НОРТОН, ПАНДА ИЛИ АВП? ОНА ДАЖЕ НЕ УМЕЕТ РАСПАКОВЫВАТЬ СТАНДАРТНЫЕ УПАКОВЩИКИ! Люди не будьте слепыми. У панды только дизайн хороший.
F-Prot: аналогичен двум вышеперечисленным, единственное, что радует большущая база (более ста тысяч), но вот что-то я сомневаюсь, что тысяч 30 они туда не дописали вручную. Большой плюс этого продукта – он работает с вирусами для различных ОС (помимо Windows).
AVG Anti-Virus: никакого эмулятора. В основном смотрит только на точку входа, но иногда решается заглянуть в начало секции кода. Возьмем спуфку (я использовал Afx!AVSpoffer v.1.49by fij) и антивирус в 99% случаев молчал. 1% - находил вирус (смотрел на начало секции кода), но от упаковщика «умер» быстро. Меня заинтересовало вот что: если антивирус не имеет эмулятора и смотрит только в точку старта, значит, скорее всего, там нету и базы упаковщиков. Я просто упаковал червя UPX-ом (по-моему, более распространенного нету) и антивирус сразу замолчал. Как за такое деньги брать, не стыдно! Интерфейс тоже страдает, очень неудобный. Правда, оболочка – вещь индивидуальная… так что тут решайте сами!
Avast: включил, «натравил» его на Интернет-червя Qaz. Страшная табличка и женский голос «Waring there is a virus on your computer». Поменял один байт в точке старта - АВП продолжает «ругаться». Это приятно. После спуфки v.1.49 вирус дальше опознается. Эмулятора нету - это видно сразу. Попробую упаковать.
Хм… мне кажется упаковщики - самое эффективное средство против ВСЕХ антивирусов, спуфка - это так в помощь. В общем, антивирус умер. Попробуем упаковать оригинал. Как и ожидалось после простой упаковки UPX-ом антивирус утих. Поищем сигнатуру. Сигнатура для червя qaz хранилась по адресу .401f69 и после изменения этого байта антивирус замолчал. Странно, это ведь не начало секции, да и до точки старта далековато. Возникли подозрения, что он проверяет фиксированные адреса на короткие сигнатуры, что я и решил проверить, но к радости разработчиков это не оправдалось - червь Plage был опознан по ресурсам, а вот 3D stars по OEP. В общем, упаковщик у злоумышленника, и куча вирусов у вас на ПК.
AntiVIR: Так себе продукт. Ну давайте к делу. Qaz был спрятан спуфкой v.149 (при том, что уже есть спуфка 1.54). А вот с i.worm.Plage не удалось. Интересно, как он отреагирует на простой упаковщик. Мда…. Лень, наверное, авторам поддерживать кучу упаковщиков. Опять упаковщик сделал свое дело!
UNA аналогична вышесказанным. Дизайн слабоват. Распаковки упаковщиков – нет, даже самых популярных. Если спуфка не справляется, что бывает крайне редко, то, как всегда, используем упаковщик.
Trojan Remover: не опознал ни одного из "старых отцов". Из более новых Magistr'a и еще парочку опознал по ресурсам, похоже больше он никуда не смотрит. АВП написана не шибко грамотно, если не ошибаюсь, на Delphi, эмуляторов кода нет. Обновление базы сделано самым неудачным образом, который только можно встретить, база вирусов крохотная (около 8000) и, вообще, утилита для развлечения мне кажется, а еще и денег за нее просят.
Ну, теперь продукты поинтереснее.
КАВ: ну, во-первых, уж как только можно расхваливают свой продукт, а глюков там просто полно. Чего только стоят Error wrong pointer 000000 или то, что творилось с сетью в Windows XP, когда был установлен АВП. Да, я знаю, разработчики тут же скажут Wrong поинтеры только у меня появлялись, а с сетью глюк мы пофиксили: все мы люди, все мы ошибаемся. Ну... как говорится, бог им в помощь. Базу пополняют часто - это единственный аргумент, почему у меня стоит этот антивирус. В среднем за день 20-35 записей может и больше. База большая уже около 90000. НО! Реально база намного меньше, ибо они включают в нее всё что не попадя, а именно:
Эксплоиты, которые не являются вирусами и никогда ими не являлись, а то, что это деструктивные программы... так они деструктивны не для того, у кого они же и лежат. Я думаю, их добавляют для количества записей в базе.
ВирТузлы: например, те же самые спуферы, которые ТОЖЕ НЕ ЯВЛЯЮТСЯ ВИРУСАМИ ни в коем роде и даже не являются деструктивным ПО, поскольку предназначены только для образовательных целей (по крайней мере, я спуфкой только так и пользуюсь =)). Но таких программ в их базе довольно приличное количество. Я понимаю, если бы разработчики просто включили их в поддержку и продукт «узнавал» бы вирусы, обработанные спуфкой или упаковщиком – вот это дело! Но ведь они выносят эти вещи в отдельную запись. Опять крутят рейтинг…Дальше смешнее
.
Клиенты бакдор троянов: я этого не понимаю. Да возможно разработчики заботятся о пользователях. Но ведь логично предположить, что если у пользователя на ПК лежит КЛИЕНТ (не сервер, а клиент), то значит пользователь знает что это такое и умеет им пользоваться…. Да и к тому же клиент троя не нанесет пользователю никакого вреда. Что если я напишу троян, которым надо управлять FlashGet’ом... то FlashGet - Win32.Trojan.FlashGet? Бред. Теперь если посчитать, что в базе 90 тысяч 50 из которых трояны удаленного администрирования с клиентами, то 25 тысяч мы оттуда вычтем КАК МИНИМУМ! Ибо не забывайте, что часто в комплект идут утилитки всякие, редакторы, и т.п., которые ТОЖЕ детектятся как ВИРУСЫ! Реальная база вирусов по моим оценкам около 40 тысяч. Остальные 50 - это бред.
А теперь о работе: когда спуфка v.149 обманывала этот антивирус простыми трюками, я понял, что эмулятор там не ахти. То ли им лень стараться, то ли они знают, что всё равно придумают способ и обойдут их эмуляторы. То ли им главное просто заработать денег на рынке. Эмулятор, по правде говоря, минимальный пытается что-то сделать но, как-то очень вяло. Антивирус больше рассчитан на сигнатурный поиск и прекрасно распаковывает практически все известные мне упаковщики, что тоже приятно. Весело и сразу печально то, что некоторые нехитрые комбинации, вроде mov eax,oep push eax retn срабатывают. Конечно, они это исправят очень скоро. А ведь это такой простой трюк... Печально...
А вот эмулятор Dr WEB’а просто на высоте. Я уважаю Данилова и их команду за такое творение. Распаковка почти всех известных мне упаковщиков, чудесная база (без таких проблем как у КАВ), приличная скорость сканирования. НО! Как всегда есть куча но:
1. Надоело качать постоянно новую версию. Неужели нельзя сделать так, чтобы старая работала с новыми базами.
2. Нарыл пару глюков. Несущественных, но раздражает.
3. Редко выходят апдейты баз. Надо хотя бы раз в два дня.
В остальном вроде ничего. В паре с КАВ работают хорошо. Не могу не сказать еще раз. Очень хороший эмулятор у веба. Рекогнизит прыжки на регистры, работу со стеком, вызовы фак. Функций - деление, умножение, сдвиги. Но облапошить такой эмулятор оказалось тоже несложно :-). Антивирус хороший, но вот трюк: спуфер + упаковщик + спуфер - не выдерживает. Впрочем, его не выдерживает НИКТО, кроме McAfee. В общем, софтина must have, но, по правде, денег я бы за нее не дал. Слишком много доработок нужно для начала сделать и базу почаще обновлять.
Нортон(он же Symantec): так и не исправился, а жаль. Впрочем, им лучше клепать утилиты по уходу за ПК в стиле Disk\Win doctor (не в обиду будет сказано). Но фаервол и антивирус от Нортона, мягко говоря, не ахти. Сигнатуру к Сиркаму искал в секции кода и не смотрел на стартовый адрес совсем... Что означает, что любой упаковщик морочит ему голову моментально. Это сразу подтвердилось, когда я использовал спуфер, а потом упаковал червя упаковщиком ASPACK. Эмулятора нету. Апдейты тоже не очень частые. Не очень хороший продукт.
McAfee: действительно что-то стоящее. Большая, довольно грамотная база, быстрая скорость, неплохой дизайн. Сигнатуры для "Platana" имел аж ДВЕ: одну в ресурсах, вторую в ОЕП. С этим антивирусом пока лучше всех.
NOD: Господи, сколько сейчас тестов выходит, которые кричат нам о том, какой NOD обалденный антивирус. Что КАВ и Dr. WEB - это дети по сравнению с ним. Мда… плакать хочется. Ну да ладно… давайте посмотрим на него так сказать «изнутри». Итак, что-то я вам в общих словах рассказываю …говорю, что так и так АВП не видит вирус, потому что я его подправил в точке входа! Давайте на живом примере проверим хотя бы 1 антивирус! Возьмем самый известный на сегодняшний день mail-trojan - Pinch. Я выбрал именно его, потому что устал уже отвечать на вопросы: «А как спрятать Pinch от АВП?» Бррр… Берем чистый Пинч, прогоняем через NOD, дабы убедиться, что он в порядке и успешно опознается. Прогнали? Хорошо, а теперь давайте обработаем файл ASPack'ом и проверим его работоспособность. Вообще, сразу скажу, что после любых произведенных действий, обязательно проверяйте файл! Теперь его надо загнать в HIEW, сделать это можно выбрав файл в HIEW. Выделяем файл и нажимаем Enter. Зачем вам китайская письменность? Мне лично не нужна…поэтому жмем еще 2 раза Enter и переходим в ассемблерный режим. Теперь нам нужно найти первый байт точки входа 60h - это опкод команды PUSHAD, теперь ее нужно будет затереть любой однобайтной командой. Например, nop/90h, inc eax/40h, inc ebx/43h, ecx/41h, edx/42h, esi/46h, edi/47h и т.д. После этих производственных действий NOD молчит! Для КАВ этого было недостаточно… там я использовал внедрение подложных сигнатур. Вот вам и NOD….
Подводя итоги выше сказанному, хочу отметить, что как бы не старались спецы 100%-ного средства не будет никогда. Впрочем, они не для этого стараются, все это понимают. И самый надежный антивирус это умная голова и грамотные руки.
Если же из 2-х (в нашем случае 13) зол выбирать меньшее… то тут надо уточнить, что лучше держать на ПК несколько антивирусных пакетов (желательно отечественного и импортного производства). Тем кто очень любит КАВ придется несладко, т.к. этот антивирус очень не любит конкурентов. Так что вот… Пищу для размышлений я вам дал, примеры привел… Выбор за вами.