Самозащита антивирусов
Как показывает практика, любой антивирус по дизайну уязвим, и реализовать очередной метод обхода в отношении него не является большой проблемой.Нашему исследовательскому центру было интересно проверить, как разработчики антивирусных решений следят за наличием описаний методов атак на просторах интернета. И всегда ли для атаки на антивирус необходимо обнаружить в нем 0-day уязвимость или достаточно просто найти полезную информацию на форумах? ВведениеБольшинство аналитических работ, посвященных этой теме, как правило, ориентировано на оценку эффективности детектирования вредоносного кода антивирусами, производительность работы антивирусов и т.д. Мы же в рамках своего исследования попытались выяснить, следят ли разработчики решений такого класса за тенденциями и модифицируют ли свои продукты в соответствии с новыми методами атак.Самозащита антивируса и ее обход в ряде случаев означает обход всего механизма детектирования вредоносного кода. Этот причем часто используется при реализации целенаправленных атаках или в программах с деструктивным, блокирующим данное ПО функционалом.
После внедрения вредоносного кода внутрь процесса антивируса он способен долго и незаметно существовать в системе пользователя, что, несомненно, является следствием главного логического изъяна архитектуры самозащиты, равно как и методики использования доверенных списков процессов.
Самозащита антивируса Вредоносный код совершенствуется параллельно с развитием антивирусных технологий, что очень похоже на некую гонку вооружений. Появляются все новые угрозы, которые компрометируют программное обеспечение этого класса, отключают его, полностью деактивируют его функционал и т.д. Как следствие, растут требования к разработке антивирусных решений, которые позиционируются для защиты постфактум. Антивирусы снабжают функционалом для самообороны и защиты от активных угроз. Развивается, пожалуй, самый спорный механизм ПО такого класса — механизм самозащиты.Если систематизировать внутренне устройство нескольких антивирусных продуктов, можно обобщенно описать архитектуру самозащиты. В итоге, мы получим следующие признаки, свойственные данному механизму и его реализации:
Защита собственных файлов и директорийОбычно реализована файловым фильтром уровня ядра. Защита собственных конфигурационных данных в реестреРеализуется при помощи совокупности перехватов и/или RegistryCallback-интерфейса ядра. Защита интерфейсов антивирусаКонтроль доступа к различным управляющим интерфейсам в ring0. Защита собственных процессовРеализации варьируются, это может быть совокупность различных перехватов системных функций ядра, типов объекта, использование callback«а на создание процесса. И, наконец, самый спорный момент в работе механизма самозащиты: процессы антивируса становятся некой супер-привилегированной сущностью, они недоступны для воздействия как атакующего, так и обычного пользователя.Последствия внедрения вредоносного кода в антивирус:
Глобальное отключение/блокирование антивируса Манипулирование белыми списками Скрытое функционирование в супер-привилегированном процессе Обход правил межсетевого экрана … Методология тестирования Рассматриваемые антивирусные решения Для проведения исследования мы отобрали несколько антивирусных продуктов, отвечающих следующим требованиям: ПО, использующее архитектуру самозащиты, заявляет о себе как о способном реагировать на активную, запущенную угрозу, обладает функцией проактивной защиты; Входит в список самых популярных решений, ранее трестировавшихся с применением различных методологий. Получился такой список (На момент тестирования это были самые последние версии): Разработчик Наименование продукта, версия McAfee McAfee Total Security 2015 (15.4.0.470.7) ESET ESET Smart Security (8.0.312.3) Symantec Norton Security (22.2.0.31) AVG AVG Internet Security 2015 (2015.0.5941) BitDefender BitDefender Total Security 2015 (18.20.0.1429) Trend Micro Trend Micro Antivirus+ 2015 (AMSP 3.5.1186) Avira Avira (15.0.8.652) DrWeb DrWeb 10 (10.0.1.03310) Kaspersky Kaspersky Internet Security 15 (15.0.2.361) Panda Panda Internet Security 2015 (15.1.0) Avast Avast Free Antivirus (2015.10.2.2218) Среда тестирования Тестирование методов проходило на операционной системе Windows 7, x86_64/x86_32, которая устанавливалась на виртуальной машине VMware. Кроме того, отдельные решения были инсталлированы на физическое железо (обусловлено использованием механизмов аппаратной виртуализации VT-x/AMD-V).Применяемые техники Для данного исследования было применено несколько универсальных техник, каждая из которых не нацелена на конкретное решение и не использует архитектурные слабости того или иного ПО. Все техники, используемые в данном тестировании, доступны на открытых ресурсах Интернета на протяжении 1–3 лет. Их код не демонстрируется намеренно. Ссылки на публичные источники, описывающие данные техники, могут быть предоставлены только антивирусным компаниям только по их официальному запросу.
Были выбраны такие техники, как: ProxyInject, Duplicate Handle, Reparse Point, PageFile, RegSafe/RegRestore и Shim Engine. За более подробным описание техник советуем обратится к оригинальному тексту исследования «Самозащита антивирусов».И для тестирования была использована специальная программа, которая получает на вход в качестве параметров данные о технике и цели.
Результаты При определенной постановке задачи такие же техники применяются нашими специалистами в ходе тестов на проникновение. В процессе работы приходится как использовать ранее упомянутые, так и разрабатывать новые методики.
Стоит понимать, что, помимо данных техник, существует множество других (недоступных публично), которые также нацелены на внедрение в работу антивирусного продукта или на прекращение его работы. И естественно, есть универсальные инструменты и ориентированные на конкретный антивирусный продукт.
Выводы Таким образом, результаты тестирования с определенной методологией на данной выборке техник выявили весьма интересный результат: отечественный антивирусный разработчик более качественно улучшал и строил свою оборону, нежели это делали иностранные вендоры.Очевидно, некоторые компании попросту не отслеживают эволюцию публичных методов атак, лишь подтверждая тем самым абсурдность выбранной ими архитектуры.
Стоит также отметить, что, несмотря на все результаты, архитектура в целом не изменяется, и разработчики реагируют на произошедшие атаки постфактум и защищаются от уже известных механизмов атак. Это предоставляет злоумышленникам большую свободу действий, а также дает возможности для совершенствования методов в будущем. И пока ситуация не изменится, атакующие всегда будут на шаг впереди защиты.