Рис. 4. Веб-инжект, выполненный в веб-страницу социальной сети троянцем Trojan.Mayachok
Кроме банковских троянцев веб-инжектами пользуются и различные мошеннические вредоносные программы. Так, троянцы семейства Trojan.Mayachok применяют веб-инжекты совершенно в иных целях. При попытке владельца зараженного этим троянцем компьютера зайти на сайт какой-либо из популярных социальных сетей, Trojan.Mayachok демонстрирует ему на экране сервисное сообщение якобы от имени данной социальной сети (оформленное в ее фирменном стиле) с информацией о том, что его личная страничка была взломана. Для восстановления доступа пользователю предлагается ввести в специальную форму номер мобильного телефона, а затем — пришедший в ответном СМС-сообщении код подтверждения. Обычно потенциальная жертва не задумываясь выполняет предложенные действия, поскольку входящие СМС у большинства операторов сотовой связи — бесплатные, и даже не подозревает о том, что сообщение в ее браузере сгенерировано коварным троянцем. Указав в предложенной форме код, пользователь соглашается с условиями платной подписки. Теперь с его мобильного счета будет ежедневно сниматься определенная денежная сумма до тех пор, пока прозревший владелец телефона не отменит навязанную тайком услугу, либо пока счет не опустеет.
Помимо широко известных социальных сетей троянцы данного типа успешно «охотились» и на пользователей других популярных серверов — почтовых служб mail.ru, yandex.ru, видеохостинга youtube.com, сайтов знакомств и т. д.
Кроме сайтов популярных интернет-сервисов, некоторые модификации Trojan.Mayachok просто-напросто полностью блокировали своим жертвам доступ в Интернет из любых браузеров, выводя на экран сообщение якобы от имени обслуживающего пользователя интернет-провайдера примерно следующего содержания: «
Еще одним примером нестандартного применения веб-инжекта может служить троянская программа Trojan.Mayachok.18831. Она не просто блокирует пользователю доступ к сайту социальной сети под предлогом «взлома», а видоизменяет его анкету прямо на локальном компьютере. Заглянув однажды на свою собственную страничку «В Контакте», пользователь с ужасом замечает, что вместо его фотографии в профиле социальной сети отображается снимок порнографического характера, а в списке «интересов» перечислены весьма нестандартные увлечения, включая склонность к нетрадиционным сексуальным связям. При попытке отредактировать профиль на экране появляется якобы сервисное окно социальной сети, в котором от жертвы требуется указать ее номер мобильного телефона и ввести проверочный код из ответного СМС.
Разумеется, все «признания» пользователя о его необычных эротических предпочтениях, равно как и непристойные снимки, в веб-страницу «В Контакте» встраивал троянец: если бы жертва зашла в социальную сеть с любого другого незараженного компьютера, она увидела бы свою обычную анкету без каких-либо визуальных изменений. Ну, а выполнив требования злоумышленников, пользователь незамедлительно терял средства на своем мобильном счете.
Троянцы-загрузчики
Создатели
Другие разновидности загрузчиков стараются не связываться с откровенно криминальным вредоносным ПО, а вместо этого скачивают и инсталлируют на зараженную машину различные сомнительные приложения, за установку которых им платят вознаграждение многочисленные проекты, гордо именующие себя «партнерскими программами по монетизации файлового трафика». В самом же деле все эти «партнерские программы» являются обычными жульническими схемами по несанкционированному «впариванию» пользователям всяких «ускорителей Интернета», «очистителей реестра», «помощников по поиску», «улучшателей графики» и прочего программного хлама. Подцепив где-нибудь троянца-загрузчика, жертва сетевых жуликов однажды обнаруживает, что ее компьютер полностью замусорен всякими рекламными баннерами, десятком непонятных браузеров, кучей «оптимизаторов» и прочих программ, значительно замедляющих работу операционной системы. Причем их удаление стандартными средствами ОС обычно не помогает: через пару дней весь этот зверинец возвращается на свои места, даже заметно прибавив в количестве и ассортименте. Единственным эффективным выходом из подобной ситуации является поиск и уничтожение изначального источника проблемы: прячущегося где-то на диске троянца-загрузчика.
Майнеры
Первым в истории электронным платежным средством, которое можно отнести к категории криптовалют, стала виртуальная денежная единица Bitcoin, изобретенная криптографом Сатоси Накамото в 2009 году. Для защиты транзакций в системе Bitcoin используются различные криптоалгоритмы, а сама система является децентрализованной — иными словами, в ней отсутствуют какие-либо обособленные управляющие или процессинговые центры. Особенность подобных платежных систем заключается в том, что объем имеющей в них хождение виртуальной валюты строго ограничен, причем пользователи могут не только «обмениваться» электронными «монетами», покупая на них всевозможные товары, но и добывать их, как старатели в реальном мире добывают золото, превращающееся потом в платежное средство. Для этого компьютер с помощью специальной программы должен выполнить ряд очень сложных математических вычислений. Этот процесс называется «майнингом» (от англ. mining, «добыча»).
Собственно, троянцы-майнеры, заразив компьютер, и нагружают его под завязку подобными расчетами, заставляя систему поминутно «тормозить» и «зависать». Ну, а все добытые таким образом деньги отправляются, естественно, не владельцу инфицированного устройства, а жулику-вирусописателю.
Существуют троянцы-майнеры не только для ОС Windows, но также для Mac OS X и Google Android. И хотя на первый взгляд они и не представляют серьезной опасности для инфицированной системы, деятельность майнеров заметно замедляет скорость работы компьютера или мобильного устройства, а также вызывает перегрев процессора или чипа видеокарты (существует категория майнеров, использующих для вычислений мощности графических процессоров современных видеоадаптеров). В случае физических неполадок в системе охлаждения компьютера это может привести к фатальным последствиям вплоть до выхода из строя соответствующего оборудования.
Фишинг
Весьма распространенным термином «фишинг» (от англ. phishing, производное от fishing — «выуживание») называется несанкционированное получение учетных данных пользователя для доступа к какой-либо приватной информации, например логинов и паролей. Зачастую сетевые мошенники создают поддельные веб-сайты, имитирующие своим оформлением страницы популярных социальных сетей или почтовых сервисов, и всеми силами завлекают туда посетителей, в частности, с использованием так называемых методов
Вероятно, читатель уже догадался, что нажатие на такую ссылку неизбежно приведет пользователя на поддельный сайт, внешне копирующий оформление одной из популярных социальных сетей, но фактически таковой не являющийся. Достаточно ввести в соответствующие поля формы авторизации свой логин и пароль, чтобы ими завладели злоумышленники. После этого от имени скомпрометированной учетной записи в социальной сети могут распространяться как безобидные рекламные сообщения, так и вредоносные программы. Распространены ситуации, когда мошенники, завладев чужой учетной записью, просят у знакомых «одолжить» им некоторую сумму, пополнив счет мобильного телефона злоумышленника. Шансы на то, что пользователь «купится» на такое сообщение, достаточно высоки: ведь с психологической точки зрения степень доверия к информации, полученной от одного из известных пользователю контактов, значительно выше, чем к сообщению, пришедшему от постороннего человека.
Однако одними лишь методами социальной инженерии киберпреступники не ограничиваются: в ход идут и вредоносные программы, предназначенные для фишинга — яркими их представителями является, в частности, семейство Trojan.Hosts. В операционных системах семейства Microsoft Windows для получения IP-адреса интернет-ресурса по введенному пользователем в адресную строку браузера URL используются DNS-серверы, однако перед отправкой запроса на них система обращается к локальному файлу %SYSTEMROOT%\system32\drivers\etc\hosts, в котором некоторыми приложениями сохраняются записи соответствия определенным URL IP-адресов в целях ускорения доступа к ним. Обосновавшись в операционной системе, Trojan.Hosts помещает в этот файл строки, подменяющие адреса сайтов популярных социальных сетей и поисковых систем на IP-адреса принадлежащих злоумышленникам веб-страниц. Таким образом, набрав в адресной строке браузера, например, «vk.com», потенциальная жертва попадает на сайт жуликов, имитирующий данную социальную сеть. Введенные на этой страничке логин и пароль тут же передаются киберпреступникам.
Другое семейство троянцев подобного типа — Trojan.DnsChange — подменяет корректные адреса DNS-серверов в сетевых настройках Windows на IP-адреса принадлежащих злоумышленникам DNS-серверов. Таким образом, в ответ на запросы, направляемые операционной системой на этот сервер, компьютер жертвы будет получать IP-адреса мошеннических интернет-ресурсов, в том числе страниц, с которых распространяется другое вредоносное ПО.
Случается и так, что программа-вредитель сама ворует логин и пароль для входа в социальную сеть, не заставляя пользователя вводить их вручную. Примерно так действовал наделавший много шума червь Win32.HLLW.AntiDurov, эпидемия которого разразилась в российском сегменте Интернета в 2008 году. Пользователи социальной сети «В Контакте» получали от друзей ссылку на забавную картинку deti.jpg, при открытии которой на компьютер загружался вредоносный файл deti.scr. Вслед за этим червь прописывался под именем Vkontaktesvc.exe в папку Application Data текущего пользователя и запускался в качестве фоновой службы с именем «Durov VKontakte Service». Затем червь анализировал хранящиеся на зараженном компьютере файлы cookies в поисках учетных данных для входа в социальную сеть «В Контакте», и если таковые обнаруживались, по списку «друзей» жертвы рассылалось сообщение со ссылкой на тот же рисунок, загружающий вредоносный файл. Деструктивная функция червя заключалась в том, что 25 числа каждого месяца в 10 часов утра он выводил на экран компьютера сообщение: «
Рекламные троянцы
Про рекламных троянцев я уже рассказывал в предыдущей главе, здесь стоит лишь кратко упомянуть о них, как об одном из наиболее распространенных типов угроз. Рекламные троянцы позволяют своим создателям зарабатывать деньги за счет рекламодателей, заставляя пользователей просматривать во время путешествий по Интернету назойливые объявления, которые выпрыгивают на экран, как чертики из табакерки, в совершенно неожиданных местах и мешают нормальному просмотру веб-страниц. Опасность таких троянцев заключается еще и в том, что рекламируют они, как правило, всевозможные финансовые пирамиды, «лохотроны», опасные для здоровья диеты, несертифицированные медицинские препараты и биологически активные добавки, а также другие товары и услуги сомнительного толка. Некоторые такие троянцы «умеют» подменять стартовую страницу браузера, самостоятельно открывают новые вкладки при просмотре веб-страниц, а также изменяют выдачу в поисковых системах, «подсовывая» пользователю вместо ссылок с результатами обработки поискового запроса в Google, «Яндексе» и других поисковиках ссылки на всевозможные мошеннические ресурсы.
Распространяются рекламные троянцы с использованием так называемых партнерских программ — специальных сайтов, позволяющих недобросовестным создателям веб-страниц зарабатывать деньги на посетителях своих ресурсов: чем больше пользователей установит такую вредоносную программу на свой компьютер, тем большее вознаграждение получит участник «партнерской программы». Поэтому вредоносную программу предлагают скачать под видом различных игр, «полезных» утилит, музыкальных записей, бесплатных электронных книг и т. д. Как правило, оформлены они либо в виде отдельного приложения, либо в виде надстроек (плагинов) к популярным браузерам.
Узкоспециализированные вредоносные программы
Помимо троянцев, использующих «традиционные» схемы отъема денег у пользователей, существуют узкоспециализированные вредоносные программы, созданные для осуществления так называемых
Другой троянец, являющийся характерным примером реализации технологий промышленного шпионажа, заражал только те компьютеры, на которых была установлена инженерная система для разработки чертежей AutoCad. Все копии созданных и обнаруженных на атакованном компьютере чертежей троянец упаковывал в архив и незамедлительно отправлял на сервер, расположенный в Китае. А ведь многие удивляются: как китайцам удается создавать точные копии электронных устройств, телефонов, компьютеров, автомобилей и истребителей, причем порой даже раньше, чем на свет появляется сам оригинал?
Другой троянец, получивший наименование Trojan.SteamBurglar, эксплуатировал в своих интересах любовь некоторых пользователей к компьютерным играм. Ряд современных многопользовательских электронных игр представляет собой настоящие виртуальные миры с собственными социальными и экономическими законами. В таких вселенных игрок может приобретать различные виртуальные предметы и ресурсы — например, доспехи, магические заклинания или дополнительную броню, — которые дают ему ряд тактических преимуществ перед другими игроками. Причем многие подобные артефакты можно купить за реальные деньги (на чем и зарабатывают некоторые издатели компьютерных игр, делая саму игру бесплатной), а ставшие ненужными игровые предметы — продать другим пользователям. Этим и прославился Trojan.SteamBurglar: он воровал у незадачливых игроков различные ценные виртуальные предметы и тут же продавал их на специализированных интернет-площадках за вполне реальные доллары, которые переводил на счет своих создателей. Чем не бизнес?
Все сказанное выше лишь подтверждает тезис, озвученный в самом начале этой главы: практически все существующие сегодня вредоносные программы рассчитаны исключительно на получение прибыли за счет своих жертв.
Глава 4. Ботнеты
Термином «ботнет», или «бот-сеть», принято обозначать сети, созданные с использованием автономно действующих дистанционно управляемых вредоносных программ (ботов). Такие сети могут выполнять централизованно отдаваемые киберпреступниками команды и имеют различную архитектуру: как с использованием удаленных командных серверов (Command and Control Server, C&C), так и без них. Злоумышленники строят ботнеты с различными целями. Как правило, это рассылка спама, организация массированных атак на отказ в обслуживании (DDoS-атаки) или загрузка других вредоносных приложений на инфицированные компьютеры (сети, состоящие из троянцев-загрузчиков). Некоторые ботнеты способны выполнять сразу несколько деструктивных функций. Владельцы бот-сетей обычно предлагают свои услуги другим злоумышленникам на различных подпольных форумах, извлекая таким образом из своей деятельности прибыль. Иными словами, как сами ботнеты, так и предоставляемые ими нелегальные услуги зачастую становятся объектом купли-продажи.
История вопроса
В их современном виде бот-сети возникли на рубеже «нулевых» годов XXI века, хотя и до этого вирусописатели предпринимали успешные попытки собрать в единую систему зараженные компьютеры, доступные для удаленного управления — например системы, инфицированные
В 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
Следующим эволюционным этапом в развитии бот-сетей стало появление
Вместо адреса контрольно-управляющего сервера или списка таких адресов в состав ботов злоумышленники стали включать специальный алгоритм, генерирующий адрес управляющего сервера по определенной схеме «на лету». Таким образом формировался перечень подобных адресов. Далее бот опрашивал полученные адреса по очереди, и, если с одного из них приходил заранее обусловленный ответ, этот сервер становился для бота управляющим. Например, некоторые троянцы составляли адреса серверов из последовательности латинских символов и цифр, добавляя к ним обозначение домена первого уровня .com или .org. Зная используемый вредоносной программой алгоритм генерации имен, злоумышленник мог оперативно зарегистрировать такой домен для управляющего сервера. Если этот домен по каким-либо причинам оказывался заблокированным, киберпреступник попросту регистрировал новый.
Отчасти задачу владельцам ботнетов упрощало и то обстоятельство, что некоторые крупные зарубежные регистраторы доменов в рекламных целях практикуют отсрочку платежей — зарегистрированный домен становится доступным для использования сразу, а оплату за него можно внести спустя определенный срок, например через месяц — в случае отказа от платежа делегирование домена автоматически прекращалось. Используя эту особенность, некоторые киберпреступники регулярно меняли домены управляющих серверов для своих ботнетов, не платя никому ни цента. Кроме того, даже в случае утраты доступа к управляющему серверу (например, из-за его блокировки хостинг-провайдером по жалобе пользователей или антивирусной компании) злоумышленнику ничто не мешает в считанные минуты развернуть еще один управляющий сервер на новой площадке и прилинковать к нему новый (или уже существующий) домен.
Некоторые владельцы бот-сетей использовали сразу несколько параллельных командных центров, разбивая ботнет на отдельные независимо управляемые подсети, что также повышало их устойчивость к различным внешним воздействиям. Таким образом, структура бот-сетей, построенных с применением технологии DGS, немного усложнилась.
С одной стороны, DGS сделала бот-сети более управляемыми и устойчивыми к внезапному отказу командных центров, с другой — значительно упростила их перехват с использованием метода
Рис 6. Структура ботнета, построенного с использованием технологии генерации доменных имен контрольно-управляющих серверов (DGS): 1 — инфицированные компьютеры; 2 — управляющие серверы 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-адрес. Он-то и являлся истинным адресом командного центра, на который вредоносная программа загружала всю похищенную на зараженном сервере информацию.
Рис. 10. Алгоритм генерации имени командного сервера троянцем Linux.Sshdkit Командная система ботнетов
Как уже упоминалось ранее, некоторые боты, фактически совмещающие в себе функции бэкдоров, могут транслировать поступающие извне директивы встроенному командному интерпретатору операционной системы, другие используют собственный набор команд, при этом весь передаваемый в бот-сети трафик обычно шифруется.
Наиболее часто административный интерфейс управляющего сервера ботнета реализован в виде набора сценариев на языке PHP или с использованием другого скриптового языка, и в целом напоминает административный раздел стандартных систем управления контентом (CMS, Content Management Systems). Авторизовавшись на сервере, злоумышленник получает доступ к статистике ботнета — на специальной страничке, как правило, отображается общее количество установленных и активных ботов, перечень последних выполненных ботами команд, данные об успешности/провале завершения этих операций, в некоторых случаях (если ботнет связан с какой-либо «партнерской программой») — полученный злоумышленниками совокупный доход. В отдельном разделе «админки» киберпреступник может отдать ботам соответствующие команды, просто набрав их в специальной экранной форме.
Однако способ трансляции команд ботнету может значительно различаться в зависимости от используемого бот-сетью для передачи данных протокола. Все команды можно условно разделить на две категории:
директивы, общие для всего ботнета;
команды, отдаваемые отдельным подсетям или ботам.
В частности, практически все ботнеты поддерживают команду на загрузку с удаленного сервера и установку обновлений ботов, получение конфигурационных данных: спам-боты загружают в качестве таковых текст рассылаемых сообщений и адреса почтовых серверов для отсылки писем, предназначенные для выполнения веб-инжектов троянцы — встраиваемый в веб-страницы код и список узлов, при установке соединения с которыми осуществляется веб-инжект. Ботнеты, предназначенные для проведения массированных атак на отказ в обслуживании (DDoS-атак) могут получать команду на начало или окончание атаки определенного типа с использованием поддерживаемых вредоносной программой протоколов. Большинство современных DDoS-бот-сетей обладают возможностью осуществлять следующие виды атак.
SYN Flood — отсылка определенным образом сформированных пакетов на атакуемый узел до тех пор, пока тот не перестанет отвечать на запросы.
UDP Flood — бот устанавливает соединение с атакуемым сервером по протоколу UDP, после чего отправляет ему большое количество «мусорных» дейтограмм.