Festi — руткит и ботнет, созданный на его базе. Работает под операционными системами семейства Windows. Первый раз Festi попал в поле зрения компаний, занимающихся разработкой и продажей антивирусных программ осенью 2009 года[1][2]. По оценкам того времени ботнет включал в себя примерно 25.000 зараженных машин и рассылал примерно 2.5 миллиарда писем каждый день[3][4][5]. Наибольшую активность Festi проявлял в 2011—2012 годах[6][7]. Более свежие оценки, датированные августом 2012 года, отражают тот факт, что ботнет слал спам с 250.000 уникальных IP-адресов, что составляет четверть от миллиона адресов, с которых осуществляется рассылка всего спама в мире[8]. Основная функциональность ботнета Festi — это рассылка спама и осуществление атак типа «распределённый отказ в обслуживании»[9].
Распространение ведётся с использованием схемы PPI[10] (Pay-Per-Install). Для предотвращения обнаружения антивирусами загрузчик распространяется в зашифрованном[10] виде, что затрудняет сигнатурный поиск.
Все данные об архитектуре ботнета мы почерпнули из исследований антивирусной компании ESET[10][11][12]. Загрузчик скачивает и устанавливает бота, который представляет собой драйвер режима ядра, который добавляет себя в список драйверов, запускающихся вместе с операционной системой. На жестком диске хранится лишь часть бота, отвечающая за связь с командным центром и загрузку модулей. После старта бот периодически обращается к командному центру для получения конфигурации, загрузки модулей и заданий, необходимых для выполнения.
Из исследований, проведенных специалистами антивирусной компании ESET, известно, что Festi имеет как минимум два модуля. Один из них предназначается для рассылки спама (BotSpam.dll), другой для осуществления атак типа «распределённый отказ в обслуживании» (BotDoS.dll). Модуль для осуществления атак типа «распределённый отказ в обслуживании» поддерживает следующие виды атак, а именно: TCP-флуд, UDP-флуд, DNS-флуд, HTTP(s)-флуд, а также флуд пакетами со случайным числом в номере используемого протокола.
Эксперт из «Лаборатории Касперского», исследовавший ботнет, сделал вывод о том, что модулей больше, но не все из них используются. Их список включает в себя модуль для реализации socks-сервера (BotSocks.dll) с протоколами TCP и UDP, модуль для удаленного просмотра и управления компьютером пользователя (BotRemote.dll), модуль реализовывающий поиск по диску удаленного компьютера и локальной сети (BotSearch.dll), к которой удаленный компьютер подключен, модули-грабберы для всех известных на данный момент браузеров (BotGrabber.dll).
Модули никогда не сохраняются на жестком диске, что делает практически невозможным их обнаружение.
Бот использует клиент-серверную технологию и для функционирования реализовывает собственный протокол сетевого взаимодействия с командным центром, который используется для получения конфигурации ботнета, загрузки модулей, а также для получения заданий от командного центра и оповещения командного центра об их выполнении. Данные шифруются, что препятствует определению содержимого сетевого трафика.
При установке бот отключает системный брандмауэр, прячет свой драйвер режима ядра и ключи системного реестра, необходимые для загрузки и работы, защищает себя и ключи реестра от удаления. Работа с сетью происходит на низком уровне, что позволяет беспрепятственно обходить сетевые фильтры антивирусного программного обеспечения. Ведётся наблюдение за использованием сетевых фильтров, чтобы воспрепятствовать их установке. Бот проверяет, запущен ли он под виртуальной машиной, в случае положительного результата проверки, свою деятельность прекращает. Festi периодически проверяет наличие отладчика и умеет снимать точки останова.
Festi создан с использованием объектно-ориентированной технологии разработки программного обеспечения, что сильно затрудняет исследования методом обратной разработки и делает бота легко переносимым на другие операционные системы.
Все управление ботнетом Festi реализовано при помощи веб-интерфейса и осуществляется через браузер.
По информации специалистов антивирусной компании ESET[12], американского журналиста и блогера, специалиста в области информационной безопасности Брайана Кребса[13], по информации американского журналиста газеты The New York Times Андрю Крамера[14], а также из источников близких к российским спецслужбам архитектор и разработчик ботнета Festi — российский хакер Игорь Артимович.
В заключении можно сказать, что ботнет Festi являлся одним из самых мощных ботнетов для рассылки спама и проведения атак типа «распределённый отказ в обслуживании». Принципы, по которым построен ботнет Festi, максимально увеличивают время жизни бота в системе, препятствуют обнаружению бота антивирусным программным обеспечением и сетевыми фильтрами. Механизм модулей позволяет расширять функциональность ботнета в любую сторону за счет создания и загрузки необходимых модулей для достижения различных целей, а объектно-ориентированный подход к разработке затрудняет исследование ботнета с использованием способов обратной разработки и дает возможность переноса бота на другие операционные системы за счет четкого разграничения специфичной для конкретной операционной системы функциональности и остальной логики бота. Мощные системы противодействия обнаружению и отладке делают бота Festi практически невидимым и неуязвимым. Система привязок и использования резервных командных центров дает возможность восстановления контроля над ботнетом после смены командного центра. Festi является нетипичным экземпляром вредоносного программного обеспечения, так как авторы крайне серьёзно подошли к процессу его разработки. Можно смело сказать, что бот Festi — шедевр среди вредоносного программного обеспечения[15].