Ботнет - Эволюция ботнетов
ОГЛАВЛЕНИЕ
Эволюция ботнетов
История ботнетов началась в 1998-1999 годах, когда появились первые программы поведения Backdoor - небезызвестные NetBus и BackOrifice2000. Это были концепты, т.е. программы, в которых реализованы принципиально новые технологические решения. NetBus и BackOrifice2000 впервые несли полный набор функций удаленного управления зараженным компьютером, что позволяло злоумышленникам работать с файлами на удаленном компьютере, запускать новые программы, получать снимки экрана, открывать/закрывать CD-привод и т.д.
Изначально созданные как троянские программы, бэкдоры работали без разрешения или уведомления пользователя. Для управления зараженным компьютером злоумышленник должен был сам установить соединение с каждой инфицированной машиной. Первые бэкдоры работали в локальных сетях на основе стека протоколов TCP/IP и, по сути, являлись демонстрацией вариантов использования Windows API для удаленного управления компьютером.
Клиентские программы для удаленного управления компьютерами уже в начале 2000-х могли одновременно управлять сразу несколькими машинами. Однако, в отличие от современных бэкдоров, программы NetBus и BackOrifice2000 выступали в роли сетевого сервера: они открывали определенный порт и пассивно ждали подключений хозяина (Backdoor"ы, используемые для построения ботнетов сегодня, устанавливают соединения сами).
Затем кто-то из злоумышленников придумал сделать так, чтобы зараженные бэкдорами компьютеры сами выходили на связь и их всегда можно было видеть онлайн (при условии, что они включены и работают). Скорее всего, этот "кто-то" был хакером, потому что боты нового поколения использовали традиционный для хакеров канал связи - IRC (Internet Relay Chat). Вероятно, разработку новых ботов сильно упростило то, что в самой системе IRC изначально функционировали боты с открытым исходным кодом, но не направленные на удаленное управление системой, а с другим функционалом (эти программы отвечали на запросы пользователей, например, выдавали информацию о погоде или о времени последнего появления определенного пользователя в чате).
Компьютеры, зараженные новыми ботами, стали соединяться с IRC-серверами, в качестве посетителей выходить на связь через определенный IRC-канал и ждать указаний от хозяина ботнета. Хозяин мог в любое время появиться онлайн, увидеть список ботов, отослать команды сразу всем зараженным компьютерам или отправить отдельное сообщение одной машине. Это был первый механизм реализации ботнета с централизованным управлением, позже названный C&C (Command & Control Centre).
Разработка таких ботов была несложной благодаря простоте синтаксиса протокола IRC. Для того чтобы использовать IRC-сервер, необязательно нужна специализированная клиентская программа. Достаточно иметь универсальный сетевой клиент, такой как приложение Netcat или Telnet.
О появлении IRC-ботнетов стало известно довольно быстро. Как только о них появились публикации в хакерских журналах, появились "угонщики" ботнетов люди, которые обладали, возможно, теми же знаниями, что и владельцы ботнетов, но охотились за более легкой наживой. Они искали такие IRC-каналы, где было подозрительно много посетителей, заходили на них, изучали и "угоняли" ботнет: перехватывали управление сетью, перенаправляли боты на другие, защищенные паролем, IRC-каналы и в результате получали полный единоличный контроль над "чужой" сетью зараженных машин.
Следующим этапом развития ботнетов стало перемещение центров управления во всемирную паутину. Сначала хакеры разработали средства удаленного управления сервером, которые были основаны на таких популярных скрипт-движках, как Perl и PHP, в редких случаях - ASP, JSP и нескольких других. Затем кто-то создал такое соединение компьютера в локальной сети с сервером в Интернете, которое позволяло откуда угодно управлять компьютером. Схема удаленного управления компьютером в локальной сети в обход таких средств защиты, как прокси и NAT, была опубликована в Интернете и быстро стала популярной в определенных кругах. Удаленное управление было основано на установлении HTTP-соединения с управляющим сервером с использованием локальных настроек компьютера. Если пользователь устанавливал в настройках системы адрес, порт, логин и пароль для прокси-сервера, автоматически активизировался механизм авторизации библиотеки функций для поддержки протокола HTTP (Wininet.dll). С точки зрения программиста, это было простым и доступным решением.
Полулегальные разработки средств удаленного управления, направленные на получение в обход защиты удаленного доступа к машинам в локальных сетях, дали толчок к созданию веб-ориентированных ботнетов. Чуть позже был разработан простой скрипт управления небольшой сетью компьютеров, а злоумышленники нашли способ использовать такие управляемые сети в корыстных целях.
Веб-ориентированные ботнеты оказались чрезвычайно удобным решением, которое популярно и сегодня. Множеством компьютеров можно управлять с любого устройства, имеющего доступ в Интернет, в том числе с мобильного телефона, поддерживающего WAP/GPRS, а с веб-интерфейсом способен справиться даже школьник. Дальнейшее развитие Интернета и совершенствование технологий веб-разработки также стимулировали использование веб-ботнетов.
Были попытки создать ботнеты, управляемые через каналы IM-служб. Но IM-ботнеты не получили широкого распространения, в частности потому, что они требуют регистрации номеров IM, а в условиях, когда системы защиты от автоматической регистрации аккаунтов постоянно меняются, зарегистрировать множество аккаунтов автоматически довольно сложно.
На этом эволюция ботнетов не закончилась: перебрав варианты использования протоколов, разработчики ботнетов переключились на архитектуру сети. Оказалось, что ботнет классической архитектуры (много ботов и один центр управления) чрезвычайно уязвим, так как зависит от критического узла - центра управления, при отключении которого сеть можно считать потерянной. Решения в виде одновременного заражения компьютеров разными ботами, ориентированными на разные центры управления, иногда срабатывают, но такие ботнеты гораздо сложнее поддерживать, поскольку нужно следить сразу за двумя-тремя центрами управления.
Весьма эффективными и опасными с точки зрения экспертов могут стать ботнеты с архитектурой P2P, в которых центра управления нет. Владельцу сети достаточно дать команду одной из машин, дальше боты передают команду сами. В принципе каждый компьютер в ботнете может соединиться с любым другим компьютером, входящим в ту же сеть. Эксперименты по созданию таких ботнетов проводились довольно давно, однако первый крупномасштабный ботнет на основе P2P-архитектуры появился только в 2007 году. И именно P2P-ботнеты сейчас занимают внимание исследователей информационной безопасности.