The OpenNET Project / Index page

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

Прототип руткита для Linux, использующий io_uring для обхода анализаторов системных вызовов

24.04.2025 22:15

Исследователи из компании ARMO продемонстрировали возможность создания руткитов, не использующих специфичные системные вызовы для выполнения типовых операций, таких как чтение/запись файлов и приём команд от внешнего сервера. Вместо системных вызовов для выполнения сетевых и файловых операций предложено использовать интерфейс асинхронного ввода/вывода io_uring, поддерживаемый начиная с ядра Linux 5.1.

Суть метода в том, что вместо отдельных системных вызовов для доступа к файлам и совершения сетевых операций (read/write, recv/send/connect/bind/listen) можно использовать общие системные вызовы io_uring (io_uring_enter, io_uring_setup, io_uring_register и т.п.), которые не анализируются типовыми инструментариями для выявления вредоносной активности. Интерфейс io_uring поддерживает около 60 различных операций. В разработке находится возможность, позволяющая запускать новые процессы через io_uring.

Для демонстрации работы метода подготовлен прототип руткита Curing, выполняющий такие действия, как приём команд от внешнего сервера и передача/изменение файлов. В демонстрации использовалась отправка запроса на TCP-порт 8888 внешнего хоста и передача содержимого файла "/etc/shadow". Подразумевается, что после успешной компрометации системы и получения прав root, атакующий устанавливает руткит для закрепления своего присутствия на взломанной системе.

В проведённом эксперименте активность руткита Curing оказалась не замечена инструментами мониторинга Falco и Tetragon, применяемыми для определение связанных с безопасностью аномалий на хостах и в контейнерах (поддерживается интеграция с инфраструктурой на базе Kubernetes). Указанные инструменты используют перехват системных вызовов для анализа таких событий, как запуск процессов, сетевая активность и работа с файлами, но не учитывают возможность использования подсистемы io_uring для подобных операций. Большая часть доступных для Linux коммерческих систем обнаружения и реагирования на инциденты с безопасностью также основывается на перехвате системных вызовов.

Для исключения обхода инструментов отслеживания сетевой и файловой активности, вместо перехвата системных вызовов рекомендовано использовать механизм KRSI (Kernel Runtime Security Instrumentation), появившийся в ядре Linux 5.7 и позволяющий прикреплять BPF-программы к любым LSM-хукам. Например, KRSI на уровне LSM-хуков даёт возможность отслеживать операции с файлами, сетевой доступ и запуск процессов, независимо от того, инициированы данные операции через специфичные системные вызовы или через io_uring.

Ранее подсистема io_uring была объектом критики из-за регулярно всплывающих серьёзных уязвимостей. В ответ на пожелания пользователей, желающих получить простой инструмент для отключения io_uring без пересборки ядра, в ядро Linux 6.6 был добавлен sysctl io_uring_disabled. Компания Google по умолчанию отключила io_uring в ChromeOS, Android и на своих серверах, пояснив, что плачевная ситуация с безопасностью в io_uring перевешивает достоинства применения io_uring для повышения производительности.

  1. Главная ссылка к новости (https://www.armosec.io/blog/io...)
  2. OpenNews: Представлены работающие на GPU прототипы руткита и кейлоггера для Linux
  3. OpenNews: Выявлен новый rootkit для Linux, подменяющий функции libc
  4. OpenNews: Избавление ядра Linux от кода, меняющего поведение для процессов, начинающихся на символ X
  5. OpenNews: SSH-бэкдор, установленный при взломе kernel.org, два года оставался незамеченным
  6. OpenNews: Выявлен UEFI-буткит Bootkitty, подставляющий вредоносный код в загружаемое ядро Linux
Лицензия: CC BY 3.0
Наводку на новость прислал Artem S. Tashkinov
Короткая ссылка: https://opennet.ru/63136-io_uring
Ключевые слова: io_uring, rootkit
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (19) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 22:25, 24/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > В проведённом эксперименте активность руткита Curing оказалась не замечена инструментами мониторинга Falco и Tetragon, применяемыми для определение связанных с безопасностью аномалий в контейнерах

    Хостовая система не видит, что происходит в контейнере?

    Или эти "инструменты" в тех же ns работают?

     
     
  • 2.2, Аноним (2), 22:26, 24/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Конечно видит, ядро же общее для всех контейнеров, это вам не виртуализация.
     
     
  • 3.3, Аноним (1), 22:39, 24/04/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > это вам не виртуализация.

    https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BD

    Вообще контейнеризация относится к виртуализации (что как по мне странно).


    > Конечно видит, ядро же общее для всех контейнеров,

    Вот я тоже не понял, как из непривилегированного контейнера можно что-то там скрыть, без LPE на уровне ядра.

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

     
     
  • 4.13, АнонимЯ (?), 02:07, 25/04/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Вообще контейнеризация относится к виртуализации (что как по мне странно).

    Просто не читайте до обеда википедию.

     
  • 4.18, Аноним (18), 07:58, 25/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ничего странного, как всегда надо начинать с определений - они могут сильно отличаться у разных групп. Например,  виртуализация может быть разного уровня - железа, ядра, ос, прикладного. Как пример последнего - пачка разнородных питоновских окружений, каждый со своим интерпретатором и набором библиотек/их версий.
     

  • 1.4, ИмяХ (ok), 22:50, 24/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Говорили же вам анонимы с опеннета, что io_uring это не просто бэкдор, а целая парадная дверь для вредноносов. А вы не послушали. Вот теперь расхлёбывайте.
     
     
  • 2.5, Аноним (5), 23:09, 24/04/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Кому это нам? Линусу и Ко? Так им пофиг на мнение каких-то там анонимов с опеннета. Денежки получили, теперь ещё заработают на закрытии этой дыры.
     
     
  • 3.6, Аноним (6), 23:29, 24/04/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    И набегут новые "мейнтейнеры", чтобы предложить io_uring переписывать на Rust.
     
  • 2.9, нах. (?), 23:32, 24/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    мне не говорили. Я думал что это улучшайкерство само по себе вредонос (неотключаемый бай дизайн, как всегда), а оно эвон как еще могет!

     

  • 1.7, нах. (?), 23:31, 24/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Ураааа! Наконец-то хоть какая-то польза простым смертым от этой иоурины, попереломавшей все файловые системы!

     
  • 1.8, Аноним (6), 23:32, 24/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    >механизм KRSI (Kernel Runtime Security Instrumentation), появившийся в ядре Linux 5.7 и позволяющий прикреплять BPF-программы к любым LSM-хукам

    Предлагается детектить активность одного руткита с помощью другого.

     
     
  • 2.20, Аноним (20), 08:44, 25/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ради вашей безопасности, из за того что у них там в разработке (т.е он не работает на нормальной системе) руткит, предлагается :
    разрешить BPF, и прикреплять BPF-программы к любым LSM-хукам.

    Ну прям классический развод про дыры ради безопасности.

     

  • 1.12, мяв (?), 01:05, 25/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    так.. все равно происходит чтение, все равно происходит подключение к сети.
    я дальше половины новости не читала, но даже если это модуль ядра - будет чтение файла и отправка со стороны ядра.
    MACи это явно увидят, lsm не дураками делался. ровно, как и подсистема аудита.
     
  • 1.14, Аноним (14), 02:09, 25/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Извините, но kernel-mode руткит - это программа, хукающая ядро для скрытия себя и, опционально, защищаемой нагрузки. User-mode rootkit это программа, подменяющая  библиотеки и утилиты на подкрученные. Toolchain-level rootkit - это подкрученный toolchain.

    Программа же, просто использующая непокрытую функциональность, непокрытую по той простой причине, что эта функциональность намеренно ускорена для HPC, для тех, кому нужна максимальная скорость во что бы то ни стало, кто специально ради этого готов пожертвовать безопасностью (именно поэтому io_uring требует спец. привилегий) - это не руткит.

     
  • 1.15, Аноним (15), 02:26, 25/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Надо взять ядро 2.6, залатать все дыры и уязвимости в нем, и не трогать. Писать только модули к нему, а код ядра заморозить.

    Кстати, вопрос, где смотреть сколько уязвимостей еще осталось в старых ядрах? На всяких cve базах не очень понятно, толи есть они, толи все залатали уже.

     
     
  • 2.22, 1 (??), 09:18, 25/04/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     

  • 1.16, Аноним (16), 02:51, 25/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Следующая новость -- опасность руткитов из-за

    >> появившийся в ядре Linux 5.7 и позволяющий прикреплять BPF-программы к любым LSM-хукам.

    BPF руткиты облепили LSM своими липкими хуками!

     
     
  • 2.19, Жироватт (ok), 08:03, 25/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Мой байт-код ОПТИМИЗИРОВАННЕЕ, чем твой байт-код.
    И хватит тут постоянно поминать своё липкий хук - мы всё-таки в приличном месте, тут дамы.
     

  • 1.21, Шарп (ok), 09:12, 25/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Не могут 10 лет родить асинхронный API.
     

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



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

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