Ssylka

Как Linux io_uring создает критические бреши в безопасности современных систем?

Недавно разработанный экспериментальный руткит под названием "Curing" продемонстрировал серьезную уязвимость в системах обнаружения угроз для Linux. Используя механизм асинхронного ввода-вывода io_uring, вредоносное ПО способно обходить инструменты мониторинга системных вызовов, создавая то, что специалисты ARMO называют «крупным слепым пятном в инструментах безопасности Linux".

Механизм io_uring был впервые представлен в версии ядра Linux 5.1 в марте 2019 года и предназначен для обеспечения эффективного асинхронного ввода-вывода. Технология использует две кольцевые буферные структуры: очередь отправки (SQ) и очередь завершения (CQ), которые обеспечивают прямую коммуникацию между пользовательским пространством и ядром. Эта архитектура позволяет отслеживать запросы ввода-вывода асинхронно, значительно повышая производительность.

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

Проблема усугубляется тем, что популярные инструменты безопасности Linux, такие как Falco и Tetragon, оказываются «слепыми» к операциям, выполняемым через io_uring. Эти инструменты в значительной степени полагаются на перехват системных вызовов для обнаружения подозрительной активности, и когда эти вызовы не используются, системы защиты оказываются бессильными.

Опасения относительно безопасности io_uring не новы. Еще в июне 2023 года компания Google ограничила использование io_uring в своих продуктах, включая Android, ChromeOS и производственные серверы. В официальных заявлениях Google указывалось, что io_uring «предоставляет мощные примитивы для эксплуатации уязвимостей», что подчеркивает серьезность проблемы.

Эксперты в области кибербезопасности подтверждают сложность ситуации. Амит Шендель, руководитель исследований безопасности в ARMO, отмечает: «С одной стороны, вам необходима видимость системных вызовов; с другой стороны, требуется доступ к структурам ядра и достаточный контекст для эффективного обнаружения угроз». Это заявление подчеркивает фундаментальную проблему современных инструментов безопасности Linux.

Руткит "Curing" наглядно демонстрирует, как технология, разработанная для повышения производительности, может быть использована злоумышленниками для обхода систем защиты. Поскольку io_uring обеспечивает прямой доступ к функциональности ядра, минуя традиционные системные вызовы, он создает серьезный пробел в защите, который не могут закрыть существующие инструменты обнаружения угроз.

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


Новое на сайте