The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выявлен UEFI-буткит Bootkitty, подставляющий вредоносный код в загружаемое ядро Linux

30.11.2024 23:01

Исследователи из компании ESET выявили новый буткит "Bootkitty", устанавливаемый после взлома системы вместо загрузчика GRUB и применяемый для подстановки в ядро Linux вредоносных компонентов, которые затем позволяют атакующему скрыто контролировать систему и выполнять в ней свои действия. Утверждается, что это первый UEFI-буткит, нацеленный на поражение систем Linux.

Bootkitty размещается в файле grubx64.efi в системном разделе EFI (EFI system partition, /boot/efi/EFI/ubuntu) вместо штатного загрузчика GRUB. После активации UEFI-прошивкой буткит загружает в память реальный загрузчик GRUB2 и вносит в размещённый в памяти код GRUB2 изменения, отключающие проверку целостности компонентов, загружаемых в дальнейшем, а также добавляет обработчик, вызываемый после распаковки образа ядра Linux в память. Указанный обработчик вносит изменения в загруженные в память функции ядра (отключает проверку модулей по цифровой подписи), а также изменяет строку запуска процесса инициализации с "/init" на "LD_PRELOAD=/opt/injector.so /init)".

Библиотека injector.so перехватывает некоторые операции SELinux и функцию init_module, которая затем используется для загрузки модуля ядра /opt/dropper.ko. Модуль ядра dropper.ko создаёт и запускает исполняемый файл /opt/observer, затем скрывает себя в списке модулей ядра и выставляет обработчики системных вызовов, таких как getdents и tcp4_seq_show, для скрытия файла /opt/observer и определённого сетевого трафика. Исполняемый файл /opt/observer загружает модуль ядра /opt/rootkit_loader.ko, который является загрузчиком руткита /opt/rootkit.

Для установки буткита требуется привилегированный доступ к системе и обычно подобные виды вредоносного ПО используются атакующими после успешного взлома или компрометации системы для закрепления своего дальнейшего присутствия и скрытия осуществляемой вредоносной активности. Библиотека injector.so и вредоносные модули ядра помещаются в образ начального RAM-диска или файловую систему атакующим. Загрузчик grubx64.efi размещается в раздел с файлами для UEFI.

В варианте Bootkitty, попавшем в руки исследователей, модификация функций в памяти ядра производилась по заранее определённым смещениям без проверки корректности этих смещений для загруженной версии ядра. Используемые в Bootkitty смещения были применимы лишь к версиям ядра и GRUB, поставляемым в определённых выпусках Ubuntu, а в остальных системах приводили к сбою при загрузке. Для верификации загрузчика Bootkitty (grubx64.efi) использовался самоподписанный сертификат, что не позволяло применять буткит на системах с включённым режимом UEFI Secure Boot без установки сертификата атакующего в список заслуживающих доверия сертификатов в UEFI. Подобные особенности натолкнули исследователей на мысль, что Bootkitty лишь прототип буткита, пока не применяемый для реальных атак.

Изучив опубликованную ESET информацию, исследователи из компании Binarly REsearch заметили среди связанных с Bootkitty артефактов BMP-изображения, используемые для эксплуатации уязвимости LogoFAIL, позволяющей выполнить код на уровне UEFI-прошивки и обойти механизм UEFI Secure Boot. В контексте Bootkitty эксплуатация уязвимости LogoFAIL применялась для добавления в список одобренных сертификатов UEFI самоподписанного сертификата атакующего, которым заверен загрузчик буткита grubx64.efi, что позволяло запустить буткит на системах c активным UEFI Secure Boot без добавления сертификата вручную.

Атака осуществляется через размещение в разделе ESP (EFI System Partition) специально оформленного изображения в формате BMP для его вывода UEFI-прошивкой в качестве логотипа производителя. Из-за использования в UEFI-прошивках уязвимых библиотек для работы с изображениями, обработка специально оформленного изображения может привести к переполнению буфера и выполнению кода с привилегиями прошивки UEFI. Уязвимость LogoFAIL была выявлена год назад и затрагивала UEFI-прошивки, среди прочего используемые на ноутбуках Acer, HP, Fujitsu и Lenovo. В новых версиях UEFI-прошивок проблема устранена, но многие находящиеся в обиходе устройства продолжают работать с уязвимыми версиями прошивок.



  1. Главная ссылка к новости (https://www.binarly.io/blog/lo...)
  2. OpenNews: LogoFAIL - атака на UEFI-прошивки через подстановку вредоносных логотипов
  3. OpenNews: PixieFAIL - уязвимости в сетевом стеке прошивок UEFI, применяемом для PXE-загрузки
  4. OpenNews: Уязвимость в прошивках AMI MegaRAC, вызванная поставкой старой версии lighttpd
  5. OpenNews: Уязвимости в UEFI-прошивках на базе фреймворка InsydeH2O, позволяющие выполнить код на уровне SMM
  6. OpenNews: Уязвимость в UEFI-прошивках Phoenix, затрагивающая многие устройства с CPU Intel
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/62321-bootkit
Ключевые слова: bootkit, uefi, mallware, logofail
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (48) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 23:13, 30/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +12 +/
    Shim и его последствия, которых пришлось подождать.
     
     
  • 2.5, Аноним (5), 23:32, 30/11/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    100%. Вместо внятной документации по описанию работы secure boot и утилит по рулению ключами, например, люди получили черный ящик, который как-то работает. Производители железа вот прямо с этого места (как-то работает) умыли руки. Гора родила shim, чтобы хоть как-то прокыстылять положение дел, но сильно понятней, как устроен SB не стало, и тоже умыли руки.
     
     
  • 3.16, Семен (??), 01:13, 01/12/2024 [^] [^^] [^^^] [ответить]  
  • +6 +/
    SB как раз работает очень даже понятно, так же UEFI. Есть всем доступная и понятная документация и спецификация. Все ровно так же как в интернете работает SSL или TLS, есть корневой сертификат - центра доверия - сертификат Microsoft, им подписываются вендор сертификаты, у каждого производителя оборудования они так же могут быть свои и они вшиты в прошивку или в чип с защитой от стирания и перезаписи, таким образом все другие сертификаты подписанные этими сертификатами могут быть легко проверены по открытой подписи корневого сертификата. Но такие закрытые ключи никто не дает, но дают открытый. Таким образом все бинарники подписанные этими сертификатами проходят sb политику безопасности и легко проверяются, подпись и контрольные суммы не возможно подделать. Так же работает любая цифровая подпись https://www.gnupg.org/gph/en/manual/x135.html

    Собственно некоторые вендоры позволяют ставить самоподписанные сертификаты, которые хранятся в TPM, но их можно установить только через бинарник подписанный корневым сертификатом. Как я знаю загрузчик просто передает управления shim, который производит дальнейшную проверку SB, потому что собственно сама прошика не знает как проверить подписи у разных типов файлов, и какие там смещения в файлах, а дальше он передает управление grub и ядру подписанными самоподписанными сертификатами или вендор ключами, теперь они становятся центрами доверия и ядро может проверять свои модули, вроде как RedHat все же дали в какой-то момент свой вендор ключ. Отсюда лучше иметь SB чем его не иметь, вы так пишете будь-то при MBR не было буткитов, было и не мало, и установить их было намного проще. Проблема заключается в другом, что в современном компьютере при включении запускается с десяток чипов-устройств, у которых свои прошики, которые напоминают операционную систему и имеют свободный доступ к системным шинам, отсюда там могут быть и бекдоры и уйзвимости, которые можно использовать. И это кстати не байки для параноиков, это реальность(посмотрите видео от инженеров по устройству компьютеров), что почти каждое устройство имеет свою микро операционную систему и свободный доступ к подключенным шинам.

     
     
  • 4.51, Аноним (51), 07:32, 01/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Всё настолько прозрачно и понятно, что до сих пор https github com rhboot shim... большой текст свёрнут, показать
     
  • 4.52, Аноним (-), 07:33, 01/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >И это кстати не байки для параноиков, это реальность(посмотрите видео от инженеров по устройству компьютеров), что почти каждое устройство имеет свою микро операционную систему и свободный доступ к подключенным шинам.

    Intel ME - внутри работает MINIX3.

     

  • 1.2, Аноним (2), 23:14, 30/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    И таких подстав ещё цать. Открытый исходный код... Присылайте ваши пулл-реквесты!
     
     
  • 2.3, Аноним (3), 23:24, 30/11/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    https://www.microsoft.com/ru-ru/security/
     
  • 2.24, Bottle (?), 01:55, 01/12/2024 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Вообще, проблема безопасности системная, начиная с железа.
    Пока не решат проблему на аппаратном уровне, править программные ошибки смысла мало.
     
  • 2.28, Алиса порвалась (?), 02:17, 01/12/2024 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Давно уже понятно что оупенсорц это рак и код должен быть мксимум открыт для изучения ни никак не для форков и последующего навара бабла на этом. Вообще форки нужно приравнять к воровству (фактически назовите почему это не воровство).
     

  • 1.6, Oe (?), 23:35, 30/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Переполнение в декодере bmp ахахахаха, там код "декодера" две с половиной строки, даж на ламповом компьютере запустится.
     
     
  • 2.18, Семен (??), 01:18, 01/12/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Кстати да, формат нереально простой, как они так могли обосраться. Может специально был бекдор? Мне что-то верится с трудом, что в коде в пару сотен строк, в которым пару десятков строк нужны для декодирования можно так ошибиться и не заметить переполнение.
     
     
  • 3.30, Аноним (30), 02:47, 01/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > как они так могли обосраться

    Ты не поверишь, взяв опенсорсную либу. Думали там тысячи глаз, но не знали, что все шоколадные. А других бесплатных кодеров у нас для вас нет.

     
     
  • 4.50, Аноним (50), 07:03, 01/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ты не поверишь, но у MS тоже был баг в декодере BMP в IE. И никакого опенсорса, кстати.
     

  • 1.8, Oe (?), 23:41, 30/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    А чо в конце 2024 адреса функций всё еще не рандомизируются при каждой компиляции и двадцать лет лежат по статичным адресам?
    'затем скрывает себя в списке модулей ядра'
    А чо модуль ядра может сам себя скрыть? У вас все равно 99% тормозов в  юзерспейсе, неужели нельзя модули в контейнерах запускать? Ах, обратная совместимость, нельзя ломать.
     
     
  • 2.9, Aliech (ok), 00:00, 01/12/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Дорогой Анон, а просвети как, как это модуль ядра запустить в контейнере? Каком контейнере?
     
     
  • 3.10, Аноним (10), 00:07, 01/12/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Создаёшь докер в докере. Пишешь код модуля, для наглядности используй javascript, да и нода тоже пригодится, инструмент ведь универсальный. А потом запускаешь. Понял?
     
     
  • 4.14, Аноним (14), 00:48, 01/12/2024 Скрыто ботом-модератором     [к модератору]
  • –1 +/
     
     
  • 5.26, Аноним (2), 02:00, 01/12/2024 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 4.32, Аноним (32), 03:05, 01/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Какой бред.
     
     
  • 5.43, Аноним (2), 03:57, 01/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ты тоже помогай, без тебя не справятся.
     
  • 3.15, sysrise (ok), 00:57, 01/12/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Видимо 20 футовом ;)
     
  • 3.19, Oe (?), 01:33, 01/12/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Берешь и запускаешь. Не запускается, значит переписываешь ядро и модуль пока не начнет запускаться.
     
  • 2.21, Аноним (21), 01:44, 01/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >А чо модуль ядра может сам себя скрыть?

    А то как же! Ядерный код же!
    >У вас все равно 99% тормозов в  юзерспейсе, неужели нельзя модули в контейнерах запускать?

    Молодёжь переизобретает микроядро же!
    >Ах, обратная совместимость, нельзя ломать.

    Это последсвия потери идей миникса же! Таненбаум предупреждал же!

     
     
  • 3.33, Аноним (32), 03:08, 01/12/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Minix - продукт академического подхода. Linux - нахрап от безграмотного финского студента. Мир не устроила медлительность разработки Hurd, дороговизна Unix, в иных случаях Linux не вылез бы дальше кружка энтузиастов.
     
     
  • 4.47, Аноним (47), 05:13, 01/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    И кого это теперь волнует? Что свершилось, уже свершилось и надо как-то жить с этим. Миникс с хурдом на помойке истории. Точка.
     

  • 1.11, dannyD (?), 00:17, 01/12/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    мдя.... где-то я уже это читал... да дня назад

    https://servernews.ru/1114723

     
  • 1.17, Аноним (17), 01:13, 01/12/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Линухс - не менее дырявая поделка чем Винда?) То о чем красноглазых предупреждали.
     
     
  • 2.20, Oe (?), 01:35, 01/12/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Знаменитый на весь мир ведроид 4.2.2, который заражался от входящего sms когда о уязвимостях в линухе еще даже не начинали говорить.
     
     
  • 3.35, Аноним (32), 03:12, 01/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Где-то зачесалось или как иначе объяснить этот неуместный комментарий?
     
  • 3.38, Аноним (38), 03:14, 01/12/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Во-первых не СМС, а ММС. В СМС нельзя вставить видео. Во-вторых, не только СМС, а вообще любое открытие специального mp4 файла, если через систему пропускается. Хоть по почте, хоть в браузере, хоть при генерации миниатюры в файловом менеджере.
     
  • 3.44, Аноним (44), 04:29, 01/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Что на счёт айфонов взамываемых отправкой сообщения в iMessage жертве?
     
  • 2.27, Алиса порвалась (?), 02:15, 01/12/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Вирусы на венде давно ушли в прошлое вместе с win xp sp2. Вообще лет 10 точно не слышала чтобы кто-то подхватывал вирус.
     
     
  • 3.34, Аноним (32), 03:10, 01/12/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Видимо причина кроется в том, что Вы - женщина.
     
     
  • 4.42, Аноним (47), 03:49, 01/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А в чем она не права (по существу)?
    Вири действительно давно ушли в прошлое (в своем массовом виде, как во времена XP).
     
     
  • 5.48, Аноним (-), 05:29, 01/12/2024 Скрыто ботом-модератором     [к модератору]
  • –2 +/
     
  • 2.49, Аноним (-), 05:30, 01/12/2024 Скрыто ботом-модератором     [к модератору]
  • +/
     

     ....ответы скрыты (9)

  • 1.22, мяв (?), 01:46, 01/12/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    новости-то уже недели две. скукота.
    >продолжают работать с уязвимыми версиями прошивок.

    так лого заверено ключем при использовании uki+sb.
    проблем не вижу.

     
  • 1.23, мяв (?), 01:54, 01/12/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    и да, все равно массовое заражение будет для атакующего болью - в федоре, вон, уже на uki перешли и MOK выкинули
    зы. про выкидывание не уверена, но если не выкинули - странно.. тогда переход смысла лишается.
     
  • 1.25, мяв (?), 01:59, 01/12/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Библиотека injector.so перехватывает некоторые операции SELinux и функцию init_module

    каким образом буткит собрался что-то в /boot вытанцовывать с включенным selinux перед перезагрузкой - тоже не совсем ясно.
    редхатовская политика левым процессам не дает в boot_t писать.

     
     
  • 2.39, Семен (??), 03:18, 01/12/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Все гениальное просто: setenforce 0
    Во всех redhat подобных дистрибутивах можно отключить selinux, запрет на изменения прописываются в конфиге ядра при сборке, думаю они не отключают эту функцию, на случай траблшутинга и запуска релайбла у малограмотных юзеров. 99% пользователей не знают, как им пользоваться и как разрабатывать свои политики, если их софт чудесным образом не запускается. Вы не поверите, но в очень большом количество туторов для редхат, центоса, и федоры первым делом отключают selinux. Классический пример, на котором 99% пользователей затыкаются, что при создании директории вебсервера и запуска вебсервера, вебсервер ваш шлет на 3 буквы из-за selinux и люди не могут прописать нужные контексты.

     

  • 1.29, Аноним (29), 02:43, 01/12/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Сделали бы защищённое хранилище для загрузчиков и доступ к нему по одноразовому коду, показывать код на отдельном экране - вспотеешь загрузчик подменять вредоносами. А сейчас какой-то недосекурибут который кроме тивоизации ничего не даёт.
     
     
  • 2.37, Аноним (32), 03:14, 01/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Уже же есть такое - вынос загрузчика на флеш.
     
     
  • 3.40, Аноним (29), 03:29, 01/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > вынос загрузчика на флеш

    непрактично как все прочие внешние накопители

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру