Гигантские ботнеты и реальность
Часто в разных СМИ и даже в презентациях на популярных конференциях можно услышать про ботнеты, насчитывающие миллионы компьютеров. (Например, на РИФе называли кто 30 млн, кто 50 млн – в общем, получается, кто больше.)
Похоже, проблема тут вот в чём: благодаря резко возросшей вычислительной мощности миллион уже кажется не таким большим числом. Интересно, оставив в стороне степень достоверности оценок численности ботнетов (как там генерят эти стат. данные? кто знает, кто знает…), прикинуть, как может жить ботнет из миллиона компьютеров. Прикинуть можно на примере элементарных действий для такого ботнета.
Итак, если узлы ботнета-миллионника в течение суток придут равномерным потоком в центр за новыми указаниями, то это будет – около 12 запросов в секунду, минимум. Нужно брать место в дата-центре или арендовать мощности в сервисах типа Amazon EC. А для того, чтобы боты приходили в центр равномерно – должен быть реализован очень хитрый алгоритм распределения нагрузки.
Если узлы ботнета-миллионника обмениваются данными внутри и каждый перешлёт десяти другим один килобайт, то – трафик составит около 10 Гб. То есть, это такиой примерный трафик, который должен пройти по сетям, если ботнет обновляется по правильной технологии разновидности P2P. В зависимости от топологии размещения узлов ботнета и частоты обмена пакетами такой трафик может быть хорошо заметен в статистике интернет-провайдеров. Хотя, конечно, не является заметным в масштабах Интернета. Продолжим про трафик и вычислим 10 гигабайт другим способом: если для заражения одного компьютера требуется разовая пересылка кода червя, а этот код занимает 10 килобайт (сейчас “черви длинные”), то опять будут потрачены те же 10 Гб, состоящие только из данных программного кода. И никто из антивирусных компаний, выходит, не смог ничего выудить?
Инвертируем 12 запросов в секунду, упоминавшиеся двумя абзацами выше: если черви, формирующие этот ботнет, рассаживались на новый компьютер раз в секунду, то для набора миллиона потребуется около 12 суток. Предположим, что заражение проходило, например, в течение полугода, хорошо. Как всё это время координировалось управление растущим ботнетом? Вероятно, для такого устойчивого роста нужна какая-то собственная ICANN внутри ботнета.
И это только теоретический устойчивый ботнет с числом узлов в миллион. Понятно, что для 30 млн – ситуация принципиально иная: рост сложности управления в подобных случаях не линеен.
Насколько можно преуспеть в реальности, показывает опыт добровольных сетей распределённых вычислений. Даже учитывая полное доверие и желание сотрудничать со стороны участников – сетей-миллионников здесь практически нет, и все те, которые есть, растут из старых, годами хорошо раскручиваемых, проектов, например, SETI@Home. Но в большинстве случаев, хороший результат – сотня тысяч участников.
Адрес записки: https://dxdt.ru/2011/04/27/3657/
Похожие записки:
- Форматы записи TLS-сертификатов
- YaGPT2 про коридоры Штирлица
- ИИ с превышением
- Техническое: опция, отклоняющая TLS-соединение в Nginx
- Сервис для просмотра логов Certificate Transparency
- Статья о технологии Encrypted Client Hello
- Кибератаки, самоуправляемые автомобили и бот в смартфоне
- Наложенные сети Chrome для размещения сервисов
- Представления о квантах и радиостанции
- Возможное обновление алгоритмов DNSSEC в корне DNS
- Утечки данных YubiKey/Infineon
Комментарии читателей блога: 5
1. 27th April 2011, 20:57 // Читатель gene написал:
Добровольные сети будут расти медленнее не только из-за сложности управления. Фактор, который отсутсвует в сетях созданных с помощью вирусов/троянов мешает расти так же быстро и сильно @home сетям. Кстати, интересную статистику можно выудить на ed2k серверах. Там бывают показатели больше миллиона, а сереверов таких в списке пара сотен. От тысячи до миллиона пользователей на каждом. Можно уже делать выводы.
2. 27th April 2011, 21:33 // Читатель зашел в гости написал:
ВСЕ узлы не должны приходить на центральный сервер. Часть из них может быть “ретрансляторами” команд, и отдельные узлы будут обращаться к ним. Если ботнет построен с умом, иерархически, то центральным сервером легко может быть среднестатистический домашний компьютер.
Заражение в течение долгого времени тоже вполне реально. Внедренные программы могут активизироваться лишь по команде из центра, и управлять ими до этого момента нет необходимости.
Затем, скачивание полнометражных фильмов из сети уже никого не удивляет. В этом потоке информации что такое 10 килобайт?
3. 27th April 2011, 21:36 // Читатель mad написал:
12 запросов/сек — это очень мало, такой поток эффективно обработает даже небольшой vps.
4. 28th April 2011, 00:58 // Читатель Vlad написал:
Таки не понял, что такого трудного в миллионе машин.
Никакого “очень хитрого алгоритма распределения нагрузки” не надо — при таком количестве хостов достаточно случайной задержки внутри окна в одни сутки. Получится более-менее ровно.
12 TPS? Вернуть статический файлик с командами? Старенький апач на бюджетном железе справится.
10Г? Опять же, бюджетные VPS и dedicated дают и больше в месяц.
Как управлять? И почему антивирусные компании “не заметили”? Заметили, почему не заметили? Чистят от червей. И “командные центры” переодически закрывают. Только вот авторы ботнетов — не дураки. Напомню, как рулят ботнетами:
Некоторое время назад антивирусники через суд перехватили управление командным центром одного из ботнетов. Команды “убить себя” боты, однако, не знали, потому антивирусники успокоились тем, что ботнет стал неактивным (не предпринимал новых атак). До поры, до времени.
Как выяснилось при анализе кода, боты не привязаны к какому-то одному командному центру. Они, на самом деле, периодически (по заданному закону от даты) генерируют список хостов, которые они проверяют на “а не коммандный центр ли ты?”. Имена хостов выглядят как полная околесица, типа, tertejthje.4k45lkkl54k.com. То есть не только скорее всего свободные (то есть автор может зарегистрить их в любой момент), но и в доменах второго уровня (безопасники считают — чтобы проще скрыть регистранта).
Далее бот пингует этот хост с затравкой. Хост должен закриптовать затравку приватным ключом хозяина ботнета. Если это произошло, бот считает, что командный центр сейчас под управлением хозяина, и начинает его слушаться. Через какое-то время бот повторит авторизацию (видимо, все боты в узком промежутке времени, чтобы не компрометировать ключ надолго хранением на хостинге), и если ответ не получен — начинает поиск по новой.
В общем, антивирусники встали перед проблемой — или регистрить все проверяемые хосты каждый день (это на одних регистрациях разориться можно), или плюнуть, и дать хозяину перехвать контроль обратно. Вот, к сожалению, не знаю, чем там кончилось.
Да, хозяин и/или автор бота, судя по комментариям и операциям — из России. Чисто технически я этим фактом горжусь.
5. 28th April 2011, 12:25 // Читатель sarin написал:
сдаётся мне, что при правильном проектировании архитектуры управление ботнетом из ста, ста тысяч и ста миллионов компьютеров не должно отличаться технически. возможно будет увеличиваться время прохождения команд до всех узлов ботнета, но и то не факт.
процесс заражения червём лучше растянуть во времени на несколько месяцев.
гигантские же ботнеты могли строиться годами. улучшаться, оптимизироваться… одни ботнеты могут обслуживаться другими, могут строиться на основе предыдущих версий, объединяться и разделяться.
люди которые их делают совсем не дураки.