Сравнительный тест антивирусных эмуляторов

Сравнительный тест антивирусных эмуляторов

Сравнительный тест антивирусных эмуляторов

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

 

Содержание

1. Цели сравнения

2. Основные результаты

3. Что именно тестируется?

4. Методология тестирования

5. Описание тестовых образцов

6. Подробные результаты

 

1. Цели сравнения

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

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

 

2. Основные результаты

Таблица 1: Результаты сравнительного теста антивирусных эмуляторов

Антивирус Детектировано из 48 семплов %
Kaspersky Anti-Virus 7.0 beta 23 48%
BitDefender Anti-Virus 10 20 42%
Norman Virus Control 5.82 17 35%
DrWeb 4.44 beta 12 25%
Avira AntiVir PE Classic 7 9 19%
ESET Smart Security beta 1 9 19%
VBA32 3.12.0 3 6%
McAfee VirusScan 2007 2 4%
Sophos Anti-Virus 6.0 0 0%
Norton Anti-Virus 2007 0 0%
Trend Micro Internet Security 2007 0 0%

 

Результаты данного сравнения наглядно демонстрируют, что только 6 антивирусных продуктов могут похвастаться наличием в своем составе эффективного эмулятора. При этом 3 из них на момент проведения сравнения только готовятся к выходу в продажу.

Наиболее мощными возможностями детектирования неизвестных видов вредоносных программ (от 48% до 35%) обладают эмуляторы трех антивирусов - Kaspersky Anti-Virus 7.0, BitDefender Anti-Virus 10 и Norman Virus Control 5.82, которым удалось превзойти по детектированию рубеж в 30% тестовых образцов.

Достаточно хорошие результаты (от 25% до 19%) показали также антивирусы DrWeb 4.44 beta, Avira AntiVir PE Classic 7 и ESET Smart Security beta 1, которые, безусловно, также можно считать достаточно эффективными.

В заключении стоит отметить, что продукты лидеров рынка (Symantec, McAfee, Trend Micro, Sophos) не имеют в своем составе эмуляторов, что наглядно показало это сравнительное тестирование.

Подробные результаты сравнительного теста антивирусных эмуляторов вы можете посмотреть в полном отчете в формате Microsoft Excel.

 

3. Что именно тестируется?

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

1. Поиск по сигнатурам

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

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

Другим минусом сигнатурного анализатора является невозможность анализа сжатого или зашифрованного объекта - для анализа требуется распаковка/расшифровка, ограниченная поддерживаемыми антивирусом пакерами/криптерами

2. Проактивная защита и Firewall

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

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

3. Эвристические методы

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

Эвристических технологий достаточно много, среди них можно выделить основные:

3.1 Сигнатурный метод

Основан на поиске характерных для вредоносной программы фрагментов кода и (или) констант.

3.2 Эмулятор

Как следует из названия, его задачей является эмуляция выполнения изучаемой программы. Качество эмуляции может быть разным - от примитивной эмуляции команд без эмуляции API функций до почти идеальной эмуляции работы программы в операционной системе. Хороший эмулятор является очень мощным инструментом для выявления новых видов malware, однако он уязвим перед специальными методиками защиты – так называемыми антиэмуляторами.

3.2 Эмулятор и сигнатурный анализ.

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

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

 

4. Методология тестирования

Для сравнительного тестирования были отобранные только те антивирусные программы, которые содержат в себе хоть какой-то эмулятор. Таких антивирусов, широко представленных в настоящее время на рынке, оказалось всего 7, из которых 3 – DrWeb 4.44, Eset Smart Security и Kaspersky Anti-Virus 7.0, находились на момент тестирования в бете.

  • Avira AntiVir PE Classic 7
  • BitDefender Antivirus 10
  • DrWeb 4.44 beta
  • Kaspersky Anti-Virus 7.0.0.119 beta
  • Eset Smart Security beta 1
  • Norman Virus Control 5.82
  • VBA32 3.12.0

Для наглядного сравнения к этой группе были добавлены персональные антивирусные продукты лидеров рынка: Symantec, McAfee, Trend Micro и Sophos.

  • McAfee VirusScan 2007
  • Sophos Anti-Virus 6.0
  • Norton Anti-Virus 2007
  • Trend Micro Internet Security 2007

Каждый продукт устанавливался на чистую виртуальную машину под управлением под управлением VMware GSX Server. После установки производилось обновление антивирусных баз и модулей до актуального на момент проведения сравнения состояния. Где это нужно, в настойках антивирусных продуктов активировалась функция эмулятора.

Далее каждым антивирусом по отдельности производилось сканирование по требованию папки со специально подготовленными тестовыми образцами (описание смотри ниже). Результаты сканирования и вердикты записывались в сводную таблицу.

 

5. Описание тестовых образцов

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

Таблица 1: Описание используемых тестовых образцов

Тестовый образец Описание
sample Базовый пример. Реализует "лобовую" загрузку файла, после чего запускает его. Загрузка ведется через URLDownloadToFile, запуск – ShellExecute.
sample001 Простейший антиэмулятор – перед загрузкой вывод сообщения.
sample002 * Антиконстанта. Машинный код загрузки есть, но не выполняется – перед кодом загрузки стоит команда завершения. Применяется для отлова искателей имен функций, констант и т.п. – эмулятор не должен реагировать на этот пример, искатель констант – будет. Таким образом, по реакции на пример можно отличить эмулятор.
sample003 Перед кодом загрузки стоит временная задержка.
sample004 Защита от эмуляции методом поиска файлов. Кроме того, применяется простейшие меры искажения URL и имени сохраняемого файла (чтобы не светились константы вида http://что-то-там/.exe
sample005 Защита нестандартной работой с DLL.
sample006 Гибрид примеров sample003 + sample004 + sample005.
sample007 sample003 + sample004 + запуск кода из потока.
sample008 Пример sample006 + запуск кода из потока.
sample009 Цепочка таймеров.
sample010 Аналог sample009, но с защитой от эмуляции выполнения обработчиков всех таймеров без задержки.
sample011 Цепочка сообщений. Приложение содержит несколько GUI элементов.
sample101 Аналог примера sample, но вместо статического импорта функции URLDownloadToFileA из DLL применяется ее динамическая загрузка.
sample101f * sample101 + sample002.
sample102 Аналог sample101, но строки зашифрованы.
sample103 Загрузка библиотеки идет обычным образом, но функция ищется путем анализа таблицы экспорта.
sample104 Управляемые SEH + шифровка.
sample105 аналог 104, но немного посложнее – применяются различные исключения.
sample106 аналог sample102 + специализированная антиэмуляционная шифрация.
sample107 Аналог sample102, но дешифрация идет через файл.
sample108 аналог sample102, но ключом дешифрации является объект из реестра.
sample109 Руткит-модификация библиотеки urlmon.dll, вместо одной функции вызывается другая.
sample110 Руткит-контроль за вызовом функции DLL.
sample111 Перенос части кода DLL в память программы.
sample112 Загружает файл через службу BITS.
Sample113 низкоуровневое взаимодействие с GUI и сообщениями.
sample201 Обычный Trojan-Dropper. Исполняемый файл хранится в ресурсе, после запуска дропается на диск и запускается. Защиты от эмуляции нет.
sample202 Trojan-Dropper с защитой от эмуляции – расшифровка «по теории вероятности» + задержка по времени и SHE.
sample203 Пример sample202, дополнен контролем по поиску файлов операционной системы.
sample204 Аналог sample201, но кроме запуска дропнутый файл прописывается в автозагрузку.
sample205 Аналог sample102, но код sample102 размещен в DLL, а DLL – в ресурсе sample205.
sample206 Аналог sample205, но загрузка DLL идет нестандартным образом.
sample207 Аналог sample205, но DLL инжектируется механизмом ловушек в GUI процессы.
sample208 Аналог sample205, но DLL инжектируется механизмом удаленных потоков в свой процесс.
sample209 Аналог sample205, но DLL инжектируется механизмом удаленных потоков в процесс explorer.
sample210 Бросает троянскую DLL, запускает iexplorer.exe с невидимым главным окном и затем инжектит в него DLL механизмом удаленных потоков.
sample211 sample210 + ищет, есть ли запущенные экземпляры IE - если есть, берет первый попавшийся.
sample301 Имитация установки троянской программы. Копирует себя в папку Windows под именем DemoTrojan.exe и запускает.
sample302 Имитация установки троянской программы. Копирует себя в папку system32 под именем DemoTrojan.exe и регистрирует в автозапуске (без запуска).
sample303 sample301 + sample302.
sample304 Бросает DLL и прописывает ее в качестве BHO. Эта DLL является троянским загрузчиком на основе sample107 dll.
sample305 Аналог sample304 + шифровка.
sample306 Аналог sample305, но с SEH и задержками.
sample401 Лобовая замена стартовой страницы IE. Нет никаких мер защиты нет.
sample402 Аналог sample401, но с шифровкой строк и дешифратором.
sample403 Подмена префиксов протоколов для переадресации на постороннюю страницу. Никакой защиты и шифровки нет.
sample404 Аналог sample403, дополненный простейшей шифровкой, дешифратор вызывается в SHE обработчике.
sample501 Ищет панель системы (где кнопка "Пуск") и ищет в ней панель system tray.
sample502 Пример sample101, дополнен кодом запуска системного процесса.
sample503 Пример sample101, дополненный сигнатурным исследованием системного файла.

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

 

Примечание к таблице с описанием тестовых образцов (samples):

  1. В тестовых образцах используются только тривиальные методы, доступные каждому начинающему программисту. Никакого AS, разных антиотладочных приемов (например, расширенных команды процессора MMX и т.п.), фокусов из KernelMode и т.п., которые недоступны начинающему вирусописателю.
  2. Тестовые образцы ничем не сжимаются, не пакуются и не криптуются, не применяются обфускаторы и системы "навесной" антиотладочной защиты. "Машинный код как он есть".
  3. Правильно работающий эмулятор должен ловить все примеры, кроме sample002 и sample101f. Реакция на sample002 и sample101f говорит о том, что детект идет не эмуляцией кода, а анализом констант или сигнатурами характерных блоков кода.

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

Все используемые образцы с полным описанием могут быть переданы вендорам администрацией Anti-Malware.ru по их запросу.

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

 

6. Подробные результаты

Подробные результаты сравнительного теста антивирусных эмуляторов вы можете посмотреть в полном отчете в формате Microsoft Excel.

 

Авторы:
Василий Бердников (vaber)
Сергей Ильин

13.06.2007

AM LiveПодписывайтесь на канал "AM Live" в Telegram, чтобы первыми узнавать о главных событиях и предстоящих мероприятиях по информационной безопасности.

RSS: Новые статьи на Anti-Malware.ru