Методики тестирования антивирусных пакетов
21 января 2008
Рубрика: Интернет и сети.
Автор: .

Введение
Большинство пользователей компьютеров рано или поздно начинает задумываться о том, какой из антивирусов лучше. В ход идут доводы вроде «Антивирус X – тормозит», «Антивирус Y – самый удобный», а самые продвинутые из них могут даже сказать что-то вроде «Антивирус Z признан самым надежным в 200* году независимой международной организацией такой-то».

Задача определения лучшего (или наиболее подходящего) антивирусного решения возникает сегодня также у руководителей IT-отделов многих компаний, которые осуществляют переход на лицензионное программное обеспечение.
Для того, чтобы узнать, какой из антивирусов справляется лучше со своими обязанностями, можно действительно обратиться к авторитетным источникам. Самой известной лабораторией тестирования является Virus Bulletin (http://www.virusbtn.com/index), которая регулярно проводит испытания. При этом отбираются вредоносные программы из WildList, коллекции «диких» вирусов, которыми затем «атакуют» тестируемые машины. Однако результаты этих испытаний зачастую весьма неожиданны, например, декабрьские испытания 2007 года провалили все российские антивирусы, а например, продукт Forefront от корпорации Microsoft успешно его прошел (http://www.cnews.ru/news/top/index.shtml?2007/12/10/278736). Отношение к результатам неоднозначное и у самих производителей антивирусов – по словам Бориса Шарова, генерального директора компании Dr.Web — «Способность того или иного антивируса детектировать 100% из этой коллекции зависит во многом от доступности соответствующих сэмплов (образцов – прим. автора.) соответствующей антивирусной компании». Обычные пользователи также не слишком склонны доверять подобного рода тестированиям, полагая, что высокие названия и награды могут быть связаны с подтасовками и необъективным судейством.

Справедливы тестирования или нет, как проводятся испытания – для большинства из нас это остается тайной. Даже при абсолютно равных условиях результаты можно трактовать по разному и, по-видимому, человеческий фактор может оказывать влияние в исследованиях самого высокого рода.

Между тем каждый продвинутый пользователь, сисадмин или программист может самостоятельно провести тестирование. Такое исследование может развеять сомнения, по крайней мере, в масштабах одного предприятия. Рассмотрением методик тестирования антивирусов мы и займемся.

Где взять вирусы?

Этот вопрос довольно парадоксален – обычно мы стремимся поскорее избавиться от этих вредоносных программ, убивая их антивирусом или удаляя непосредственно. Однако для проведения испытаний нам потребуется достаточно большой набор образцов (сэмплов). Как и обычные программы, тела вирусов представляют собой исполняемые файлы (*.exe или *.com), которые и нужно собрать. Для этого можно воспользоваться одним из следующих способов:

Обращение к антивирусным лабораториям. Ведущие производители, такие как Антивирус Касперского, Доктор Веб имеют российские корни, так что, по крайней мере, языкового барьера при обращении не возникает. Другие компании, такие как ESET NOD 32, имеют свои представительства в Интернете, так что им можно просто взять и написать. Однако из корпоративных соображений антивирусные лаборатории весьма неохотно делятся образцами вирусов. Они точно не захотят иметь дело с физическими лицами, и крайне маловероятно, что они предоставят образцы по обращению юридического лица. Да, на своих сайтах техподдержки лаборатории любят вывешивать названия актуальных угроз, но как дело доходит до отправки файлов этих самых угроз, все становятся чересчур упрямыми. Проблема также усугубляется тем, что отправка образцов вирусов по электронной почте попадает под статью Уголовного Кодекса при его формальном толковании.

Самостоятельное собирание коллекции или привлечение сообщества единомышленников. Это один из лучших вариантов – в самом деле, если в Интернете гуляют вирусы, лучше всего их «нацеплять» а потом использовать в научных целях. Поставив перед собой такую задачу, можно собирать вирусы и с флэшек. Включаем отображение скрытых и системных файлов, при вставке USB-устройства удерживаем клавишу «Shift» и, открывая через правую кнопку (не двойным щелчком!) диск, архивируем файл вируса, причем из соображений безопасности лучше установить при этом также пароль (рис. 1):

pic

Рис.1. Архивирование вируса.
Таким же образом упаковываются вирусы, которые собираются в Интернете. Однако этот способ имеет существенный недостаток – сбор образцов осуществляется крайне медленно. Базы вирусов тестовых лабораторий Virus Bulletin оперируют миллионами образцов! Понятно, что ручной поиск – даже с помощью сообщества вряд ли позволит собрать достаточную коллекцию в разумные сроки. Впрочем, таким образом можно найти образцы наиболее актуальных угроз.

Поиск готовых архивов. Готовые базы вирусов, содержащие сотни и тысячи образцов, можно найти на хакерских сайтах, в основном на зарубежных просторах. Как правило, это бесплатные архивы, впрочем, встречаются и наборы на продажу. После того, как архив получен (или куплен), можно сверить его содержимое с известными классификациями, например, на http://www.viruslist.com/ru. Установив таким образом «паспортные данные» образцов, можно приступать к самому тестированию.

Что тестировать?

Этот вопрос может показаться совсем простым – очевидно, что мы будем тестировать антивирусные пакеты. Но для начала разберемся с их основным принципом работы.

В основе работы любого антивируса лежит эвристический алгоритм поиска злонамеренных действий и деструктивной активности. Именно этот алгоритм определяет «интеллектуальность» данного антивирусного пакета. Однако создатели вирусов постоянно совершенствуют маскировку и способы проникновения, поэтому эвристического анализа недостаточно для надежной защиты компьютера. Кроме того, эвристический анализ зачастую приводит к ложным срабатываниям, когда полезные программы определяются как вирусы.

Для повышения эффективности почти с самого начала создания антивирусных пакетов применялся сигнатурный метод обнаружения. Его суть заключается в том, что антивирусные пакеты, сканируя компьютер, обращаются к своим базам, которые создаются производителями программы. Фактически программа сверяет текущие файлы с образцами (сигнатурами), имеющимися в базе. При обнаружении сходства и происходит определение вируса.

Для сигнатурного метода имеет большое значение наличие актуальных антивирусных баз. Устаревание баз (обновляемых через Интернет) всего в несколько дней, а зачастую и часов, может привести к тому, что компьютер окажется подвержен заражению новой вирусной эпидемией.

Эвристический модуль закладывается в антивирусный пакет на этапе создания программы. А обновление антивирусных баз каждый пользователь делает самостоятельно, после установки и покупки программы.

Пиратские версии антивирусов зачастую тоже могут иногда обновляться. Но производители (особенно российские) весьма оперативно реагируют на подключение к своим серверам нелицензионных программ и очень быстро блокируют для них доступ. Кроме того, изменения, вносимые хакерами в антивирусные пакеты, могут изменять их функциональность, что делает защиту компьютера крайне ненадежной. Поэтому пиратские копии мы рассматривать не будем.

Наилучшим вариантом тестирования являются лицензионные антивирусные пакеты с актуальными обновлениями на момент тестирования. Однако тогда возникает необходимость покупки лицензий к достаточно большому числу программ, причем часть этих программ может вообще не пройти тестирования.

Бюджетным и, пожалуй, самым разумным вариантом является использование пробных (trial) версий программ, скачиваемых с сайтов производителей. Обычно они могут работать в течение одного месяца (30 дней). Антивирусные базы, входящие в состав пробных версий, как правило, полугодичной давности. Для тестирования тогда следует отбирать вирусы, которые были созданы раньше этого срока. К примеру, если испытание проводится в марте 2008 года, то следует отбирать вирусы, созданные не позже августа 2007 года. Впрочем, для отдельных испытаний могут использоваться, наоборот, самые свежие вирусы.

Сканирование набора вирусов

Итак, у нас есть набор вирусов и дистрибутивы пробных версий антивирусов. Последовательно устанавливаем антивирусные пакеты, извлекаем вирусы в отдельную папку ( для каждого вируса заново) и сканируем ее (рис. 2).

pic

Рис. 2. Папка с вирусами.
Подобное сканирование означает, по сути, проверку внешних устройств, подключаемых к компьютерам. Это могут быть флэшки, MP3-плейеры, съемные жесткие диски. От того, насколько эффективной будет проверка, будет зависеть, сможет ли заражение проникнуть в компьютер. Результаты тестирования лучше всего протоколировать в виде скриншотов, особенно если далее их придется публиковать (рис. 3).

pic

Рис. 3. Результаты сканирования набора вирусов пакетами Антивирус Касперского 7.0, Dr. Web 4.4 и Eset NOD 32.

Результаты сканирования определяются достаточно просто – количество удаленных каждым пакетом вирусов относится к общему числу вирусов. На основании этого и строится результирующая диаграмма.

Лечение активного заражения

Сканирование набора вирусов может не полностью раскрывать возможности пакетов. Лучший способ проверить реальную работу – это действительно заразить компьютер одним или серией вирусов, а затем попытаться устанавливать антивирусы и лечить операционную систему. После каждого испытания жесткий диск форматируется, а операционная система устанавливается заново.

Этот эксперимент требует значительных затрат времени – только на установку операционной системы (Windows XP SP 2 или Windows Vista) уходит примерно сорок минут. Кроме того, форматирование жесткого диска означает полную потерю всей хранящейся на нем информации. Словом, для проведения испытания лучше всего выделить отдельный компьютер, что не всегда возможно для домашних пользователей. Работу можно значительно облегчить, если использовать виртуальную машину – программу, позволяющую создавать виртуальный компьютер на основе физического. Фактически мы можем внутри одной операционной системы установить другую и одновременно работать с ними двумя (рис. 4).

pic

Рис. 4. Операционная система Windows Vista, в которой работает виртуальная машина с системой Windows XP SP2.

К наиболее популярным виртуальным машинам относятся VMware Workstation (http://www.vmware.com/) и Microsoft Virtual PC (http://www.microsoft.com/windows/downloads/virtualpc/default.mspx). На рисунке изображена последняя версия Microsoft Virtual PC 2007, которая имеет максимальную совместимость с семейством операционных систем Microsoft Windows. Проведение тестирований внутри операционной системы, установленной на виртуальной машине, позволяет значительно экономить время – после очередного испытания мы можем даже форматировать винчестер, одновременно продолжая работать во внешней операционной системе. Для антивирусных пакетов, впрочем, как и для вирусов, нет никакой разницы, где работать – эмулированная система работает точно так же, как и обычная.

Для проведения тестирования отбирается фиксированный набор вирусов. Выбирается несколько антивирусных пакетов. На виртуальной машине с установленной свежей системой запускается один вирус – банальным щелчком по exe-файлу. Далее проводятся установка и сканирование одним из антивирусных пакетов. Фиксируется результат – удалось ли найти и обезвредить вирусную угрозу (рис. 5).

pic

Рис. 5. Результаты сканирования системы антивирусом Касперского 7.0

После этого операционная система переустанавливается, на ней снова запускается тот же самый вирус и снова проводится сканирование – на этот раз другим антивирусом. После последовательного перебора всех вирусов и всех пакетов подводятся итоги – тот антивирус, который обезвредил наибольшее количество угроз, считается победителем.

Лечение активного заражения – одно из самых эффективных и реальных тестирований, поскольку моделирует реальное заражение. В самом деле, когда пользователи непреднамеренно заражают свои компьютеры, они запускают вирусы, а затем пытаются от них избавиться при помощи установки антивирусов и последующем сканировании.

В этом испытании может запускаться сразу несколько вирусов. Задача усложняется – сможет ли вообще антивирусный пакет «сесть» на сильно зараженный компьютер. Такая разновидность может стать предметом отдельного исследования.

Измерение скорости запуска приложений

Евгения Касперского, генерального директора Лаборатории Касперского, журналисты спросили, как относится он к высказыванию: «Хочешь затормозить компьютер — ставь Антивирус Касперского». А Касперский ответил: «Это была правда… В версии, которая вышла в 2000 году, была такая проблема. Короче, это правда, но правда эта давно протухла».

Между тем замедление работы компьютера, которое выражается в значительной задержке запуска приложений после установки антивируса – основная причина, почему большинство пользователей вообще не любят никакие антивирусы. К сожалению, постоянный мониторинг всех процессов, выполняемых на компьютере, загружает системные ресурсы. Это проблема, которая неизбежно следует из самого принципа работы всех без исключения антивирусов. Однако задача производителей заключается в том, чтобы подобрать баланс для оптимального распределения системных ресурсов между антивирусами и прочими приложениями.

Как определить, в каком из антивирусных решений лучше реализована задача оптимизации? Для этого можно замерить скорость запуска приложений, до и после установки различных пакетов. Разумеется, измерять мы будем не с секундомером в руках, а при помощи специальных программ. Например, утилита Launchscope (http://www.datasorption.ru/) позволяет засекать время запуска приложения с точностью до миллисекунд (рис. 6).

pic

Рис. 6. Измерение скорости запуска приложений при помощи утилиты Launchscope.

Для того, чтобы увеличить точность измерений, следует подбирать ресурсоемкие приложения – такие, как Microsoft Visual Studio 2005 (запись «devenv.exe» на рисунке 6) и Adobe Flash CS3. Понятно, что разница в задержке запуска блокнота или встроенного калькулятора будет не слишком заметной. Компьютеры, наоборот, нужно брать не слишком производительные, класса PIII или PIV в самой базовой конфигурации. На процессорах Core 2 Duo и Vista–совместимых комплектующих изменения в скорости будут практически не видны.

При проведении этого тестирования следует учитывать одну важную особенность. Пользователи, работающие с программой Adobe Photoshop, например, знают такую особенность – после включения компьютера первый запуск этой программы занимает значительное время. При повторных запусках, даже после выхода из приложения, программа открывается гораздо быстрее. Дело в том, что после первого запуска часть системных библиотек программы продолжает оставаться в оперативной памяти компьютера даже после выхода. Повторный запуск вновь использует эти библиотеки, которые на этот раз уже готовы к использованию. За счет подобной схемы достигается повышение производительности работы.

С учетом этой особенности измерение скорости запуска приложений должно проводиться в строго определенном порядке для всех тестируемых пакетов. Тогда можно исключить все погрешности, связанные с повторным использованием библиотек приложений.

Измерение запуска приложений с установленными пакетами проводится в режиме их мониторинга, когда после запуска операционной системы иконки приложений помещаются в системном трее (рис. 7).

pic

Рис. 7. Измерение скорости запуска приложений для некоторых антивирусов.

Предметом отдельного исследования может стать измерение скорости запуска приложений в режиме сканирования антивирусом операционной системы.

Представление результатов

Руководителям IT-отделов предприятий может понадобиться представление результатов собственных тестирований и исследований. Наиболее наглядным и убедительным представлением является не оформление результатов в виде готовых таблиц и графиков, что может порой вызывать недоверие, а формирование отчета, содержащего скриншоты каждого этапа тестирования. Их можно делать, например, при помощи утилиты SnagIT (http://www.techsmith.com/). Спорные моменты, например, когда один из антивирусных пакетов не справляется и, заданием, лучше вообще протоколировать при помощи программы для записи действий с экрана. С этой задачей справится утилита FlashCam – одна из самых лучших в своей области (http://www.softservice.org/products_flashcam.html).

Построение графиков, отражающих результаты испытаний отдельных пакетов, – лучший способ оформить результаты. Можно, конечно, использовать стандартный офисный Microsoft Excel, но для оформления результатов, включающих необычные, трехмерные графики, лучше использовать профессиональные пакеты, например Origin (http://www.originlab.com/).

Заключение

Мы рассмотрели некоторые методики тестирования, позволяющие оценить антивирусные пакеты наиболее объективным образом. Можно, конечно, учитывать также многие субъективные, а также качественные параметры, такие как удобство пользования, сервис технической поддержки, стоимость покупки и владения. Именно эти параметры зачастую становятся предметом ожесточенных споров. Однако они являются не столь важными, поскольку основная задача антивирусов – обеспечивать информационную защиту.

Orphus system
В Telegram
В Одноклассники
ВКонтакте