Доктор Веб исследовал многокомпонентного троянца для Linux

Доктор Веб исследовал многокомпонентного троянца для Linux

Доктор Веб исследовал многокомпонентного троянца для Linux

Вредоносные программы для операционных систем семейства Linux не столь распространены по сравнению с Windows-троянцами. Тем не менее они представляют серьезную угрозу для пользователей. Специалисты «Доктор Веб» исследовали сложного многокомпонентного троянца, способного заражать устройства под управлением Linux с различной аппаратной архитектурой.

Первые атаки с применением троянца, вошедшего в семейство Linux.LuaBot, специалисты «Доктор Веб» фиксировали еще в декабре 2016 года. Все представители семейства написаны на скриптовом языке Lua. Троянец непрерывно эволюционирует с ноября 2016 года, и новые версии Linux.LuaBot появляются с завидной регулярностью. Вредоносная программа Linux.LuaBot представляет собой набор из 31 Lua-сценария и двух дополнительных модулей, каждый из которых выполняет собственную функцию. Троянец способен заражать устройства с архитектурами Intel x86 (и Intel x86_64), MIPS, MIPSEL, Power PC, ARM, SPARC, SH4, M68k – иными словами, не только компьютеры, но и широчайший ассортимент роутеров, телевизионных приставок, сетевых хранилищ, IP-камер и других «умных» девайсов. При этом специалистам «Доктор Веб» не удалось обнаружить в «дикой природе» сборки троянца для архитектуры SPARC: заражающий устройства инфектор троянца умеет определять эту архитектуру, но реально существующих модулей для нее не выявлено.

Все входящие в состав Linux.LuaBot сценарии взаимосвязаны. Троянец генерирует список IP-адресов, которые будет атаковать, а затем пытается соединиться с удаленными устройствами по созданному списку и авторизоваться путем перебора логинов и паролей по словарю. Скрипты, с использованием которых осуществляется взлом сетевых узлов, умеют определять архитектуру атакуемого устройства и, кроме того, имеют специальный механизм для детектирования «ханипотов» (от англ. honeypot, «горшочек с медом») — серверов, играющих роль приманки для злоумышленников. С помощью «ханипотов» специалисты по информационной безопасности изучают методики атак и инструментарий злоумышленников. При этом атаки выполняются как по протоколу Telnet, так и посредством SSH — за работу с каждым из этих протоколов отвечает отдельный Lua-сценарий. Если получить доступ к устройству удалось, вредоносный скрипт устанавливает на него троянца Linux.LuaBot соответствующей архитектуры. В процессе атаки по протоколу Telnet на скомпрометированный узел сначала загружается небольшой модуль, который, запустившись, скачивает самого троянца, при атаке по протоколу SSH троянец загружается сразу.

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

Linux.LuaBot общается с управляющим сервером по протоколу HTTP, при этом вся передаваемая информация шифруется. Для поиска свежих конфигурационных файлов и модулей используется сеть P2P на основе протокола Bittorent DHT, такого же, который задействован в обычных торрент-сетях. За эту функцию отвечает еще один скрипт. При этом принимаемые и передаваемые сообщения проверяются на подлинность с помощью цифровой подписи. Если P2P-сеть недоступна, отдельный сценарий выполняет обновление Linux.LuaBot с помощью других зараженных узлов, закачивая свои файлы на скомпрометированные устройства по специальному запросу. Этот сценарий присутствовал только в ранних версиях троянца.

Опасность Linux.LuaBot для владельцев Linux-устройств заключается в том, что этот троянец фактически является бэкдором, то есть способен выполнять поступающие от злоумышленников команды. Кроме того, ранние версии этой вредоносной программы запускали на скомпрометированном устройстве прокси-сервер, который злоумышленники использовали для анонимизации своих действий в Интернете.

Контроллер памяти AMD научили обходить аппаратную изоляцию

Исследователь Кристофер Домас опубликовал PoC-проект skitter-creek-bath-salts, демонстрирующий обход аппаратной защиты памяти на процессорах AMD Family 16h. Техника манипулирует настройками контроллера DRAM и позволяет обращаться к областям, которые должны быть недоступны даже операционной системе, ядру и коду с привилегиями ring 0.

Обычно программные и аппаратные механизмы контролируют доступ по физическим адресам.

Но последнюю точку в маршруте ставит контроллер памяти: он переводит адрес в конкретные координаты DRAM — канал, ранг, банк, строку и столбец.

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

 

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

Для поиска адресов-двойников проект использует линейную алгебру и SMT-решатель Z3. Инструменты восстанавливают связь между обычным и изменённым отображением памяти, после чего вычисляют алиас для защищённой области.

Исследователь продемонстрировал потенциальный доступ к памяти AMD Platform Security Processor, включая данные fTPM, защищённой области System Management Mode, состояниям процессора C6 и хранилищу микрокода. Последний сценарий допускает не только извлечение копии патча, но и её возможное изменение перед восстановлением состояния ядра.

PoC проверяли только на AMD Family 16h. Данных об аналогичной уязвимости в новых AMD, Intel, ARM или RISC-V нет.

RSS: Новости на портале Anti-Malware.ru