Исследователи из Qualys Threat Research Unit (TRU) раскрыли информацию о девяти уязвимостях в модуле AppArmor ядра Linux. Проблемы позволяют непривилегированному пользователю обойти защитные механизмы ядра, получить root-права и обойти изоляцию контейнеров. Этот набор уязвимостей получил общее название CrackArmor.
AppArmor — модуль безопасности Linux, реализующий принудительный контроль доступа (mandatory access control, MAC). Он работает на уровне ядра и защищает систему от эксплуатации известных и неизвестных проблем в приложениях. В mainline-ядро его включили начиная с версии 2.6.36, и AppArmor по умолчанию входит в состав Ubuntu, Debian, SUSE и других дистрибутивов.
По данным исследователей, проблема существует с 2017 года. Все девять уязвимостей (CVE им пока не присвоены) относятся к классу confused deputy. Этим термином обычно описывают ситуацию, когда непривилегированный процесс вынуждает привилегированную программу злоупотребить своими полномочиями. Суть атаки заключается в том, чтобы воспользоваться доверием к более привилегированному инструменту и с его помощью выполнить действия, которые в противном случае были бы недоступны.
«CrackArmor раскрывает confused deputy баг, позволяющий непривилегированным пользователям манипулировать профилями безопасности через псевдофайлы, обходить ограничения user namespace и выполнять произвольный код в ядре», — поясняет Саид Аббаси (Saeed Abbasi), старший менеджер Qualys TRU.
Фактически это означает, что атакующий без необходимых привилегий может перехватить управление профилями AppArmor: отключить защиту критически важных служб или принудительно использовать политику deny-all, спровоцировав отказ в обслуживании (DoS). В связке с проблемами парсинга профилей на уровне ядра это открывает путь к локальному повышению привилегий (LPE) вплоть до root-прав.
Последствия эксплуатации уязвимостей CrackArmor могут быть самыми разными: сбои сервисов, модификация /etc/passwd для входа без пароля, а также раскрытие KASLR — то есть утечка информации о расположении ядра в памяти, которая открывает путь к дальнейшей удаленной эксплуатации. Также эксперты отдельно отмечают возможность создания полноценных user namespace, что позволяет обойти ограничения Ubuntu на их использование и сломать изоляцию контейнеров.
По данным исследователей, перед CrackArmor уязвимы все ядра Linux начиная с версии 4.11 на любом дистрибутиве с включенным AppArmor. По оценкам Qualys, под угрозой находится более 12,6 млн корпоративных Linux-инсталляций.
Proof-of-concept эксплоиты исследователи пока не публикуют, чтобы дать администраторам время установить патчи. Аббаси подчеркивает, что единственная надежная защита — обновление ядра, и никакие временные меры не помогут.
