В мире существуют разные боты. Есть боты, которые бороздят просторы морей или просто стоят на месте — как, например, буддистские боты (если что, это такая религиозная постройка). Но если ты читаешь ][, то наверняка догадался, что речь пойдет не про них и даже не про ископаемые бабушкины чеботы, а про автономно действующие вредоносные программы, способные выполнять поступающие извне команды и объединяться в ботнеты.

Одним из первых крупнейших ботнетов принято считать сеть, созданную в 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, линейный конгруэнтный метод).

Продолжение статьи доступно только подписчикам

Cтатьи из последних выпусков журнала можно покупать отдельно только через два месяца после публикации. Чтобы читать эту статью, необходимо купить подписку.

Подпишись на журнал «Хакер» по выгодной цене!

Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта, включая эту статью. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов. Подробнее о подписке

6 комментариев

Подпишитесь на ][, чтобы участвовать в обсуждении

Обсуждение этой статьи доступно только нашим подписчикам. Вы можете войти в свой аккаунт или зарегистрироваться и оплатить подписку, чтобы свободно участвовать в обсуждении.

Check Also

В Google Play снова нашли малварь, объединявшую устройства в рекламный ботнет

Специалисты Symantec обнаружили в приложениях из Google Play вредоноса Sockbot, который об…