Исследователи предупреждают, что недавно обнаруженная опасная уязвимость повышения привилегий Linux, получившая название Grimy Pipe, может также повлиять на приложения и системы, использующие контейнеризацию с помощью таких инструментов, как Docker. Это связано с другой уязвимостью повышения привилегий, которая была исправлена на прошлой неделе и могла привести к побегу контейнера.
Grimy Pipe «может позволить злоумышленнику эффективно изменять контейнеры, которые работают с общим образом, или отравлять образ на хосте, чтобы новые контейнеры получали измененные файлы», — заявил в своем блоге исследователь Рори МакКьюн из компании по обеспечению безопасности облачных вычислений Aqua Safety. сообщение.
Что такое грязная труба?
Уязвимость Grimy Pipe, отслеживаемая как CVE-2022-0847, расположена в конвейере обмена сообщениями или канале ядра Linux. Это механизм межпроцессного взаимодействия, посредством которого один процесс может отправлять данные другому процессу. Процесс может открыть канал и записать в него данные. Ядро сохранит его в буфере, а затем будет ждать, пока другой процесс не прочитает его оттуда.
Макс Келлерманн, разработчик из компании-разработчика программного обеспечения CM4all, обнаружил уязвимость, изучая сообщения о повреждении файлов от пользователей разработанного им HTTP-сервера. После того, как он устранил все возможные случаи в своем собственном программном обеспечении, расследование привело его к ядру Linux, где он обнаружил фиксацию, включенную в ядро 5.8, которая непреднамеренно изменила поведение механизма канала таким образом, что это привело к таким повреждениям путем добавления произвольных данных. в канал из буфера памяти.
Оказывается, эту проблему можно использовать контролируемым образом для внедрения произвольных данных и записи или изменения файлов, которые не должны быть доступны пользователю, открывающему канал, например файлы только для чтения.
«Когда я понял, в чем была настоящая проблема, я смог расширить дыру с большим запасом: можно перезаписать кэш страниц даже в отсутствие записывающих устройств, без ограничений по времени, в (почти) произвольных позициях с произвольным данных», — сказал Келлерманн в своем бюллетене.
Келлерманн опубликовал эксплойт для проверки концепции того, как файл, доступный только для чтения, может быть перезаписан с помощью этой ошибки, которая аналогична по воздействию другой уязвимости, обнаруженной в 2016 году в механизме копирования при записи Linux и получившей название Grimy COW. Другие исследователи развили эксплойт дальше и продемонстрировали, как его можно легко использовать для изменения защищенных файлов и получения прав суперпользователя — максимально возможной привилегии в системах Linux.
Уязвимость затрагивает все системы на базе Linux, использующие версию ядра новее 5.8, включая Android. Все дистрибутивы и Google выпустили патчи, которые следует установить как можно скорее. Уязвимости присвоен высокий уровень серьезности, но она может быть особенно опасной в таких системах, как общие серверы веб-хостинга, где многие клиенты имеют учетные записи с низким уровнем привилегий и доступ к командной оболочке.
Опасность грязной трубы для контейнеров
Контейнеры Linux обладают мощными возможностями и позволяют изолировать приложения от хост-системы без использования виртуализации на основе гипервизора. Одной из основных особенностей таких контейнерных систем является использование одного базового образа (файловой системы) только для чтения для запуска нескольких контейнеров, которые затем используют наложенные файловые системы для хранения любых изменений, внесенных в эти конкретные контейнеры. Исходное изображение, являющееся базовым для всех контейнеров, должно остаться нетронутым.
По словам МакКьюна, эксплойт Grimy Pipe позволяет злоумышленникам нарушить эту гарантию безопасности, поскольку они могут вносить изменения в базовый образ изнутри контейнера. Это повлияет на все другие контейнеры, которые запускаются из того же образа.
«Этот эксплойт может повлиять и на существующие контейнеры, — сказал МакКьюн. «Например, если у вас есть хост с 10 контейнерами nginx, использующими общий образ, и злоумышленник изменил файл nginx.conf в одном из них, он мгновенно изменит файлы и в других, если они все еще используют общий образ. файл из базового образа».
Кроме того, контейнерные системы позволяют монтировать тома файловой системы из хост-системы только для чтения. Используя Grimy Pipe, злоумышленники, имеющие доступ к контейнеру, получат возможность изменять данные из этих подключений только для чтения.
Еще одна уязвимость, связанная с привилегиями, исправленная на прошлой неделе, CVE-2022-0492, затрагивает контрольные группы (cgroups), фундаментальный строительный блок контейнеров. Эксплуатация этой уязвимости может привести к побегу контейнера в системах, не использующих дополнительные средства защиты, такие как AppArmor, SELinux или Seccomp.
«В то время как Docker по умолчанию включает AppArmor и seccomp, Kubernetes отключил профиль seccomp по умолчанию», — сказал МакКьюн в отдельном анализе. «Таким образом, для Kubernetes это необходимо повторно включить в каждой рабочей нагрузке или на уровне кластера с помощью мутирующих контроллеров допуска, таких как OPA Gatekeeper или Kyverno».
© 2022 IDG Communications, Inc.
https://cyberxhack.org/