В тестировании принимали участие 20 наиболее популярных антивирусных программ класса Internet Security актуальных версий на дату начала тестирования (01.08.2010), среди которых:
- Avast Internet Security 5.0.462
- AVG Internet Security 9.0 (build 117)
- Avira AntiVir Premium Security Suite 10.0.0.542
- BitDefender Internet Security 2010 (Build: 14.0.23.312)
- Comodo Internet Security 4.1.19277.920
- Dr.Web Security Space 6.0 (12.0.0.58851)
- Eset Smart Security 4.2.40.10
- F-Secure Internet Security 2010 (1.30.15265.0)
- G DATA Internet Security 2011 (21.0.2.1)
- Kaspersky Internet Security 2011 (11.0.1.400)
- McAfee Internet Security 2010
- Microsoft Security Essentials 1.0.1963.0
- Norton Internet Security 2010 (17.7.0.12)
- Online Solutions Security Suite 1.5
- Outpost Security Suite Pro 2010 (7.0)(3377.514.1238.401)
- Panda Internet Security 2011(16.00.00)
- PC Tools Internet Security 2010 (7.0.0.545)
- Trend Micro Internet Security 2010 (17.50.0.1366)
- VBA32 Personal 3.12.12.6
- ZoneAlarm Security Suite 2010 (9.3.14.0)
Тест проводился на специально подготовленном стенде под управлением VMware Workstation 7.1.0 (build-261024). Для каждого антивирусного продукта клонировались "чистые" виртуальные машины под операционными системами Microsoft Windows XP SP3 (x86) и Windows 7 (x86).
При установке антивирусов использовались рекомендуемые производителем настройки по умолчанию и производились все рекомендуемые программой действия (перезагрузка системы, обновление и т.д.). Все компоненты защиты активировались, если это не было предусмотрено после установки автоматически.
Тестирование самозащиты антивирусов проводилось по следующим параметрам:
- Самозащита на уровне системы:
- изменение разрешений на доступ к файлам;
- изменение разрешений на доступ к ключам реестра.
- Защита собственных файлов:
- модификация/удаление модулей;
- удаление антивирусных баз.
- Защита своих ключей реестра:
- модификация/удаление значимых ключей реестра (вручную):
- ключи автозапуска;
- ключи сервисов;
- ключи конфигурации.
- модификация/удаление значимых ключей реестра (вручную):
- Защита своих процессов:
- Предотвращение завершения процессов:
- из TaskManager;
- API с уровня пользователя:
- стандартно (TerminateProcess);
- завершить все ветки процесса (TerminateThread);
- завершить процесс как задачу (EndTask);
- завершить процесс как работу (EndJob);
- завершить процесс при помощи дебагера (DebugActiveProcess);
- модификация указателя инструкций (EIP);
- сообщение от рабочей станции (WinStationTerminateProcess);
- "bruteforce" message posting;
- удаление после перезагрузки.
- посылка сообщений (SendMessage API):
- WM_CLOSE;
- WM_QUIT;
- WM_SYSCOMMAND/SC_CLOSE;
- Комбинация пунктов 1-3;
- PostMessage;
- SendMessageCallback;
- SendNotifyMessage;
- PostThreadMessage.
- API с уровня ядра:
- ZwTerminateProcess;
- ZwTerminateThread.
- Модификация процесса/кода:
- инжектирование кода (CreateRemoteThread);
- инжектирование DLL;
- изменение атрибутов защиты памяти (VirtualProtectEx);
- запись в процесс (WriteProcessMemory).
- Выгрузка драйверов
- Предотвращение завершения процессов:
Проверка самозащиты производилась при помощи специально подготовленных утилит, имитирующих атаки или вручную, с правами локального администратора. После каждой атаки обязательно проводилась проверка работоспособности антивируса (его отдельных модулей, активных процессов, сервисов, драйверов, а так же проводилась проверка детектирования вредоносных программ при помощи тестового вируса EICAR).
Если в ходе тестов на завершение/модификацию процессов один из них завершался (т.е. атака на него удавалась), то все остальные процессы подвергались атаке повторно.
Шаги проведения тестирования:
- Установка антивирусной программы на чистую машину;
- Перезагрузка системы;
- Проверка успешной установки и работоспособности всех модулей программы;
- Сохранение образа виртуальной машины;
- Проверка самозащиты по одному из параметров;
- Повторная проверка работоспособности модулей программы;
- Откат системы к сохраненному ранее образу (пункт 4).
Для каждой антивирусной программы выделялась отдельная чистая виртуальная машина - шаг 1. После каждой проверки самозащиты антивируса по какому-либо критерию, машина откатывалась в первоначальное состояние - шаг 4.