Обзор о методах коммуникации ботнетов.
План:
Текст:
1)
2)Существует достаточное количество способов для поддержания связи с ботнетом.
У каждого способа
имеются свои плюсы и минусы. Конечно же, нет универсального. Рано или поздно, исследователи
доберутся до вашего url/командного центра и начнут "ломиться"(писать абузы и т.д) на сервер.
Разве что только есть методы, которые бы усложнили жизнь исследователям.
В данной статье я постараюсь как можно более подробно рассмотреть все пункты, а также привести
пример собственной реализации(в самом конце).
3)Технология "сервер-клиент".
В теле бота размещается url командного центра, в последствии с которым он связывается.
Для защищённости используется:
- Шифрование url.
- Шифрование траффика между сервером и клиентом.
- Работа с https протоколом.
Плюсы:
- Невозможно анализировать траффик.
- URL зашифрован.
Минусы:
- URL легко можно узнать, отреверсив сэмпл(зависит от навыков исследователя).
Usability: 80% public ботов используют данную технологию.
4)Технология "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
5)Технология "P2P".
P2P - децентрализованная сеть. В ней отсутствуют серверы, т.е каждый бот является одновременно и
клиентом и сервером.
Более подробно: http://ru.wikipedia.org/wiki/Одноранговая_сеть
Плюсы:
- В случае если, источник выдаёт лишь часть ip-адресов, то выявить весь ботнет исследователям
не предоставляется возможным.
Минусы:
- Требуются источники для получения списков ip-адресов.
Usability: из ранее встречавшихся, запомнились - Bredolab, TDL, Palevo.
6)Технология "генератор доменов".
В качестве отправной точки используется, к примеру, текущая дата и на её основе генерируется
доменное имя, к которому и подключается бот.
Плюсы:
- В любое время можно зарегистрировать доменное имя и продолжить управление.
Минусы:
- Большая активность запросов может быть обнаружена всякими эвристическими анализаторами.
Usability: из ранее встречавшихся, запомнились - TDL, Sinowal, Kido, Zeus, Storm.
7)Технология "скан ip диапазона".
Ботом сканируется заданная часть ip диапазона для нахождения командного центра.
Минусы:
- При обнаружении определённой активности, ip адрес сервера может быть легко выявлен.
8)Технология "солнышко".
Придумал я сам, возможно кто-то до меня уже дошёл до подобного, не суть!
Основной замысел данного метода заключается в том, что в боте изначально содержится список из
100~200 url, по которым он в случайном порядке отправляет/принимает информацию и только 1~N сайтов из этого списка явл-ся командными центрами.
url - в данном контексте, - это действующие/фейковые веб-сайты.
В случае, если связь с сервером односторонняя(т.е бот пересылает что-то и от сервера ответа не
ждёт), то установить адрес командного центра достаточно-таки сложно.
Если же связь с сервером двусторонняя, командный центр обнаружить также сложно.
Продемонстрирую это на примере:
- Сервер хочет выдать задание боту, т.е один url из списка начинает что-то выдавать(картинка,
html код, просто файл, либо список с новыми url адресами). Как вы уже успели понять, иссле-
дователь, благодаря мониторингу содержимого, выдаваемого списком URL может вычислить истин-
ный адрес, да не тут-то было!
А что, если в списке будут новостные порталы, блоги, с тоннами ротирующейся рекламы, счётч-
иков, баннерами, кто знает, возможно в этой рекламе находится зашифрованное сообщение,
легко идентифицируемое ботом.
Также небольшая иллюстрация на картинке:
Плюсы:
- Данная идея применительна не только к http протоколу, но и к jabber/icq/mra/etc.
- Практически стопроцентная недетектируемость, в комбинации с вышеперечисленными методами
даёт неубиваемый ботнет.
- Отпадают всяческие эвристические анализаторы: бот имитирует заходы на настоящие сайты, соб-
людая между заходами на сайт паузы.
- В списке можно запрятать несколько адресов командных центров.
Минусы:
- Метод требует обфускации алгоритма работы кода, чтобы исследователи не поняли с содержимым
какого url ведётся работа.
9)Технология "4-C"
Итак, опишу основные этапы данного метода:
- Бот парсит социальные сети(facebook, twitter, ...) на наличие в сообщениях изначально зада-
нных(зашитых) выражений(на английском или русском языках. не стоит использовать часто встреча-
емые предложения. достаточно 100-200 ключевых слов). Для того, чтобы сделать текст неприме-
чательным, желательно применить стеганографию или шифрование.
- При нахождении желаемой строки бот при помощи ЭЦП
проверяет принадлежность команды к владельцу ботнета(конечно будут и ложные срабатывания,
отнимающие время, но это не столь критично, если фраза редкая).
- Расшифровав сообщение от владельца, бот получает в своё распоряжение список из 100-200 URL
адресов и secure-строку(2-4 из них - это командные центры, остальные - просто ложные.
см. метод "солнышко"). Парсинг сообщений социальной сети - времязатратное занятие, поэтому
нам выгоднее перейти к непосредственной коммуникации C&C и бота.
- Бот определяет у себя наличие прямого ip. Далее отправляет подряд каждому URL информацию(system
version, ip, nat/no_nat, open_port, ...). C&C ждёт пока "прогрузится" вся сеть
(кол-во установок опустится ниже опр. значения).
- Теперь самое главное:
Боты с прямым ip при отправке информации открывают порт с socks5(авторизация с использованием
ЭП). C&C после замедления "прогрузки" составляет TRUSTED список ботов, через кот-
орых он распространяет остальным нужные данные.
НО, остаются ещё боты, не имеющие прямого ip. Для них C&C создаёт ещё одно сообщение в социа-
льной сети с secure-строкой(редковстречаемой, для быстрого нахождения) в котором содержится
список ботов в виде: IP:PORT. Боты подключаются к случайному и получают данные.
Для большей стабильности, боты с прямым IP иногда должны выдавать списки с другими ботами(это
нецелесообразно, т.к по сути раскрывает кол-во заражённых машин). В случае же если, все IP
окажутся недоступными, NAT бот лезет в социальную сеть за новой порцией URL адресов.
- Почему "4-c" ?
Это обьединение СС(социальная сеть) и C&C(command center).
- Зачем нам социальная сеть ?
Все мы прекрасно знаем как происходит падение/взлом/перехват C&C. Данный способ позволяет избе-
жать этого. К тому же, в любой момент времени ты сможешь создать сообщение в соц. сети и "реани-
мировать" старый ботнет.
- К чему нам метод "солнышко" ?
Регистрация доменов и покупка серверов - затратное дело. Данный способ гарантирует скрытность ваш-
его C&C.
- Открытый порт, списки ботов. По-моему, чем-то напоминает P2P ?
Да, действительно технологии схожи. Одно лишь их отличает: изначально в боте не содержится источ-
ник(C&C) для получения IP адресов.
- Сложновато, можно и попроще.
Нисколько, воплощение данного способа в жизнь - вопрос времени. А коль у вас есть идеи или крити-
ка - прошу к обсуждению.
Плюсы:
- Вместо социальной сети можно использовать: поисковую систему, блоги, форумы, порталы и т.п.
Минусы:
- Атакующий, узнав строку для поиска(зашитое выражение в боте), сможет создать множество записей, тем самым замедлив распространение ботнета.
10)Jabber vCard (author: waahoo)
11)Метод "Bitcoin".
Метод - медленный, может использоваться только для восстановления доступа к ботнет-сети.
Создаём два bitcoin кошелька и пополняем один из них на небольшую сумму.
I)Делаем bitcoin бота, который обрабатывает(не майнинг
) новые блоки на предмет транзакций от 1/2-го кошелька.
Вспомним, что можно отправлять сразу несколько переводов одной транзакцией, а само значение output дробится до восьмого знака после запятой.
Если транзакция есть, то бот берёт дробную часть output значения(сумма, которую мы посылаем 1/2-му кошельку) и декодирует её.
- Чтобы дело не было убыточным - созданы два кошелька.
- Почему именно URL шифруется в сумме транкзации?
Потому что сама система bitcoin не поддерживает создание комментариев к платежу.
II)Использовать сторонние сайты для поиска транзакций. Пример: blockexplorer.com
Плюсы:
- Кошельки не заблокировать(значит командный центр - вечный).
- Доступ к bitcoin узлам не заблокировать - их множество в мире.
- Не требуется проверка зашифрованной команды - доступ к кошелькам имеется только у хозяина.
Минусы:
- Медленная схема. Каждая транзакция(на момент написания слов) проходит в течение ~10минут.
Исследование bitcoin протокола: https://xss.pro/index.php?topic=24896
12)Tor network.
Используется сеть tor(open source) для скрытия адреса C&C.
Более подробно: https://www.torproject.org/docs/tor-hidden-service.html.en
Плюсы:
- Нет платы за доступ к сети.
- Вычислить настоящий адрес C&C сложно.
13)Это скорее не статья, а небольшой обзор.
Как всегда жду от вас конструктивных идей, предложений, критики.
"As always, respect goes 2 all dlab mem`s. Thanks 4 ur support." ©Choco
План:
1)Права, защищающие этот документ.
2)Пролог.
3)Сервер-клиент.
4)FastFlux.
5)P2P сеть.
6)Генератор доменов.
7)Cкан ip диапазона.
8)Метод солнышка.
9)Технология 4-C.
10)Jabber vCard.
11)Метод "Bitcoin".
12)Tor network.
13)Эпилог.
Текст:
1)
Во-первых данный документ носит лишь исследовательский характер и не является призывом к совершению
неправомерных поступков, нарушающих законодательство вашей страны!
Во-вторых незаконное копирование частей текста и любых других его составляющих карается законом
по защите авторских прав собственности!
Разрешено копирование на ваш ресурс, только с указанием автора текста, а также гиперссылки на
оригинальную тему.
2)Существует достаточное количество способов для поддержания связи с ботнетом.
У каждого способа
имеются свои плюсы и минусы. Конечно же, нет универсального. Рано или поздно, исследователи
доберутся до вашего url/командного центра и начнут "ломиться"(писать абузы и т.д) на сервер.
Разве что только есть методы, которые бы усложнили жизнь исследователям.
В данной статье я постараюсь как можно более подробно рассмотреть все пункты, а также привести
пример собственной реализации(в самом конце).
3)Технология "сервер-клиент".
В теле бота размещается url командного центра, в последствии с которым он связывается.
Для защищённости используется:
- Шифрование url.
- Шифрование траффика между сервером и клиентом.
- Работа с https протоколом.
Плюсы:
- Невозможно анализировать траффик.
- URL зашифрован.
Минусы:
- URL легко можно узнать, отреверсив сэмпл(зависит от навыков исследователя).
Usability: 80% public ботов используют данную технологию.
4)Технология "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
5)Технология "P2P".
P2P - децентрализованная сеть. В ней отсутствуют серверы, т.е каждый бот является одновременно и
клиентом и сервером.
Более подробно: http://ru.wikipedia.org/wiki/Одноранговая_сеть
Плюсы:
- В случае если, источник выдаёт лишь часть ip-адресов, то выявить весь ботнет исследователям
не предоставляется возможным.
Минусы:
- Требуются источники для получения списков ip-адресов.
Usability: из ранее встречавшихся, запомнились - Bredolab, TDL, Palevo.
6)Технология "генератор доменов".
В качестве отправной точки используется, к примеру, текущая дата и на её основе генерируется
доменное имя, к которому и подключается бот.
Плюсы:
- В любое время можно зарегистрировать доменное имя и продолжить управление.
Минусы:
- Большая активность запросов может быть обнаружена всякими эвристическими анализаторами.
Usability: из ранее встречавшихся, запомнились - TDL, Sinowal, Kido, Zeus, Storm.
7)Технология "скан ip диапазона".
Ботом сканируется заданная часть ip диапазона для нахождения командного центра.
Минусы:
- При обнаружении определённой активности, ip адрес сервера может быть легко выявлен.
8)Технология "солнышко".
Придумал я сам, возможно кто-то до меня уже дошёл до подобного, не суть!
Основной замысел данного метода заключается в том, что в боте изначально содержится список из
100~200 url, по которым он в случайном порядке отправляет/принимает информацию и только 1~N сайтов из этого списка явл-ся командными центрами.
url - в данном контексте, - это действующие/фейковые веб-сайты.
В случае, если связь с сервером односторонняя(т.е бот пересылает что-то и от сервера ответа не
ждёт), то установить адрес командного центра достаточно-таки сложно.
Если же связь с сервером двусторонняя, командный центр обнаружить также сложно.
Продемонстрирую это на примере:
- Сервер хочет выдать задание боту, т.е один url из списка начинает что-то выдавать(картинка,
html код, просто файл, либо список с новыми url адресами). Как вы уже успели понять, иссле-
дователь, благодаря мониторингу содержимого, выдаваемого списком URL может вычислить истин-
ный адрес, да не тут-то было!
А что, если в списке будут новостные порталы, блоги, с тоннами ротирующейся рекламы, счётч-
иков, баннерами, кто знает, возможно в этой рекламе находится зашифрованное сообщение,
легко идентифицируемое ботом.
Также небольшая иллюстрация на картинке:
Плюсы:
- Данная идея применительна не только к http протоколу, но и к jabber/icq/mra/etc.
- Практически стопроцентная недетектируемость, в комбинации с вышеперечисленными методами
даёт неубиваемый ботнет.
- Отпадают всяческие эвристические анализаторы: бот имитирует заходы на настоящие сайты, соб-
людая между заходами на сайт паузы.
- В списке можно запрятать несколько адресов командных центров.
Минусы:
- Метод требует обфускации алгоритма работы кода, чтобы исследователи не поняли с содержимым
какого url ведётся работа.
9)Технология "4-C"
Итак, опишу основные этапы данного метода:
- Бот парсит социальные сети(facebook, twitter, ...) на наличие в сообщениях изначально зада-
нных(зашитых) выражений(на английском или русском языках. не стоит использовать часто встреча-
емые предложения. достаточно 100-200 ключевых слов). Для того, чтобы сделать текст неприме-
чательным, желательно применить стеганографию или шифрование.
- При нахождении желаемой строки бот при помощи ЭЦП
проверяет принадлежность команды к владельцу ботнета(конечно будут и ложные срабатывания,
отнимающие время, но это не столь критично, если фраза редкая).
- Расшифровав сообщение от владельца, бот получает в своё распоряжение список из 100-200 URL
адресов и secure-строку(2-4 из них - это командные центры, остальные - просто ложные.
см. метод "солнышко"). Парсинг сообщений социальной сети - времязатратное занятие, поэтому
нам выгоднее перейти к непосредственной коммуникации C&C и бота.
- Бот определяет у себя наличие прямого ip. Далее отправляет подряд каждому URL информацию(system
version, ip, nat/no_nat, open_port, ...). C&C ждёт пока "прогрузится" вся сеть
(кол-во установок опустится ниже опр. значения).
- Теперь самое главное:
Боты с прямым ip при отправке информации открывают порт с socks5(авторизация с использованием
ЭП). C&C после замедления "прогрузки" составляет TRUSTED список ботов, через кот-
орых он распространяет остальным нужные данные.
НО, остаются ещё боты, не имеющие прямого ip. Для них C&C создаёт ещё одно сообщение в социа-
льной сети с secure-строкой(редковстречаемой, для быстрого нахождения) в котором содержится
список ботов в виде: IP:PORT. Боты подключаются к случайному и получают данные.
Для большей стабильности, боты с прямым IP иногда должны выдавать списки с другими ботами(это
нецелесообразно, т.к по сути раскрывает кол-во заражённых машин). В случае же если, все IP
окажутся недоступными, NAT бот лезет в социальную сеть за новой порцией URL адресов.
- Почему "4-c" ?
Это обьединение СС(социальная сеть) и C&C(command center).
- Зачем нам социальная сеть ?
Все мы прекрасно знаем как происходит падение/взлом/перехват C&C. Данный способ позволяет избе-
жать этого. К тому же, в любой момент времени ты сможешь создать сообщение в соц. сети и "реани-
мировать" старый ботнет.
- К чему нам метод "солнышко" ?
Регистрация доменов и покупка серверов - затратное дело. Данный способ гарантирует скрытность ваш-
его C&C.
- Открытый порт, списки ботов. По-моему, чем-то напоминает P2P ?
Да, действительно технологии схожи. Одно лишь их отличает: изначально в боте не содержится источ-
ник(C&C) для получения IP адресов.
- Сложновато, можно и попроще.
Нисколько, воплощение данного способа в жизнь - вопрос времени. А коль у вас есть идеи или крити-
ка - прошу к обсуждению.
Плюсы:
- Вместо социальной сети можно использовать: поисковую систему, блоги, форумы, порталы и т.п.
Минусы:
- Атакующий, узнав строку для поиска(зашитое выражение в боте), сможет создать множество записей, тем самым замедлив распространение ботнета.
10)Jabber vCard (author: waahoo)
11)Метод "Bitcoin".
Метод - медленный, может использоваться только для восстановления доступа к ботнет-сети.
Создаём два bitcoin кошелька и пополняем один из них на небольшую сумму.
I)Делаем bitcoin бота, который обрабатывает(не майнинг
Вспомним, что можно отправлять сразу несколько переводов одной транзакцией, а само значение output дробится до восьмого знака после запятой.
Если транзакция есть, то бот берёт дробную часть output значения(сумма, которую мы посылаем 1/2-му кошельку) и декодирует её.
- Чтобы дело не было убыточным - созданы два кошелька.
- Почему именно URL шифруется в сумме транкзации?
Потому что сама система bitcoin не поддерживает создание комментариев к платежу.
II)Использовать сторонние сайты для поиска транзакций. Пример: blockexplorer.com
Плюсы:
- Кошельки не заблокировать(значит командный центр - вечный).
- Доступ к bitcoin узлам не заблокировать - их множество в мире.
- Не требуется проверка зашифрованной команды - доступ к кошелькам имеется только у хозяина.
Минусы:
- Медленная схема. Каждая транзакция(на момент написания слов) проходит в течение ~10минут.
Исследование bitcoin протокола: https://xss.pro/index.php?topic=24896
12)Tor network.
Используется сеть tor(open source) для скрытия адреса C&C.
Более подробно: https://www.torproject.org/docs/tor-hidden-service.html.en
Плюсы:
- Нет платы за доступ к сети.
- Вычислить настоящий адрес C&C сложно.
13)Это скорее не статья, а небольшой обзор.
Как всегда жду от вас конструктивных идей, предложений, критики.
"As always, respect goes 2 all dlab mem`s. Thanks 4 ur support." ©Choco