Аналитики компании ESET рассказали об обнаружении UEFI-буткита, нацеленного на Linux-системы. Хотя пока вредонос Bootkitty скорее похож на proof-of-concept и работает лишь с некоторыми версиями Ubuntu, его появление свидетельствует о том, что злоумышленники начали вкладывать значительные ресурсы и время в разработку буткитов для Linux.
Bootkitty был найден на VirusTotal (файл bootkit.efi) в начале ноября 2024 года. Пока он относительно примитивен, по сравнению со своими собратьями для Windows, явно находится на ранней стадии разработки, эффективен только против некоторых конфигураций и версий Ubuntu, а в его ключевых функциях были обнаружены недостатки.
Из-за этого эксперты полагают, что новый буткит пока представляет собой proof-of-concept и не применяется для реальных атак.
Анализ Bootkitty показал, что он написан на C и успешно обходит проверку подписи ядра, подгружая вредоносные компоненты заранее, в процессе загрузки системы.
При работе Bootkitty опирается на самоподписанный сертификат, поэтому он не работает в системах с включенной защитой Secure Boot (в системах с Secure Boot уже должны быть установлены сертификаты злоумышленников) и в целом ориентирован только на некоторые дистрибутивы Ubuntu (с определенными версиями GRUB и ядра).
Кроме того, специалисты ESET отмечают, что малварь содержит множество неиспользуемых функций и плохо справляется с проверками версий ядра, что в итоге приводит к сбоям в работе всей системы, а Bootkitty «может дойти до точки, где он патчит совершенно случайный код».
Аналитики рассказывают, что во время загрузки Bootkitty эксплуатирует протоколы аутентификации UEFI (EFI_SECURITY2_ARCH_PROTOCOL и EFI_SECURITY_ARCH_PROTOCOL), чтобы обойти проверку целостности Secure Boot, что обеспечивает загрузку буткита независимо от политик безопасности.
Затем он использует различные функции GRUB (такие как start_image и grub_verifiers_open), чтобы манипулировать бутлоадером и проверками целостности бинарников, включая ядро Linux, и отключает проверку подписи.
После Bootkitty вмешивается в процесс распаковки ядра Linux и задействует функцию module_sig_check. В итоге она всегда сообщает об успешной проверке модулей ядра, что позволяет малвари беспрепятственно загружать вредоносные модули.
Кроме того, Bootkitty заменяет первую переменную окружения на LD_PRELOAD=/opt/injector.so, чтобы вредоносная библиотека сразу внедрялась в процессы при запуске системы.
Исследователи пришли к выводу, что Bootkitty — это очень модульное решение, хотя на текущей стадии разработки многие его компоненты отсутствуют. То есть со временем он может получить куда больше возможностей.
Пользователь, загрузивший Bootkitty на VirusTotal, также загрузил неподписанный модуль ядра под названием BCDropper, однако пока точную связь между этими загрузками обнаружить не удалось.
Сообщается, что BCDropper загружает ELF-файл под названием BCObserver, представляющий собой модуль ядра с функциями руткита, который скрывает файлы, процессы и открывает конкретные порты в зараженной системе.
При этом отчет ESET гласит, что исследователи нашли в коде неоднократные упоминания BlackCat — как в начальных строках, выводимых при выполнении («Developed by BlackCat»), так и в различных местах загружаемого модуля ядра (вышеупомянутого дроппера). Это все же позволяет предположить, что модуль ядра и сам Bootkitty были разработаны одними и теми же людьми.
Однако, по мнению исследователей, это еще не говорит о возможной связи Bootkitty и бывших разработчиков вымогательской малвари BlackCat (ALPHV).
«Независимо от того, является Bootkitty proof-of-concept или нет, он представляет собой интересное развитие в области UEFI-угроз, разрушая представления о том, что современные UEFI-буткиты – это угрозы исключительно для Windows, — заключают в ESET. — Хотя на данный момент версия Bootkitty с VirusTotal не представляет реальной угрозы для большинства Linux-систем, она подчеркивает необходимость готовности к потенциальным угрозам в будущем».
Индикаторы компрометации, связанные с Bootkitty, уже загружены на GitHub.