Тест проводился на специально подготовленном стенде под управлением VMware GSX Server. Для каждого антивирусного продукта клонировалась "чистая" виртуальная машина с операционной системой Microsoft Windows XP SP3.
В тестировании участвовали следующие антивирусные программы:
-
Avast! 4 Professional Edition 4.8 (build 4.8.1229)
-
Microsoft Windows Live OneCare 2.5.2900.20
-
Avira Premium Security Suite 8.1.0.245
-
BitDefender Internet Security 2009 (build 12.0.10)
-
Dr.Web Security Space 5.0.0.12171
-
ESET Smart Security 3.0.672.0
-
F-Secure Internet Security 2009 (9.00 build 148)
-
Kaspersky Internet Security 2009 (8.0.0.454)
-
McAfee Internet Security 2009
-
Norton Internet Security 2009 (16.0.0.125)
-
Outpost Security Suite Pro 2009 (6.5.2358.316.0607)
-
Panda Internet Security 2009 (build 14.00.00)
-
Sophos Anti-Virus 7.6.2
-
Trend Micro Internet Security 2009 (17.0.1224)
-
VBA32 Personal (3.12.8.1)
- ZoneAlarm Security Suite 8.0.059.000
При установке антивирусов использовались рекомендуемые производителем настройки по умолчанию и производились все рекомендуемые программой действия (перезагрузка системы, обновление и т.д.). Все компоненты защиты активировались, если это не было предусмотрено после установки автоматически.
Тестирование самозащиты антивирусов проводилось по следующим параметрам:
- Самозащита на уровне системы:
- изменение разрешений на доступ к файлам;
- изменение разрешений на доступ к ключам реестра.
- Защита собственных файлов:
- модификация/удаление модулей;
- удаление антивирусных баз.
- Защита своих ключей реестра:
- модификация/удаление значимых ключей реестра (вручную):
- ключи автозапуска;
- ключи сервисов;
- ключи конфигурации.
- модификация/удаление значимых ключей реестра (вручную):
- Защита своих процессов:
- Предотвращение завершения процессов:
- из 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).
- Выгрузка драйверов
- Предотвращение завершения процессов:
Проверка самозащиты производилась при помощи специально подготовленных утилит, имитирующих атаки или вручную, с правами локального администратора. После каждой атаки обязательно проводилась проверка работоспособности антивируса (его отдельных модулей, активных процессов, сервисов, драйверов).
Если в ходе тестов на завершение/модификацию процессов один из них завершался (т.е. атака на него удавалась), то все остальные процессы подвергались атаке повторно.
Шаги проведения тестирования:
- Установка антивирусной программы на чистую машину;
- Перезагрузка системы;
- Проверка успешной установки и работоспособности всех модулей программы;
- Сохранение образа виртуальной машины;
- Проверка самозащиты по одному из параметров;
- Повторная проверка работоспособности модулей программы;
- Откат системы к сохраненному ранее образу (пункт 4).
Для каждой антивирусной программы выделялась отдельная чистая виртуальная машина - шаг 1. После каждой проверки самозащиты антивируса по какому-либо критерию, машина откатывалась в первоначальное состояние - шаг 4.