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 обязательно


Обсуждение (39) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 23:13, 30/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +9 +/
    Shim и его последствия, которых пришлось подождать.
     
     
  • 2.5, Аноним (5), 23:32, 30/11/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    100%. Вместо внятной документации по описанию работы secure boot и утилит по рулению ключами, например, люди получили черный ящик, который как-то работает. Производители железа вот прямо с этого места (как-то работает) умыли руки. Гора родила shim, чтобы хоть как-то прокыстылять положение дел, но сильно понятней, как устроен SB не стало, и тоже умыли руки.
     
     
  • 3.16, Семен (??), 01:13, 01/12/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    SB как раз работает очень даже понятно, так же UEFI Есть всем доступная и понят... большой текст свёрнут, показать
     

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

  • 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 [^] [^^] [^^^] [ответить]  
  • +/
    > как они так могли обосраться

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

     

  • 1.8, Oe (?), 23:41, 30/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    А чо в конце 2024 адреса функций всё еще не рандомизируются при каждой компиляции и двадцать лет лежат по статичным адресам?
    'затем скрывает себя в списке модулей ядра'
    А чо модуль ядра может сам себя скрыть? У вас все равно 99% тормозов в  юзерспейсе, неужели нельзя модули в контейнерах запускать? Ах, обратная совместимость, нельзя ломать.
     
     
  • 2.9, Aliech (ok), 00:00, 01/12/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Дорогой Анон, а просвети как, как это модуль ядра запустить в контейнере? Каком контейнере?
     
     
  • 3.10, Аноним (10), 00:07, 01/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Создаёшь докер в докере. Пишешь код модуля, для наглядности используй 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 [^] [^^] [^^^] [ответить]  
  • +/
    Видимо 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 [^] [^^] [^^^] [ответить]  
  • +/
    Minix - продукт академического подхода. Linux - нахрап от безграмотного финского студента. Мир не устроила медлительность разработки Hurd, дороговизна Unix, в иных случаях Linux не вылез бы дальше кружка энтузиастов.
     

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

    https://servernews.ru/1114723

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

  • 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.31, Аноним (38), 03:03, 01/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    По отпечатку пальца после уплаты $0.1 через СМС в качестве Proof-of-Work (у кого нет работы чтобы заработать на уплаты Proof-of-Work - может проследовать на свалку к бомжам).
     
     
  • 3.36, Аноним (29), 03:12, 01/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > По отпечатку пальца

    биометрия для слабоумных

     
     
  • 4.41, Аноним (38), 03:36, 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
    Добавить, Поддержать, Вебмастеру