Тест проводился на специально подготовленном стенде под управлением VMware GSX Server. Для каждого антивирусного продукта клонировалась "чистая" виртуальная машина с операционной системой Microsoft Windows XP SP2.
В тестировании участвовали следующие антивирусные программы:
- Avast! Professional Edition 4.7
- Avira Premium Security Suite 7.0
- BitDefender Internet Security 10
- DrWeb 4.44 Beta
- Eset Smart Security 3.0
- F-Secure Internet Security 2007
- Kaspersky Internet Security 7.0
- McAfee Internet Security 2007
- Microsoft Windows Live OneCare 1.6
- Panda Internet Security 2007
- Sophos Anti-Virus 6.5
- Symantec Internet Security 2007
- Trend Micro PC-Cillin 2007
- VBA32 Antivirus 3.11
- ZoneAlarm Internet Security 7.0
При установке антивирусов использовались рекомендуемые производителем настройки по умолчанию и производились все рекомендуемые программой действия (перезагрузка системы, обновление и т.д.). Все компоненты защиты активировались, если это не было предусмотрено после установки автоматически.
Тестирование самозащиты антивирусов проводилось по следующим параметрам:
- Самозащита на уровне системы:
- переписывание хуков;
- изменение разрешений на доступ к файлам;
- изменение разрешений на доступ к ключам реестра.
- Защита собственных файлов:
- модификация/удаление модулей;
- удаление антивирусных баз.
- Защита своих ключей реестра:
- модификация/удаление значимых ключей реестра (вручную):
- ключи автозапуска;
- ключи сервисов;
- ключи конфигурации.
- модификация/удаление значимых ключей реестра (вручную):
- Защита своих процессов:
- Предотвращение завершения процессов:
- из TaskManager;
- API с уровня пользователя:
- стандартно (TerminateProcess);
- завершить все ветки процесса (TerminateThread);
- завершить процесс как задачу (EndTask);
- завершить процесс как работу (EndJob);
- завершить процесс при помощи дебагера (DebugActiveProcess);
- модификация указателя инструкций (EIP);
- сообщение от рабочей станции (WinStationTerminateProcess);
- "bruteforce" message posting;
- удаление после перезагрузки.
- посылка сообщений:
- WM_CLOSE;
- WM_QUIT;
- WM_SYSCOMMAND/SC_CLOSE.
- API с уровня ядра:
- ZwTerminateProcess;
- ZwTerminateThread.
- Модификация процесса/кода:
- инжектирование кода (CreateRemoteThread);
- инжектирование DLL;
- изменение атрибутов защиты памяти (VirtualProtectEx);
- запись в процесс (WriteProcessMemory).
- Выгрузка драйверов
- Предотвращение завершения процессов:
Проверка самозащиты производилась при помощи специально подготовленных утилит, имитирующих атаки или вручную, с правами локального администратора. После каждой атаки обязательно проводилась проверка работоспособности антивируса (его отдельных модулей, активных процессов, сервисов, драйверов).
Если в ходе тестов на завершение/модификацию процессов один из них завершался (т.е. атака на него удавалась), то все остальные процессы подвергались атаке повторно.
Шаги проведения тестирования:
- Установка антивирусной программы на чистую машину;
- Перезагрузка системы;
- Проверка успешной установки и работоспособности всех модулей программы;
- Сохранение образа виртуальной машины;
- Проверка самозащиты по одному из параметров;
- Повторная проверка работоспособности модулей программы;
- Откат системы к сохраненному ранее образу (пункт 4).
Для каждой антивирусной программы выделялась отдельная чистая виртуальная машина - шаг 1. После каждой проверки самозащиты антивируса по какому-либо критерию, машина откатывалась в первоначальное состояние - шаг 4.