История вопроса

В их современном виде бот-сети возникли на рубеже «нулевых» годов XXI века, хотя и до этого вирусописатели предпринимали успешные попытки собрать в единую систему зараженные компьютеры, доступные для удаленного управления — например системы, инфицированные бэкдорами. Исторически первым массовым ботнетом принято считать бот-сеть, созданную злоумышленниками в 2004 году с использованием почтового червя Beagle, заразившего порядка 230 000 компьютеров по всему миру. Червь Beagle мог инфицировать все существовавшие на тот момент версии Microsoft Windows и с использованием собственной реализации механизма SMTP рассылал свои копии по электронной почте. Beagle обладал руткит-модулем, способным скрывать собственное присутствие в системе, а также умел завершать процессы некоторых антивирусных программ.

В 2006 году заявил о себе массовый ботнет Rustock, предназначенный для рассылки спама. Инфицированные Rustock компьютеры могли рассылать до 25 000 почтовых сообщений в час, а в периоды максимальной активности — до 192 писем в минуту. Бот-сеть успешно действовала до 2011 года, когда была практически полностью уничтожена в результате тщательно спланированной кампании, проведенной экспертами из корпораций Microsoft, FireEye и специалистами из университета Вашингтона в сотрудничестве с федеральными агентами безо­пасности США.

С тех пор ботнеты различного функционального назначения стали появляться на свет с завидной регулярностью. 2007 год отметился появлением сети Cutwail (также известен как Bulknet). По различным подсчетам, Cutwail заразил в общей сложности порядка 1,5 млн компьютеров по всему миру. Этот ботнет также был предназначен для рассылки спама и имел довольно-таки простую структуру: действующие на зараженном компьютере вредоносные программы соединялись напрямую с командным сервером и получали оттуда все данные, необходимые для рассылки рекламных писем, а после успешного выполнения задачи боты передавали злоумышленникам отчет, содержащий подробную статистику о проделанной «работе».

2008 год стал периодом бурного распространения червя Conficker (также известного под именем Kido), заразившего в общей сложности более 10,5 млн компьютеров (по другим данным — порядка 12 млн) в 200 странах мира. По сей день этот ботнет считается одним из наиболее масштабных. Используя уязвимости в операционных системах семейства Microsoft Windows, червь загружал себя на атакуемый компьютер из Интернета, а также распространялся с использованием съемных носителей информации. В феврале 2009 года корпорация Microsoft объявила награду в 250 000 долларов за любую информацию о создателях этого червя. Кроме того, данная вредоносная программа обладала возможностью получать собственные обновления непосредственно с других зараженных узлов, минуя управляющий сервер, что значительно затрудняло борьбу с ним.

Начиная с 2010 года стали возникать бот-сети, состоящие из компьютеров, инфицированных банковскими троянцами (в частности, TDL/TDSS). В 2011 году получил широкое распространение файловый вирус Rmnet (Ramnit), также способный самоорганизовываться в ботнеты и инфицировавший в общей сложности порядка 3 млн компьютеров (по  другим данным — более 5 млн). Несмотря на громкие заявления некоторых антивирусных компаний о полной и безоговорочной победе над этой угрозой, бот-сеть Rmnet продолжает действовать и сегодня. Так, в нескольких известных специалистам по информационной безопасности подсетях этого ботнета на 27 июня 2015 года действует более 461 000 зараженных компьютеров (из них более 6000 — на территории России).

Злоумышленники продолжают создавать и активно эксплуатировать ботнеты. В частности, в 2014 году киберпреступники встроили вредоносную программу в приложение, предназначенное для поисковой оптимизации сайтов, в результате чего сумели создать бот-сеть для рассылки спама, состоящую из более чем 250 тыс. зараженных узлов.

Не обделяют своим вниманием злоумышленники и рынок портативных платформ. Еще в 2010 году был зафиксирован первый ботнет, состоящий из мобильных устройств под управлением ОС Android, инфицированных троянцем Geinimi. А всего пару лет спустя, в 2013 году, специалисты компании «Доктор Веб» зафиксировали крупнейший мобильный ботнет, состоящий из смартфонов и планшетов, инфицированных троянцами семейства Android.SmsSend — заражению подверглись 200 000 с лишним устройств, при этом более 128 000 из них принадлежали российским пользователям.

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

Архитектура ботнетов

Простые ботнеты

Исторически самые первые бот-сети имели довольно примитивную структуру. Все вредоносные программы, инфицировавшие компьютеры своих жертв, подключались к единому управляющему серверу, с которого получали конфигурационные файлы, необходимые им для дальнейшей работы, обновления и собственно команды для последующего выполнения. В качестве управляющего узла мог выступать и чат-сервер, предназначенный для организации обмена текстовыми сообщениями по протоколу IRC (Internet Relay Chat) — этой технологией, в частности, пользовались троянцы семейства BackDoor.IRC.Bot. Боты этого типа соединялись с соответствующим IRC-сервером, подключались к определенному чат-каналу и начинали «слушать» его в ожидании входящих команд. Адрес управляющего сервера был, как правило, «зашит» в теле самого бота и в лучшем случае был зашифрован в целях затруднить его поиск и анализ. Бот расшифровывал адрес командного центра непосредственно во время своего выполнения. Таким образом, ранние ботнеты имели звездообразную структуру и обладали существенным архитектурным недостатком: при отключении или перехвате управляющего сервера вся бот-сеть становилась нефункциональной, и усилия, приложенные злоумышленниками на распространение вредоносного ПО, оказывались затраченными впустую.

Рис. 5. Первые ботнеты имели простую звездообразную структуру: 1 — зараженные компьютеры; 2 — управляющий сервер. Ботнеты, использующие DGS

Следующим эволюционным этапом в развитии бот-сетей стало появление технологии генерации доменных имен контрольно-управляющих серверов (DGS, domain generation system). Создана эта система была в первую очередь в целях борьбы с противодействием работе бот-сетей со стороны антивирусных компаний и для повышения «живучести» ботнетов.

Вместо адреса контрольно-управляющего сервера или списка таких адресов в состав ботов злоумышленники стали включать специальный алгоритм, генерирующий адрес управляющего сервера по определенной схеме «на лету». Таким образом формировался перечень подобных адресов. Далее бот опрашивал полученные адреса по очереди, и, если с одного из них приходил заранее обусловленный ответ, этот сервер становился для бота управляющим. Например, некоторые троянцы составляли адреса серверов из последовательности латинских символов и цифр, добавляя к ним обозначение домена первого уровня .com или .org. Зная используемый вредоносной программой алгоритм генерации имен, злоумышленник мог оперативно зарегистрировать такой домен для управляющего сервера. Если этот домен по каким-либо причинам оказывался заблокированным, киберпреступник попросту регистрировал новый.

Отчасти задачу владельцам ботнетов упрощало и то обстоятельство, что некоторые крупные зарубежные регистраторы доменов в рекламных целях практикуют отсрочку платежей — зарегистрированный домен становится доступным для использования сразу, а оплату за него можно внести спустя определенный срок, например через месяц — в случае отказа от платежа делегирование домена автоматически прекращалось. Используя эту особенность, некоторые киберпреступники регулярно меняли домены управляющих серверов для своих ботнетов, не платя никому ни цента. Кроме того, даже в случае утраты доступа к управляющему серверу (например, из-за его блокировки хостинг-провайдером по жалобе пользователей или антивирусной компании) злоумышленнику ничто не мешает в считанные минуты развернуть еще один управляющий сервер на новой площадке и прилинковать к нему новый (или уже существующий) домен.

Некоторые владельцы бот-сетей использовали сразу несколько параллельных командных центров, разбивая ботнет на отдельные независимо управляемые подсети, что также повышало их устойчивость к различным внешним воздействиям. Таким образом, структура бот-сетей, построенных с применением технологии DGS, немного усложнилась.

С одной стороны, DGS сделала бот-сети более управляемыми и устойчивыми к внезапному отказу командных центров, с другой — значительно упростила их перехват с использованием метода sinkhole (о нем мы побеседуем чуть позже). В целях борьбы с этим методом перехвата управления ботнетами злоумышленники стали заметно усложнять механизм коммуникации бот-сети с управляющим центром: протоколы обмена данными стали активно использовать шифрование, управляющие сервера для подтверждения своей подлинности обменивались с вредоносной программой специальным образом сформированной цифровой подписью. Например, один из представителей семейства вирусов Win32.Virut способен генерировать до 100 адресов управляющих серверов в сутки. Последовательно опрашивая их, вирус ожидает поступления ответного пакета, содержащего цифровую подпись домена. Если проверка цифровой подписи проходит успешно, бот считает сервер с таким доменом управляющим.

Рис 6. Структура ботнета, построенного с использованием технологии генерации доменных имен контрольно-управляющих серверов (DGS): 1 — инфицированные компьютеры; 2 — управляющие серверы P2P-ботнеты

Еще одной категорией бот-сетей являются так называемые P2P (Peer-To-Peer), или пиринговые одноранговые сети. Такие сети вовсе не используют управляющих серверов, вместо этого они «общаются» с другими инфицированными компьютерами, передавая команды по сети от «точки к точке». Одноранговые бот-сети являются децентрализованными и потому их невозможно вывести из строя, уничтожив одним метким «ударом» управляющий сервер — за полным отсутствием такового. Ярким примером пиринговой вредоносной сети можно считать ботнет, созданный киберпреступниками с использованием файлового вируса Win32.Sector, заразившего в общей сложности более миллиона компьютеров. Этот вирус может загружать из P2P-сети и запускать на зараженной машине другие вредоносные программы, останавливать работу некоторых антивирусов и предотвращать пользователям зараженной машины доступ к сайтам их разработчиков.

Общеизвестно, что подключенный к Интернету компьютер может иметь собственный внешний IP-адрес, либо не иметь его в случае, если в его локальной сети используется механизм NAT (Network Address Translation). NAT позволяет передавать пакеты за пределы локальной сети, направляя их от узлов с «внутренним» IP-адресом, недоступным из Интернета, внешнему получателю и обратно путем замены в заголовке пакетов «внутреннего» IP-адреса на реальный адрес шлюза или роутера, через который осуществляется подключение всей локальной сети к Интернету.

Рис. 7. Организация одноранговой бот-сети на примере Win32.Sector: «Bot» — зараженные компьютеры, не имеющие внешнего IP-адреса; «Node» — зараженные компьютеры, имеющие внешний IP-адрес и выполняющие функции маршрутизатора для компьютеров «Bot»

Заразив компьютер, Win32.Sector проверяет, имеет ли он внешний IP-адрес или нет. Если имеет, такой бот, условно называемый «Node», начинает играть роль маршрутизатора для других зараженных машин («Bot»), не имеющих реального внешнего IP-адреса. Инфицированные компьютеры типа «Bot» начинают «общаться» с Интернетом и другими зараженными узлами через него. Каждый инфицированный узел такой сети получает начальный список из 100 IP-адресов других ботов, с которыми он пытается установить соединение, причем этот список периодически обновляется. При подобной структуре сети потеря одного «Node» (например, если владелец компьютера вылечит его от вируса) ничем не грозит всей системе в целом: «Bot» просто подключится к другому «Node» для получения дальнейших управляющих команд. Так, на  20 мая 2014 года специалисты компании «Доктор Веб» насчитали в ботнете Win32.Sector 1 197 739 зараженных компьютеров, из них внешний IP-адрес имели только 109 783.

Ботнеты смешанного типа

Примером более сложной бот-сети смешанного типа может служить ботнет Trojan.Dridex.49. Этот троянец умеет встраиваться в запущенные на инфицированном компьютере процессы, а все сообщения, которыми он обменивается в сети, шифруются. Основное назначение этих вредоносных программ — выполнение веб-инжектов, при помощи которых они могут похищать различную конфиденциальную информацию, в том числе получать доступ к системам дистанционного банковского обслуживания.

Для связи с управляющими серверами Trojan.Dridex.49 использует сложную по своей архитектуре одноранговую бот-сеть, состоящую из двух промежуточных слоев прокси. Заразив компьютер, Trojan.Dridex.49 может принять на себя одну из трех возможных ролей:

• роль «Bot» — троянцы этого типа работают на компьютерах, не имеющих внешнего IP-адреса. «Bot» осуществляет связь с управляющим сервером через троянцев с ролью «Node»;

• роль «Node» — троянцы этого типа работают на компьютерах, имеющих внешний IP-адрес, и передают данные от троянцев с ролью «Bot» троянцам с ролью «Admin Node», а также в обратном направлении;

• роль «Admin Node» — троянцы этого типа работают на компьютерах, имеющих внешний IP-адрес, и осуществляют связь друг с другом, а также непосредственно с управляющим сервером.

Цепочка связи инфицированного компьютера, не имеющего внешнего IP-адреса, с управляющим сервером ботнета, выглядит в общем случае следующим образом: Bot -> Node -> Admin Node -> другие Admin Node -> Управляющий сервер. При этом в целях обеспечения безопасности соединения троянцы обмениваются между собой цифровыми ключами. Схематически структура этой сети показана на рис. 8.

Так, чтобы получить с управляющего сервера новый перечень IP-адресов ботов с ролью «Node» или конфигурационных данных, необходимых для выполнения веб-инжектов, троянцы с ролью «Bot» передают запрос троянцу с ролью «Node», тот переправляет его троянцу с ролью «Admin Node», который, в свою очередь, может перебрасывать его другим «Admin Node» до тех пор, пока запрос не достигнет управляющего сервера. Передача запрошенных данных от управляющего сервера троянцу «Bot» осуществляется в обратном иерархическом порядке. Аналогичным образом осуществляется доставка дополнительных функциональных модулей вредоносной программы: «Node» запрашивают их у управляющего сервера через «Admin Node», а «Bot» получают эти модули по запросу у троянцев с ролью «Node». Такая многоуровневая и запутанная система значительно затрудняет отслеживание управляющих серверов бот-сети и перехват информации, которой обмениваются инфицированные машины.

Рис. 8. Архитектура бот-сети смешанного типа на примере Trojan.Dridex.49

Некоторые современные вредоносные программы, например определенные модификации банковского троянца Zeus, используют еще более сложную и изощренную структуру P2P-ботнета с применением туннелирования. Например, запустившись на целевом компьютере, такой троянец может расшифровать из собственного конфигурационного файла список других ботов с ролью «Node» и попытаться установить с ними соединение, а если наладить связь не удалось, он сгенерирует перечень доменов с использованием алгоритма DGS и попытается получить актуальный список «Node»-узлов ботнета оттуда. При этом ресурсы на доменах, содержащие списки узлов сети, не являются управляющими серверами — они просто хранят данные перечни IP-адресов «Node»-узлов, которые отдают ботам по запросу. Связь с истинным управляющим сервером реализуется в такой сети через отдельные «Node»-узлы, работающие как туннелирующий сервер. Сам злоумышленник, управляющий ботнетом, также передает на управляющий сервер список команд не напрямую, а через туннель  — в целях затруднения своей локализации и идентификации. Общая схема такой сети показана на рис. 9.

Рис. 9. Схема сложной комбинированной P2P-сети на примере банковского троянца Zeus Ботнеты с использованием TOR и «облаков»

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

TOR (от англ. The Onion Router —«луковый маршрутизатор») — система так называемой «луковой маршрутизации», состоящая из многослойной структуры прокси-серверов, и позволяющая устанавливать анонимное соединение, защищенное от стороннего прослушивания и слежения. TOR реализует модель анонимных виртуальных тоннелей с использованием шифрования и благодаря распределенной сети узлов связи позволяет пользователю сохранять приватность, препятствуя работе всевозможных механизмов перехвата и анализа трафика.

Структура сети TOR позволяет создавать скрытые веб-сервисы в псевдодоменной зоне .onion, к которой имеют доступ только пользователи TOR-сети и в которой невозможно отследить реальное физическое местоположение сервера. Этим и пользуются злоумышленники, размещая в сети TOR управляющие серверы ботнетов. В случае отсутствия на инфицированной машине TOR-клиента вирусописатели используют для обмена данными с командным центром соответствующие шлюзы, например сервис TOR2WEB.

В частности, управляющий сервер в сети TOR использовал ботнет Mevade (альтернативное наименование — Sefnit), а также довольно крупный ботнет Skynet, предназначенный для проведения массированных DDoS-атак и добычи (майнинга) криптовалют. По данным различных источников, в 2012 году в эту бот-сеть входило порядка 12–15 тыс. зараженных компьютеров.

Активно используют управляющие серверы в TOR и различные троянцы-энкодеры, осуществляющие через «скрытую сеть» обмен ключами шифрования и принимающие оплату за расшифровку файлов в Bitcoin с помощью сайта, размещенного в TOR-сети на домене .onion. К таким энкодерам относится, например, широко распространенный Critroni (альтернативное название — CTB-Locker, Trojan.Encoder.686).

Для затруднения обнаружения и фильтрации вредоносного трафика ботнета вирусописатели все чаще стали использовать в своих целях облачные технологии и социальные сети. Так, еще в 2008 году были выявлены троянцы, получающие команды с определенной учетной записи в социальной сети Twitter и в специально созданной вирусописателями ветке открытых дискуссионных форумов Google Groups.

Для хранения компонентов вредоносных программ, которые могут быть загружены и установлены на инфицированной машине, киберпреступники нередко используют облачные сервисы Google Docs и Google Drive. Кроме того, известны случаи задействования публичных облачных сервисов для организации коммуникации вредоносной программы с ее командным центром. Например, обнаруженная в 2012 году вредоносная программа-бэкдор BackDoor.Makadoc использовала для обмена данными со своим управляющим сервером облачный сервис Google Docs. Встроенное в этот сервис веб-приложение Google Docs Viewer обрабатывает все входящие запросы как обычный открытый прокси-сервер, при этом такие запросы не вызывают «подозрений» у встроенного брандмауэра Windows, чем и воспользовались злоумышленники. В процессе обработки запросов Google Docs Viewer даже не требует у клиента обязательной авторизации в сервисе Google Docs, просто перенаправляя их на командный сервер, что еще более облегчило задачу киберпреступникам.

Нетрадиционные схемы

Помимо описанных выше «традиционных» способов организации взаимосвязи зараженного компьютера и управляющего сервера, злоумышленники порой изобретают более замысловатые схемы, проявляя недюжинную фантазию. Одним из примеров может служить ботнет, в который на конец сентября 2014 года входило порядка 18,5 тыс. инфицированных компьютеров Apple с уникальными IP-адресами, работающих под управлением операционной системы Mac OS X. Причиной заражения стал троянец Mac.BackDoor.iWorm, активно использующий в своей работе различные криптографические алгоритмы.

Для получения списка адресов управляющих серверов Mac.BackDoor.iWorm обращался с запросом к встроенной поисковой системе популярного публичного новостного сайта reddit.com, в котором зарегистрированные пользователи могут оставлять различные ссылки и краткие сообщения. Поисковая строка включала в себя шестнадцатеричные значения первых 8 байт хэш-функции MD5 от текущей даты. В ответ поисковая система Reddit выдавала троянцу ссылки на оставленные злоумышленниками комментарии со списком управляющих серверов ботнета и портов для установки соединения.

Mac.BackDoor.iWorm последовательно перебирал полученный список, отправляя запросы в случайном порядке на первые 29 адресов из этого перечня, и обменивался с удаленными узлами пакетами данных, проверяя с помощью сложного математического алгоритма подлинность каждого сервера. Если проверка завершалась успешно, троянец сообщал на удаленный узел свои идентификационные данные и ожидал от него поступления управляющих команд.

Еще один бэкдор, известный под именем BackDoor.Zetbo.1, на сей раз — угрожающий пользователям Windows, использовал не менее оригинальный способ получения конфигурационных данных, необходимых ему для осуществления вредоносной деятельности. Управляющий сервер, с которого загружала свои параметры эта поделка турецких вирусописателей, внешне выглядел вполне безобидно: на нем размещалось несколько веб-страниц, содержащих графические кнопки с различными гиперссылками. Анализируя HTML-код этих кнопок, троянец вычленял из него значения определенных атрибутов HTML-тегов и путем ряда преобразований получал из них всю интересующую информацию, то есть осуществлял парсинг (синтаксический разбор) кода веб-страницы. Для стороннего же наблюдателя данный сайт не представлял никакой угрозы и не вызывал подозрений — внешне он выглядел, как самая обычная веб-страничка, которых в Интернете сотни миллионов.

Схожим образом действовал один из троянцев-загрузчиков, активно распространявшихся осенью 2012 года, — с его помощью, в частности, на компьютеры пользователей попадали банковские троянцы семейства Zeus (Zbot, Trojan.PWS.Panda). Заразив атакуемый компьютер, загрузчик расшифровывал из своего тела список адресов удаленных веб-сайтов и обращался к каждому из них по протоколу HTTPS. В ответ троянец получал хранящуюся в корневой папке каждого сайта веб-страницу и осуществлял ее парсинг в поисках тега вставки изображения: . В качестве аргумента этого тега веб-страница содержала зашифрованный исполняемый код вредоносной программы, который загрузчик извлекал, расшифровывал и запускал на исполнение на инфицированной машине.

Другая троянская программа, Linux.Sshdkit, предназначенная для заражения работающих под управлением Linux серверов, использовала следующий алгоритм получения имени командного сервера. Троянец по специальному алгоритму генерировал два IP-адреса, которые являлись адресами принадлежащих злоумышленникам DNS-севреров. Если оба этих DNS-севрера при обращении к ним ссылались на один IP-адрес, этот адрес с помощью специального математического алгоритма преобразовывался в другой IP-адрес. Он-то и являлся истинным адресом командного центра, на который вредоносная программа загружала всю похищенную на зараженном сервере информацию.

  #i_010.jpg

Рис. 10. Алгоритм генерации имени командного сервера троянцем Linux.Sshdkit Командная система ботнетов

Как уже упоминалось ранее, некоторые боты, фактически совмещающие в себе функции бэкдоров, могут транслировать поступающие извне директивы встроенному командному интерпретатору операционной системы, другие используют собственный набор команд, при этом весь передаваемый в бот-сети трафик обычно шифруется.

Наиболее часто административный интерфейс управляющего сервера ботнета реализован в виде набора сценариев на языке PHP или с использованием другого скриптового языка, и в целом напоминает административный раздел стандартных систем управления контентом (CMS, Content Management Systems). Авторизовавшись на сервере, злоумышленник получает доступ к статистике ботнета — на специальной страничке, как правило, отображается общее количество установленных и активных ботов, перечень последних выполненных ботами команд, данные об успешности/провале завершения этих операций, в некоторых случаях (если ботнет связан с какой-либо «партнерской программой») — полученный злоумышленниками совокупный доход. В отдельном разделе «админки» киберпреступник может отдать ботам соответствующие команды, просто набрав их в специальной экранной форме.

Однако способ трансляции команд ботнету может значительно различаться в зависимости от используемого бот-сетью для передачи данных протокола. Все команды можно условно разделить на две категории:

директивы, общие для всего ботнета;

команды, отдаваемые отдельным подсетям или ботам.

В частности, практически все ботнеты поддерживают команду на загрузку с удаленного сервера и установку обновлений ботов, получение конфигурационных данных: спам-боты загружают в качестве таковых текст рассылаемых сообщений и адреса почтовых серверов для отсылки писем, предназначенные для выполнения веб-инжектов троянцы — встраиваемый в веб-страницы код и список узлов, при установке соединения с которыми осуществляется веб-инжект. Ботнеты, предназначенные для проведения массированных атак на отказ в обслуживании (DDoS-атак) могут получать команду на начало или окончание атаки определенного типа с использованием поддерживаемых вредоносной программой протоколов. Большинство современных DDoS-бот-сетей обладают возможностью осуществлять следующие виды атак.

SYN Flood — отсылка определенным образом сформированных пакетов на атакуемый узел до тех пор, пока тот не перестанет отвечать на запросы.

UDP Flood — бот устанавливает соединение с атакуемым сервером по протоколу UDP, после чего отправляет ему большое количество «мусорных» дейтограмм.

Ping Flood — троянец формирует эхо-запрос с использованием протокола ICMP, который направляется с определенным временным интервалом на атакуемый узел.

DNS Amplification — троянцы отсылают массированные запросы на указанные злоумышленниками серверы DNS с целью вызвать их отказ.

NTP Amplification — отправка массированных запросов на серверы NTP с целью вызвать их отказ.

Большинство банковских троянцев может выполнять команду на полное уничтожение операционной системы на инфицированном компьютере: в результате после успешного хищения средств с банковского счета компьютер жертвы перестает загружаться. Это дает злоумышленникам временную фору до того момента, пока пострадавший от действия вредоносной программы пользователь не начнет бить тревогу и обратится в банк с требованием заморозить несанкционированную транзакцию.

Существуют и оригинальные виды команд, которые могут выполнять некоторые вредоносные программы. Например, предназначенный для рассылки спама и организации DDoS-атак многокомпонентный троянец Trojan.Tofsee обладает некоторыми функциями антивируса: он умеет искать на диске зараженного компьютера файлы по полученному с управляющего сервера списку, отслеживать запущенные в Windows процессы и проверять содержимое системного реестра с одной любопытной целью: отыскания и уничтожения конкурирующих угроз. Таким образом, создатели троянца реализуют своего рода естественный отбор в экосистеме инфицированной машины — устраняя «чужие» вредоносные программы, так или иначе проявляющие активность, Trojan.Tofsee борется за собственную «выживаемость». Следует отметить, что это далеко не единственный подобный случай: специалистам антивирусных компаний известно множество вирусов и троянцев, способных устранять на зараженном ПК другие работающие вредоносные программы в целях конкурентной борьбы за аппаратные ресурсы машины, а также в попытках скрыть от пользователя сам факт заражения.

Методика перехвата управления ботнетами (sinkhole)

Как уже упоминалось ранее, технология DGS обладает рядом архитектурных особенностей, позволяющих специалистам по информационной безопасности успешно перехватывать управление ботнетами. При этом под «перехватом» понимается получение полного управления и контроля над бот-сетью с возможностью не только осуществлять мониторинг и отслеживать состояние сети, но и отдавать команды ботам. Один из наиболее распространенных методов носит наименование sinkhole (англ., «выгребная яма»).

Суть метода кроется в самой реализации механизма DGS. Исследовав образец вредоносной программы методом реверс-инжиниринга, то есть дизассемблировав ее и изучив исходный код, аналитики получают в свое распоряжение алгоритм, с использованием которого бот генерирует адреса управляющих серверов. Зарегистрировав несколько таких адресов, специалисты создают с их помощью собственные управляющие серверы ботнета, способные в ответ на запрос вредоносной программы отправить ей корректный отклик и  успешно пройти проверку на подлинность (всю необходимую информацию, как правило, можно почерпнуть из декомпилированного и расшифрованного кода самой вредоносной программы). После этого достаточно лишь тем или иным способом ликвидировать действующие управляющие центры бот-сети. Утратив связь с командным сервером, боты начинают генерировать адреса альтернативных управляющих серверов с использованием уже известного специалистам по информационной безопасности алгоритма DGS, устанавливают связь с принадлежащим им «поддельным» управляющим центром и после успеха этой операции прекращают поиски альтернативных командных узлов. Управление ботнетом захвачено.

В частности, с использованием этого метода сотрудникам российской антивирусной компании «Доктор Веб» удалось перехватить управление несколькими подсетями ботнета Rmnet, бот-сетью Linux.Sshdkit, а также угрожавшим пользователям компьютеров Apple обширным ботнетом BackDoor.Flashback.39.

Почему специалисты по информационной безопасности в некоторых случаях предпочитают перехватить у злоумышленников управление бот-сетью, вместо того чтобы просто уничтожить ее управляющие центры? Потому что в большинстве случаев это не принесет никакого результата: злоумышленники оперативно запустят новые командные серверы, а сами зараженные компьютеры можно избавить от угрозы только в том случае, если их владельцы осознают необходимость установки и своевременного обновления антивирусных программ — убедить в целесообразности этого шага несколько миллионов пользователей инфицированных машин, очевидно, невозможно. В то же самое время перехват управления ботнетом позволяет «заморозить» его, предотвратив дальнейшую вредоносную деятельность сети: злоумышленники больше не могут отдавать команды ботам, и, следовательно, использовать бот-сеть в своих противоправных целях.

В случае с бот-сетями, использующими пиринговые технологии, использование описанного здесь метода, безусловно, невозможно. Вместе с тем, у специалистов по информационной безопасности остается возможность отправлять таким ботам различные команды, например, запрос, в ответ на который вредоносная программа вернет список IP-адресов других зараженных машин, что позволяет оценить размеры ботнета и его географию. Также можно передать ботам список IP-адресов, принадлежащих вирусным аналитикам компьютеров, выполняющих в такой бот-сети функцию маршрутизаторов (узлов Node) с тем, чтобы к ним обращались инфицированные машины, не имеющие выделенного IP-адреса или расположенные в сети, использующей NAT. Это нельзя назвать «перехватом управления» бот-сетью, однако подобный метод позволяет получить достоверное представление о масштабах распространения угрозы.