Mirai: исходники ботнета опубликованы, дефолтные пароли на Telnet делают своё дело
В сентябре 2016-го исходный код Mirai выложен публично. Изучаем, как ботнет ломает IoT через Telnet, и сканируем периметр клиентов на уязвимые устройства.
Исходный код ботнета Mirai опубликован в сентябре 2016 года; ботнет из IoT-устройств собирается в крупнейшие DDoS-сети
На прошлой неделе пользователь с ником Anna_Senpai выложил на hackforums.net исходный код ботнета Mirai. Зачем - объяснил примерно так: хватит, пора на покой, берите и пользуйтесь. Нетривиальное прощание с индустрией. Нас этот момент заинтересовал не столько с криминальной точки зрения, сколько с технической: что именно там внутри и насколько это касается наших клиентов.
Как Mirai вообще работает
Исходники оказались достаточно читаемыми, чтобы разобраться без особых усилий. Схема простая до неприличия.
Бот сканирует рандомные диапазоны IPv4-адресов на открытый Telnet - порты 23 и 2323. Найдя отвечающее устройство, пробует залогиниться по списку из примерно 60 пар логин/пароль. Список - это галерея позора: admin/admin, root/root, admin/1234, root/xc3511, admin/pass, root/vizxv и так далее. Большинство пар - заводские учётные данные конкретных производителей IP-камер и роутеров, в основном дешёвых китайских, которые продаются миллионами под десятками торговых марок с одной и той же прошивкой.
Если логин прошёл - устройство докладывает на C&C-сервер, получает дополнительные модули и становится частью ботнета. C&C потом командует, кого и как атаковать: UDP flood, SYN flood, HTTP flood, GRE flood - набор стандартный, но объём трафика нестандартный, потому что устройств в ботнете уже, по разным оценкам, сотни тысяч.
Что Mirai не делает - не трогает x86-серверы и рабочие станции. Только ARM и MIPS, только IoT. Шифрование C&C-трафика есть, таблица строк в памяти XOR-обфусцирована - не rocket science, но аналитикам чуть веселее.
Почему опубликованные исходники - это хуже, чем закрытый ботнет
Пока код был у одной группы, масштаб атак ограничивался её возможностями и аппетитами. После публикации любой желающий может поднять собственный C&C, пройтись по диапазонам адресов и набрать своих зомби-камер. Порог входа упал до «умеет запустить gcc и настроить MySQL».
Это означает, что в ближайшее время количество активных Mirai-подобных ботнетов вырастет, причём непредсказуемо. Атаки, которые мы видели этим летом - отдельные случаи с измеримыми объёмами, - могут стать фоновым шумом с пиками, которые сложно атрибутировать.
Что мы делаем для клиентов
Две недели назад мы писали про инвентаризацию IoT в корпоративных сетях - тогда это была профилактика. Сейчас - уже скорее первая помощь.
После появления исходников мы добавили в стандартный аудит периметра несколько конкретных проверок.
Сканирование Telnet наружу и внутрь периметра. Telnet на внешнем IP - это практически приглашение в ботнет. Внутри сети тоже интересно: камеры, принтеры, роутеры с открытым Telnet в корпоративном сегменте - потенциальные точки бокового движения. Для сканирования используем nmap с детекцией сервисов, список портов расширен на 2323.
Проверка по списку паролей Mirai. Берём те самые 60 пар из исходников и прогоняем по найденным Telnet-хостам в рамках согласованного пентеста. Не для того чтобы ломать - для того чтобы показать клиенту список его устройств, которые Mirai сломает автоматически за секунды.
Проверка наличия обновлений прошивок. Это самый болезненный пункт. У части производителей обновления прошивок вообще не предусмотрены как механизм - камера продана и всё. У части - обновления есть, но автоматического получения нет, нужно идти на сайт вендора и вручную скачивать и прошивать каждое устройство. На практике этого никто не делает. Мы не чиним эту проблему в рамках аудита - мы её документируем и выносим как риск с конкретным перечнем устройств.
Что находим
Картина примерно та, что и ожидалась. В нескольких проверенных за последние дни инфраструктурах нашли:
- Камеры видеонаблюдения с открытым Telnet и заводскими учётными данными, которые входят в список Mirai. Устройства - OEM под разными брендами, но прошивка одна, уязвимость одна.
- Роутеры на периметре с Telnet, который никто не отключал, потому что «так было при установке».
- Сетевые принтеры - Telnet там реже, но встречается, особенно в старых моделях.
Ни у одного клиента не оказалось процедуры обновления прошивок для IoT-устройств. Это не удивительно - такой процедуры нет нигде, если только кто-то явно не позаботился. Устройства куплены, настроены, забыты.
Что с этим делать прямо сейчас
Три действия, которые снижают риск без долгих согласований:
- Закрыть Telnet на пограничном firewall - и наружу, и для IoT-сегмента внутрь. Большинство камер и роутеров нормально живут без Telnet-доступа снаружи; управление через веб-интерфейс или SSH достаточно.
- Сменить дефолтные пароли на всех IoT-устройствах, где это физически возможно. Да, некоторые камеры не позволяют. Те, что позволяют, - сменить обязательно.
- Изолировать IoT в отдельный VLAN без доступа к серверному сегменту - если этого ещё не сделано. Скомпрометированная камера в изолированном VLAN участвует в DDoS чужих ресурсов, но не видит ваши сервера. Неприятно, но значительно лучше альтернативы.
Что Mirai дальше натворит - пока видим только первые атаки и публикацию кода. Масштаб будет понятен по мере того, как новые операторы поднимут своих ботов. Но механика уже ясна - и ясно, что защита не требует ничего экзотического: просто закрытые порты, несерийные пароли и изоляция.