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


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

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

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

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

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

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


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

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

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

     

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

     

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

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

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

     
  • 1.10, Аноним (10), 00:06, 25/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    ждем ебилдов и пкгбилдов
     
  • 1.12, мяв (?), 01:05, 25/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    так.. все равно происходит чтение, все равно происходит подключение к сети.
    я дальше половины новости не читала, но даже если это модуль ядра - будет чтение файла и отправка со стороны ядра.
    MACи это явно увидят, lsm не дураками делался. ровно, как и подсистема аудита.
     

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



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

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