Содержание статьи
Как только не изворачиваются злоумышленники, чтобы скрытно передавать данные между малварью и командным центром (C&C, или, как их теперь модно называть на военный лад, C2). Сторонние сервисы здесь зачастую представляются самым удобным вариантом. В ход идут твиты, коммиты на GitHub или отдельные репозитории; даже комменты к видео на YouTube могут оказаться тайными посланиями между машинами. Использование таких сервисов открывает для оператора ботнета новые возможности. В частности, он может не беспокоиться о смене адресов управляющих серверов — достаточно просто оставить твит, в приложенной к которому картинке будет содержаться актуальная информация.
У одностороннего канала связи есть свои недостатки. Во-первых, такого бота легче выявить по образцу трафика. Во-вторых, аккаунт на сервисе могут заблокировать или он может попасть в поле зрения исследователей. Это сильно затруднит дальнейшие операции.
Создание безопасного двустороннего канала связи с использованием сторонних сервисов — задача нетривиальная. Если не прибегать к каким-либо хакам, то все, что можно предпринять в таком случае, — это раздать ботам учетные данные, которые те будут использовать для связи с командным сервером. То есть построить что-то вроде такой схемы.

Этот вариант накладывает целый ряд ограничений на проводимые операции. Так, необходимо обеспечить боту возможность оперативно обновлять учетные данные от сервиса, если старые заблокируют. Это не так сложно организовать с помощью одностороннего канала связи. Но проблема выходит на новый уровень, когда число ботов начинает расти. Большое количество запросов с разных IP к одному аккаунту будет как минимум подозрительным. Можно попытаться замести следы, реализовав систему распространения учетных записей среди ботов — чтобы они передавали их друг другу. Это значительно сложнее и создает дополнительные статьи расходов для киберкриминального бизнеса.
Но что, если поискать возможность обходиться без учетных записей? В таком случае из диаграммы выше можно было бы убрать все, что связано с логинами и паролями. И это приводит нас к анонимным сервисам.
Анонимные сервисы вопросов и ответов
Один из привлекательных вариантов — использовать сервисы анонимных вопросов и ответов типа Ask.fm, Sprashivai.ru и прочих. Вот почему они так хорошо годятся:
- они работают по HTTP и как минимум поддерживают HTTPS;
- адреса сервисов анонимных вопросов и ответов известны вендорам security-решений и присутствуют в белых списках модулей Application Control & URL Filtering;
- разработчикам таких сервисов не интересна безопасность собственных решений, а техподдержка пассивна.
С первыми двумя пунктами все понятно. HTTP практически везде разрешен, а HTTPS позволит еще и замаскировать обращения к сервису. Что касается Application Control и всего такого, то как минимум трафик от ботов будет считаться «развлекательным». Это скорее создаст проблемы для сотрудника, на компьютере которого работает бот, чем реально приведет к раскрытию.
В последнем пункте мне довелось убедиться лично. В феврале 2017 года я отправил сотрудникам техподдержки сервиса Sprashivai.ru информацию о том, что их защита от спама не работает, а предпринятые после слива меры безопасности эту самую безопасность подрывают. Для меня не стало неожиданностью то, что они полностью проигнорировали мой репорт. Не думаю, что ситуация с другими сервисами кардинально отличается.
Как именно реализуется двусторонний канал связи на основе таких сервисов? Эту задачу можно разбить на два этапа:
- Формирование устойчивого канала связи для передачи данных в направлении от бота к оператору.
- Формирование канала связи для передачи данных от оператора к ботам.
Начнем по порядку.
Канал связи «оператор — бот»
На этом этапе ничего особенно сложного. Большая часть малвари, которая использует какие-либо сервисы для обеспечения одностороннего канала связи, работает именно по этой схеме. В контексте сервисов вопросов и ответов это реализуется, например, следующим образом:
- оператор «отвечает» на вопрос и прикладывает к ответу изображение, содержащее в закодированной форме команды для ботов;
- бот проверяет, не появились ли новые данные в используемом оператором аккаунте, и выполняет необходимые действия.
Здесь есть несколько интересных моментов. Когда-нибудь малварь будет обнаружена, и используемый аккаунт раскроют и заблокируют, как бы его ни защищал оператор. Поэтому в таких случаях прибегают к механизмам автоматического создания учетных записей — эти механизмы уже хорошо отработаны авторами вредоносного ПО и используются для создания доменных имен.
Это приводит разработчика вредоноса к следующей проблеме: чтобы автоматизировать регистрацию аккаунтов (да и авторизации тоже), скорее всего, потребуется найти метод обхода капчи. Рассмотрим эти методы на примерах выбранных нами сервисов.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»