Одним из первых крупнейших ботнетов принято считать сеть, созданную в 2004 году с помощью почтового червя Beagle. Этот червь имел собственную реализацию протокола SMTP, с помощью которой рассылал себя по электронной почте. Заодно в нем был руткит-модуль, который позволял ему скрывать свое присутствие на зараженной машине.
С тех пор человечество пережило множество нашествий бот-сетей различного калибра. Ушел в историю и Rustock, спамивший с пулеметной скоростью в 192 письма за минуту, и Conficker, заразивший десять с половиной миллионов машин по всему миру. Это, к слову, был первый в истории ботнет, за любые сведения о создателях которого парни из Microsoft предложили награду в 250 тысяч долларов. «Wanted, dead or alive», как пел когда-то старик Бон Джови.
Немного об авторе
Как ты знаешь, в ][ пишут не журналисты, а IT-спецы. Павел Шалин — один из таких. Он работает аналитиком в компании Dr.Web и при этом ухитряется плодотворно писать под псевдонимом «Валентин Холмогоров», и не только на тему малвари и хакерства, но и довольно популярную фантастику. Из книг Павла на близкие любому хакеру темы мы бы тебе посоветовали прочесть «Бумажное небо» и «PRO Вирусы».
Первые бот-сети были примитивными. Они имели простую звездообразную структуру, в центре которой располагался управляющий сервер (Command and Control Server, C&C), а на вершинах лучей звезды — инфицированные хосты. Команды и конфиги передавались ботам по стандартным протоколам, например через старый добрый IRC. В этом случае трой подключался к определенному каналу и начинал слушать команды, которые ботовод отправлял прямо в чат. Самое слабое место такой архитектуры очевидно: достаточно грохнуть центральный сервер, и сеть становится неуправляемой, а отдать ботам команду на смену C&C уже не получится.
Следующим этапом эволюции ботнетов стало появление алгоритмов динамической генерации имен управляющих серверов — DomainGenerationAlgorithm
(DGA). Суть этой технологии проста. Бот содержит код, который генерирует доменные имена по специальному алгоритму. В результате получается домен, состоящий, например, из определенной последовательности символов латинского алфавита и цифр. Их легко отличить — зарегистрировать такой домен психически здоровому человеку в голову попросту не придет.
На этом домене и поднимается управляющий сервер. Если этот сервак однажды прикажет долго жить, нужно лишь зарегистрировать следующий и запустить на нем админку. В свою очередь, бот, не получив отклика от C&C, генерирует несколько новых адресов и начинает опрашивать их по очереди, пока не найдет работающий.
Живучесть ботнета таким образом заметно повышается, да и ботовод получает уникальную возможность сберечь пару шекелей: некоторые регистраторы в погоне за прибылью позволяют своим клиентам регистрировать домены сейчас, а платить за это потом. Если деньги не поступают, домен через какое-то время просто отрубается. Используя этот лайфхак, некоторые особо прижимистые ботоводы меняют C&C раз в пару недель, экономя себе копеечку на пиво.
Некоторые ботоводы параллельно использовали сразу несколько управляющих серверов на отдельных доменах, разбивая свой ботнет на подсети. Вот так, например, выглядит дизассемблированный фрагмент модуля DGA вируса Win32.Rmnet (для генерации доменных имен используется алгоритм LCG, линейный конгруэнтный метод).
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»