После публикации исходных кодов трояна Mirai специалисты компании Rapidity Networks решили изучить как саму малварь, так и понаблюдать, что будут делать с исходниками IoT-вредоноса другие хакеры. Специалисты запустили ряд серверов-приманок по всему миру и принялись собирать данные.
Вскоре исследователи с удивлением поняли, что наблюдают совсем не Mirai. 5 октября 2016 года был обнаружен вредонос Hajime – червь, который на первый взгляд очень походил на Mirai, но более детальное изучение показало, что эту угроза значительно серьёзнее.
Если Mirai по-японски значит «будущее», то Hajime означает «начало».
Исследователи пишут (PDF), что Hajime использует механизм заражения, поделенный на три этапа. Кроме того, угроза недаром названа червем: Hajime умеет размножаться самостоятельно. Сначала червь атакует 23 порт, пытаясь брутфорсом подобрать логин и пароль к системе. Наиболее распространенные сочетания учетных данных жестко закодированы в коде Hajime, Если 23 порт закрыт, или атака не удается, малварь оставляет попытки и переходит к следующему IP-адресу. Если же брутфорс прошел успешно, червь выполняет на устройстве следующие команды:
enable system shell sh /bin/busybox ECCHI
Таким образом вредонос определяет, что он точно попал в Linux-систему. Согласно данным Rapidity Networks, малварь атакует платформы ARMv5, ARMv7, Intel x86-64, MIPS и little-endian, то есть масштабы его деятельности значительно шире, чем у похожих IoT-угроз.
После Hajime переходит к следующей стадии атаки. Он скачивает 484-байтный ELF-файл и запускает его, тем самым открывая соединение с сервером атакующих. С сервера малварь получает новый бинарник и также его выполняет. На следующей стадии атаки данный файл используется для установления соединения с PSP-сетью с применением протокола DHT. Посредством P2P, используя DHT и uTP, вредонос загружает другие пейлоуды.
Исследователи отмечают, что Hajime похож сразу на несколько других угроз. Так, червь использует P2P, как и троян Rex; он имеет списки комбинаций логинов и паролей для брутфорса случайных IP-адресов и распространяется самостоятельно, как Miari; а также использует механизм заражения, состоящий из нескольких стадий, подобно NyaDrop. При этом Hajime написан на C, а не на Go, как Rex. Он использует P2P, а не работает с управляющими серверами напрямую, как Mirai. К тому же вредонос опасен для множества разных платформ, тогда как NyaDrop атакует лишь девайсы на архитектуре MIPS.
Судя по жестко закодированным в коде Hajime учетным данным, червь атакует камеры видеонаблюдения, роутеры и DVR-системы. Если точнее, малварь представляет угрозу для устройств компаний Dahua Technologies и ZTE Corporation, а также для оборудования ряда других фирм, которые выпускают продукты (в основном DVR-системы), в результате white-label партнерства с компанией XiongMai Technologies.
Специалисты Rapidity Networks предполагают, что автор Hajime, скорее всего, европеец, который начал разработку вредоноса еще в 2013 году, хотя «релиз» червя состоялся лишь в сентябре 2016 года.
«Хотя Hajime и Mirai оба используют схожую тактику для распространения на новые хосты, на самом деле, логика сканирования и размножения, судя по всему, была позаимствована ими у qBot. Если мы верно вычислили дату первого запуска Hajime, [Пнд, 26 Сен 2016 08:41:54 GMT], это произошло через пару дней после публикации исходных кодов Mirai. Тем не менее, крайне маловероятно, что Hajime содержит какой-либо код Mirai», — добавляют исследователи.
Пользователь Хабра под ником virtual-anvil обнаружил опасную ошибку в Telegram Desktop для Windows: мессенджер рекурсивно очищал папку C:\custom, где хранились программы, проекты и другие данные общим объёмом около 800 ГБ.
Сначала перестали запускаться приложения — их EXE-файлы просто исчезли. Папки оставались, а содержимое постепенно растворялось.
Проверка через Process Monitor показала, что Telegram самостоятельно открывал C:\custom, обходил вложенные каталоги и запрашивал права на удаление файлов.
Причиной оказалась не вредонос и даже не апдейтер, решивший выйти из-под контроля, а библиотека проверки орфографии lib_spellcheck. Telegram хранит добавленные пользователем слова в файле custom. После изменений в версии 7.1.0 Windows-код начал обращаться к этому словарю, но путь к рабочей папке оставался пустым.
К пустой строке добавлялось /custom, а Qt превращал её в C:\custom. Код ожидал увидеть служебный файл, находил вместо него каталог и запускал removeRecursively(), методично удаляя всё доступное.
Ошибка затронула Telegram Desktop 7.1.0 и 7.1.1 для Windows со встроенной проверкой орфографии. Версии находились в распространении около 66 часов. На Linux и macOS такую цепочку не обнаружили.
Пользователь передал разработчикам логи и открыл тикет № 31170. Ошибку подтвердили и исправили: путь теперь задаётся до выхода из функции, а библиотеке запретили работать со словарём при пустом адресе. Патч вошёл в Telegram Desktop 7.1.2.
Владельцам версий 7.1.0 и 7.1.1 на Windows стоит немедленно обновиться.
Свидетельство о регистрации СМИ ЭЛ № ФС 77 - 68398, выдано федеральной службой по надзору в сфере связи, информационных технологий и массовых коммуникаций (Роскомнадзор) 27.01.2017 Разрешается частичное использование материалов на других сайтах при наличии ссылки на источник. Использование материалов сайта с полной копией оригинала допускается только с письменного разрешения администрации.