Обзор о методах коммуникации ботнетов.

hackdays

Участник
Подтвержденный
Регистрация
27.08.13
Сообщения
103
Реакции
103
Депозит
0
Покупок
1
Продаж
1
Данный документ носит лишь исследовательский характер и не является призывом к совершению
неправомерных поступков, нарушающих законодательство вашей страны!


Существует достаточное количество способов для поддержания связи с ботнетом.
У каждого способа
имеются свои плюсы и минусы. Конечно же, нет универсального. Рано или поздно, исследователи
доберутся до вашего url/командного центра и начнут "ломиться"(писать абузы и т.д) на сервер.

Разве что только есть методы, которые бы усложнили жизнь исследователям.
В данной статье я постараюсь как можно более подробно рассмотреть все пункты, а также привести
пример собственной реализации(в самом конце).


Технология "сервер-клиент".
В теле бота размещается url командного центра, в последствии с которым он связывается.

Для защищённости используется:
- Шифрование url.
- Шифрование траффика между сервером и клиентом.
- Работа с https протоколом.

Плюсы:
- Невозможно анализировать траффик.
- URL зашифрован.

Минусы:
- URL легко можно узнать, отреверсив сэмпл(зависит от навыков исследователя).

Usability: 80% public ботов используют данную технологию.


Технология "FastFlux".
FastFlux используется в основном для скрытия основных управляющих серверов. Основная идея данного
метода заключается в том, что множество IP-адресов может быть связано лишь с одним доменом. Это
достигается за счёт смены DNS записей у домена.
Более подробно: http://www.honeynet.org/node/132
http://www.honeynet.org/node/138

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

Usability: используется в основном в проектах с большим бюджетом(и соотв. окупаемостью), а также
техническими возможностями.
Proof: securelist.com/ru/analysis/208050533/Ekonomika_botnetov


Технология "P2P".
P2P - децентрализованная сеть. В ней отсутствуют серверы, т.е каждый бот является одновременно и
клиентом и сервером.
Более подробно: http://ru.wikipedia.org/wiki/Одноранговая_сеть

Плюсы:
- В случае если, источник выдаёт лишь часть ip-адресов, то выявить весь ботнет исследователям
не предоставляется возможным.

Минусы:
- Требуются источники для получения списков ip-адресов.

Usability: из ранее встречавшихся, запомнились - Bredolab, TDL, Palevo.


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

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

Минусы:
- Исследователи могут отреверсить сам алгоритм генерации и накупить доменов наперёд.
- Даже если всевозможные комбинации доменов были уже зарегистрированы хозяином ботнета, это
не спасёт от реверсинга самого алгоритма.
- Большая активность запросов может быть обнаружена всякими эвристическими анализаторами.

Usability: из ранее встречавшихся, запомнились - TDL, Sinowal, Kido, Zeus, Storm.


Технология "скан ip диапазона".
Ботом сканируется заданная часть ip диапазона для нахождения командного центра.

Минусы:
- При обнаружении определённой активности, ip адрес сервера может быть легко выявлен.


Технология "солнышко".
Придумал я сам, возможно кто-то до меня уже дошёл до подобного, не суть!
Основной замысел данного метода заключается в том, что в боте изначально содержится список из
100~200 url, по которым он в случайном порядке отправляет/принимает информацию и только 1~N сайтов из этого списка явл-ся командными центрами.
url - в данном контексте, - это действующие/фейковые веб-сайты.

В случае, если связь с сервером односторонняя(т.е бот пересылает что-то и от сервера ответа не
ждёт), то установить адрес командного центра достаточно-таки сложно.

Если же связь с сервером двусторонняя, командный центр обнаружить также сложно.

Продемонстрирую это на примере:
- Сервер хочет выдать задание боту, т.е один url из списка начинает что-то выдавать(картинка,
html код, просто файл, либо список с новыми url адресами). Как вы уже успели понять, иссле-
дователь, благодаря мониторингу содержимого, выдаваемого списком URL может вычислить истин-
ный адрес, да не тут-то было!

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



Плюсы:
- Данная идея применительна не только к http протоколу, но и к jabber/icq/mra/etc.

- Практически стопроцентная недетектируемость, в комбинации с вышеперечисленными методами
даёт неубиваемый ботнет.

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

Минусы:
- Метод требует обфускации алгоритма работы кода, чтобы исследователи не поняли с содержимым
какого url ведётся работа.

Это не статья, а небольшой обзор.
 
Сверху Снизу