Создан руткит, способный обходить основные инструменты защиты Linux
Новый руткит использует интерфейс io_uring для обхода средств защиты на основе мониторинга системных вызовов. Подозрения, что такое возможно, высказывались еще в 2023 г.
Большой пробел
Исследователи фирмы ARMO представили демонстрационный руткит под Linux, который обходит один из ключевых инструментов защиты операционной системы.
Руткит под названием Curing эксплуатирует механизм асинхронного ввода-вывода в Linux под названием io_uring, что позволяет ему обходить традиционный мониторинг системных вызовов. В ARMO это назвали «большим пробелом в инструментарии безопасности среды Linux».
«Данный механизм обеспечивает пользовательским приложениям осуществлять самые различные действия, не используя при этом системные вызовы, - пишут исследователи. - Как следствие, защитные инструменты, которые полагаются на мониторинг системных вызовов, оказываются слепыми в отношении руткитов, использующих только io_uring».
Механизм io_uring, впервые реализованный в ядре Linux в марте 2019 г., представляет собой интерфейс системных вызовов, который задействует два циркулярных буфера - очередь подачи (submission queue, SQ) и очередь исполнения (completion queue, CQ), - меджу ядром и приложением. Эти буферы используются для асинхронного отслеживания запросов на ввод-вывод.
Руткит ARMO позволяет устанавливать соединение между контрольным сервером условных атакующих и скомпрометированным хостом, и получать и выполнять команды, не осуществляя при этом никаких системных вызовов, релевантных его действиям. Вместо этого используется io_uring.
Руткит-невидимка
Распространенные средства мониторинга и защиты системных вызовов - Falco и Tetragon - не видят атак, которые производятся с помощью этого руткита. Они главным образом ориентируются на перехват системных вызовов со стороны вредоносных программ, а этого в данном случае не происходит.
Вопросы к безопасности io_uring возникали и раньше. В июне 2023 г. Google объявил, что ограничивает использование этого интерфейса в Android, ChromeOS и продуктовых серверах из опасений перед возможностью вредоносной эксплуатации.
«Хотя пока сведений о практических атаках с использованием данной особенности io_uring не поступало, нельзя исключать, что ARMO - не первые, кто проводил такие эксперименты», - считает Никита Павлов, эксперт по информационной безопасности компании SEQ. «В любом случае, ключевые инструменты безопасности Linux - или сам этот интерфейс - теперь потребуют основательной доработки: руткиты представляют риск слишком высокой степени, чтобы «оставлять дверь открытой»».
Публикация кода на GitHub явно означает, что практические реализации этого эксплойта не заставят себя долго ждать.