The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Ubuntu ограничит доступ к user namespace

09.10.2023 23:14

Компания Canonical объявила о внесении в Ubuntu 23.10 изменений, ограничивающих доступ непривилегированных пользователей к пространствам имён идентификаторов пользователя (user namespace), что позволит повысить защищённость систем, использующих контейнерную изоляцию, от уязвимостей, для эксплуатации которых необходимы манипуляции с user namespace. По данным Google, 44% эксплоитов, участвующих в программе по выплате денежных вознаграждений за выявление уязвимостей в ядре Linux, требуют наличия возможности создания пространств имён идентификаторов пользователя.

Вместо полной блокировки доступа к user namespace в Ubuntu применена гибридная схема, выборочно оставляющая некоторым программам возможность создавать user namespace при наличии профиля AppArmor с правилом "allow userns create" или прав CAP_SYS_ADMIN. Например, для браузера Chrome, в котором user namespace применяется для sandbox-изоляции процессов, создан профиль /etc/apparmor.d/opt.google.chrome.chrome, пригодный для использования в качестве примера для открытия доступа к user namespace для других программ.

В грядущем выпуске Ubuntu 23.10 ограничение доступа к user namespace планируют предложить в качестве опции, не включённой по умолчанию. В течение нескольких недель после релиза Ubuntu 23.10 разработчики соберут сведения о возможном негативном влиянии отключения доступа к user namespace на работу пакетов и подготовят соответствующие профили AppArmor. Затем в одном из корректирующих обновлений пакета с ядром (Stable Release Updates) ограничение будет активировано по умолчанию.

Для досрочного включения ограничения можно использовать команды:


    sudo sysctl -w kernel.apparmor_restrict_unprivileged_unconfined=1
    sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=1

А для отключения:


    sudo sysctl -w kernel.apparmor_restrict_unprivileged_unconfined=0
    sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0

Напомним, что пространства имён (namespace) в ядре Linux позволяют привязать к разным процессам разные представления ресурсов, например, процесс может быть помещён в окружение со своими точками монтирования, UTS, IPC, PID и сетевым стеком, которые не пересекаются с окружением других процессов. Пространства имён для непривилегированных пользователей дают возможность создавать пространства имён не только пользователю root, но и обычным непривилегированным пользователям (например применяется для sandbox-изоляции браузеров).

Среди прочего можно создавать пространства имён идентификаторов пользователей (user namespace) и сетевые пространства имён (network namespace), позволяющие процессу в отдельном изолированном окружении получить права root или доступ к расширенным возможностям сетевого стека, но остаться непривилегированным вне контейнера. Теоретически привилегированные операции внутри пространства имён изолированы от основной системы, но на практике регулярно всплывают уязвимости в подсистемах ядра, которые недоступны для непривилегированного пользователя в основном окружении, но могут быть эксплуатированы через манипуляции из пространств имён.

  1. Главная ссылка к новости (https://canonical.com//blog/ub...)
  2. OpenNews: Применение в Ubuntu своих патчей к OverlayFS привело к появлению уязвимостей
  3. OpenNews: Локальная уязвимость в сетевой подсистеме ядра Linux
  4. OpenNews: Уязвимости в ядре Linux, затрагивающие nftables и модуль tcindex
  5. OpenNews: Уязвимости в Netfilter и io_uring, позволяющие повысить свои привилегии в системе
  6. OpenNews: Уязвимость в OverlayFS, позволяющая повысить свои привилегии
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/59897-ubuntu
Ключевые слова: ubuntu, user, namesapace, apparmor
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (58) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, Аноним (2), 23:53, 09/10/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Может они когда-нибудь исправят ужасный suid?
     
     
  • 2.3, swarus (ok), 00:13, 10/10/2023 [^] [^^] [^^^] [ответить]  
  • +5 +/
    зачем, не используй его и всё
     
     
  • 3.75, noc101 (ok), 04:32, 11/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    а ныть как?
     
  • 2.10, Аноним (10), 05:46, 10/10/2023 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Исправил, не благодари: https://www.opennet.dev/openforum/vsluhforumID3/131681.html#157
     

  • 1.4, scriptkiddis (?), 00:53, 10/10/2023 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –7 +/
     
  • 1.5, DeerFriend (?), 01:06, 10/10/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Напомните, зачем гуглу этот доступ нужно оставлять?
     
     
  • 2.6, Bob (??), 03:14, 10/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Other applications, such as Google Chrome make use of namespaces to isolate its own processes which are at risk from attack on the internet.
    --
    rtfm, короче
     
  • 2.11, Аноним (10), 05:56, 10/10/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вкладки браузера изолируются через user namespaces.

    Не только Хрому, но ещё Электрону, Вебкиту и всем поделиям на них, а также программы на готовых тулкитах (Gtk, Qt), использующие веб-процессы. Короче, почти все программы на современном десктопе.

    Осталось только по статистике убедиться, что 100% уязвимостей эксплуатируют через JS-программы в веб-клиентах, и вся эта недоизоляция становится бесполезной. Ну, может, /bin/true станет немного безопаснее..

     
     
  • 3.71, Аноним (71), 01:51, 11/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В чём я не прав Хоть бы аргументировали минусы, что ли Мне всё равно, а окружа... большой текст свёрнут, показать
     
  • 2.22, Аноним (22), 09:27, 10/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Напомните, зачем гуглу этот доступ нужно оставлять?

    Дли шизоляции. Чтобы Хромоног творил в системе, что хотел, just au planned.

     
     
  • 3.38, Всем Анонимам Аноним (?), 12:04, 10/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Если вам не нравится изоляция одной вкладки от другой, то выключите это просто
     
     
  • 4.68, yet another anonymous (?), 22:45, 10/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    А дело не "нравится/не нравится". А в пропихивании всеми доступными и не очень способами принципиально ущербных подходов с последующей выборочной "изоляцией". Почти все довольны: выпуск очень нужных обновлений от истинных вендоров, сложность сопровождения --- сертфицированные дорогие обслуживатели, нужные люди про технологические отверстия в курсе, ну и т.д., все при деле.
     
  • 2.47, КО (?), 12:35, 10/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Кто платит - того и ботинки
     

  • 1.9, Аноним (9), 05:06, 10/10/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > возможность создавать user namespace при наличии профиля AppArmor

    Нерабочая схема, как работает эта хрень понятно двум с половиной анонам (и всем админам локалхоста на опеннете, конечно же)

     
     
  • 2.19, пох. (?), 09:02, 10/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Так тебе понимать ничего и не надо. Она просто будет через пару промежуточных итераций - работать.
    Без твоего участия.

    Схема не очень рабочая по другой причине - именно у того г... которое как раз и может послужить предварительной точкой для атаки на userns, namely хромоног, жабоскрипты и прочая дырявая by design мерзость - как раз и будут права эти userns создавать. А через bin/true много не понаатакуешь.

     
     
  • 3.21, Аноним (22), 09:25, 10/10/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Так тебе понимать ничего и не надо. Она просто будет через пару
    > промежуточных итераций - работать.
    > Без твоего участия.
    > Схема не очень рабочая по другой причине - именно у того г...
    > которое как раз и может послужить предварительной точкой для атаки на
    > userns, namely хромоног, жабоскрипты и прочая дырявая by design мерзость -
    > как раз и будут права эти userns создавать. А через bin/true
    > много не понаатакуешь.

    Короче, закуплю попкорна к релизу бубунты.

     
  • 2.49, Аноним (49), 13:15, 10/10/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Да забей на AppArmor. Просто используй SELinux.
     

  • 1.12, academiq (ok), 06:08, 10/10/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Есть ли нечто подобное для SELinux? Или это чисто решение (выборочное ограничение user namespace) для AppArmor?
     
     
  • 2.13, Аноним (10), 06:17, 10/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну, CAP_SYS_ADMIN должно быть можно выборочно заблокировать.
     
     
  • 3.67, пох. (?), 22:43, 10/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Ну, CAP_SYS_ADMIN должно быть можно выборочно заблокировать.

    Поздравляю, после перехода в user ns - он снова разблокирован.


     
  • 2.29, OpenEcho (?), 11:34, 10/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    РТФМ setcap и

    https://man7.org/linux/man-pages/man7/capabilities.7.html

     
  • 2.33, Аноним (33), 11:43, 10/10/2023 [^] [^^] [^^^] [ответить]  
  • –5 +/
    > Есть ли нечто подобное для SELinux?

    SELinux нужно перманентно отключать сразу после установки.

     
     
  • 3.44, Аноним (44), 12:23, 10/10/2023 [^] [^^] [^^^] [ответить]  
  • +4 +/
    нужно просто перекомпилить ядро с отключенной опцией MULTIUSER. Тогда в линуксе кроме рута ничего не будет, совсем как в MS-DOS!
     
     
  • 4.79, Пряник (?), 11:39, 17/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Анонимус научился выполнять menuconfig. Как мило!
     
  • 2.51, пох. (?), 13:45, 10/10/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Есть ли нечто подобное для SELinux?

    напишешь - будет. (правда в targeted mode та еще затея - впрочем, убунта вон справилась)

    > Или это чисто решение (выборочное ограничение user namespace) для AppArmor?

    убунта написала политику - для apparmor (кстати, возможно в первый раз оказалось что хоть что-то для этой системы сделать проще чем для selinux)

    тебе никто конечно не мешает сделать для selinux, но ты не сумеешь.

     

  • 1.18, Аноним (18), 09:02, 10/10/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    К чему эти нежности? Нужно просто запретить пользователю включать компьютер.
     
     
  • 2.30, OpenEcho (?), 11:36, 10/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > К чему эти нежности? Нужно просто запретить пользователю включать компьютер.

    Здрасти...

    А как же управлять тогда толпой?
    Так долго боролись чтоб мыши сами оплачивали свою клетку и вдруг - запретить...

     

  • 1.20, onanim (?), 09:18, 10/10/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    думаю, речь идёт об kernel.unprivileged_userns_clone, который во всех нормальных дистрибутивах по умолчанию выключен, и только в убунте включён, и для которого уже штук 20 local privilege escalation эксплоитов написано.
    переключение убунтой kernel.unprivileged_userns_clone из 1 в 0 заслужило целую новость и миллиард репостов на всех околоайти сайтах.
     
     
  • 2.24, Аноним (10), 10:13, 10/10/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Как раз, наоборот. Включен по умолчанию. Отключен только на hardened-ядрах и в некоторых дистрибутивах, которые никто как десктоп использовать не планировал.
    А в Убунту, как я понимаю, предлагают ограничивать использование userns белым списком через модуль AppArmor.


     
     
  • 3.27, Аноним (27), 10:39, 10/10/2023 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Ну всё понятно, Убунту под предлогом "безопасности" упрощает жизнь малвари. Видно, кто оплатил услуги, и для чего.
     
  • 2.28, Аноним (44), 11:19, 10/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > речь идёт об kernel.unprivileged_userns_clone, который во всех нормальных дистрибутивах по умолчанию выключен

    Во-первых, это устаревший sysctl. Во-вторых, его никогда не было в ядре. Это васяновский sysctl, для появления которого нужно было применить васянопатчи от васянодебиана. В-третьих, он не получил распространения в других дистрах.

     
     
  • 3.52, Аноним (52), 13:46, 10/10/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Во-первых, это устаревший sysctl

    Нет.

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

    Особого значения не имеет, так как речь идет об убунте, которая практически всё тащит из дебиана.

     
     
  • 4.55, Аноним (44), 14:08, 10/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > > Во-первых, это устаревший sysctl
    > Нет.

    Читай доки своего любимого дебьяна например:

        If you prefer to keep this feature restricted, set the sysctl:

            user.max_user_namespaces = 0

        The Debian-specific sysctl kernel.unprivileged_userns_clone=0 has
        a similar effect, but is deprecated.

    > речь идет об убунте

    То есть под "всеми нормальными дистрами" ты понимаешь только дебьян с васянопатчами.

     

  • 1.23, Аноним (23), 09:44, 10/10/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Короче, линукс идёт дорогой андроида - всё больше огораживаний. Лет через пять отберут рут - небезопасно же...
     
     
  • 2.25, Аноним (10), 10:17, 10/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Лет через пять отберут рут - небезопасно же...

    На десктопах уже давно:
    sudo usermod -aG admin,wheel $USER
    sudo passwd -l root
    ;)

     
     
  • 3.26, Anonim (??), 10:22, 10/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    И как в этой ситуации обходите "нажмите Ctrl-D или введите пароль root"?? Или у профи таких ситуаций не бывает?
     
     
  • 4.57, И это очень хороший вопрос (?), 17:41, 10/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    а действительно, как?
     
  • 4.58, пох. (?), 19:07, 10/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Да просто - переустановил винд...э...линoops и живет дальше.

     
     
  • 5.74, Аноним (71), 02:19, 11/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    За 15 лет свой Арч только один раз переустанавливал, когда сносил дуалбут с Виндой и объединял разделы в один (LUKS+Btrfs).
     
  • 4.73, Аноним (71), 02:15, 11/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Забыл ещё в /etc/sudoers{,.d/*} проверить наличие "%wheel ALL=(ALL:ALL) ALL".

    Если отвалилась графическая сессия, то профи могут загрузиться с kernel_cmdline+="systemd.unit=multi-user.target", залогиниться обычным пользователем, добавленным в группу wheel, и повысить привилегии через sudo со своим паролем.

    Если совсем всё сломали, то грузимся с LiveCD, монтируем корень, чиним из-под "живого" рута или chroot-имся обычным пользователем...

     
  • 3.32, Аноним (33), 11:42, 10/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Скоро закроют всё кроме /home/username и sudo запретят.
     
     
  • 4.35, pic (?), 11:55, 10/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Уже. Fedora Silverblue, Vanilla OS, Endless OS, и Ubuntu (GNOME) через 4 релиза.
     

  • 1.31, Аноним (33), 11:40, 10/10/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Какого шлака только не понапридумывали лишь бы не использовать стандартные права на запись,чтение,исполнение файлов.
     
     
  • 2.34, Аноним (44), 11:53, 10/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Какого шлака только не понапридумывали лишь бы не использовать MS-DOS где можно было не задумываться по поводу прав
     
     
  • 3.36, Аноним (33), 11:57, 10/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Я бы с удовольствием использовал MS-DOS если бы это было уместно в нынешних реалиях.
     
     
  • 4.37, Аноним (44), 11:58, 10/10/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Я бы с удовольствием использовал стандартные права на запись,чтение,исполнение файлов если бы это было уместно в нынешних реалиях.
     

  • 1.40, 12yoexpert (ok), 12:05, 10/10/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    повысить безопасность позволит выпиливание к хренам контейнеров
     
  • 1.56, Kuromi (ok), 16:06, 10/10/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    "Вместо полной блокировки доступа к user namespace в Ubuntu применена гибридная схема, выборочно оставляющая некоторым программам возможность создавать user namespace"

    Да не могут они заблокировать, вся защита в Firefox и Chrome на этом основана.

    Ладно, с сборками из дистрибутива проблем не будет, а с тарболлами придется возиться.

     
     
  • 2.60, пох. (?), 20:07, 10/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > "Вместо полной блокировки доступа к user namespace в Ubuntu применена гибридная схема,
    > выборочно оставляющая некоторым программам возможность создавать user namespace"

    эти некоторые программы и есть - фуфлофокс, хромоног, нода и весь остальной васянский цирк.
    > Да не могут они заблокировать, вся защита в Firefox и Chrome на
    > этом основана.

    хорошая заssshitа.

    > Ладно, с сборками из дистрибутива проблем не будет, а с тарболлами придется
    > возиться.

    наоборот - нечего возиться, им можно. А /bin/true и раньше не пользовалась.

     
     
  • 3.61, Kuromi (ok), 20:22, 10/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    >> "Вместо полной блокировки доступа к user namespace в Ubuntu применена гибридная схема,
    >> выборочно оставляющая некоторым программам возможность создавать user namespace"
    > эти некоторые программы и есть - фуфлофокс, хромоног, нода и весь остальной
    > васянский цирк.
    >> Да не могут они заблокировать, вся защита в Firefox и Chrome на
    >> этом основана.
    > хорошая заssshitа.

    И что? Разработчики браузера используют максимум фич им доступных, почему бы и нет? Думаешь из-за истерички Шаттлврота ФФ перестанет использовать неймспейсы? Вряд ли.
    Хотите тру защиты - запускайте ФФ в виртуалке в которой ничего больше нет.

     
     
  • 4.62, пох. (?), 20:27, 10/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Разработчики браузера используют максимум фич им доступных, почему бы и нет?

    ну вот потому что конкретно эта фича - чревата внезапно-рутом.

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

     
     
  • 5.63, Аноним (27), 20:41, 10/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Конкретно эта не особо, механизм изоляции работает таким образом, что получить дополнительные права не получится. Рут несколько раз был у приложений, которые используют права виртуального рута в неймспейсе.
     
     
  • 6.64, пох. (?), 20:56, 10/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    так весь фокус в том что в неймспейсе у тебя сброшены (в смысле - в исходное состояние, даже если были посброшены до clone) capabilities, и рут там тоже вполне себе может быть - причем для создания такого рута не надо иметь прав рута в системе.

    Ты не можешь конечно отмапить его в настоящего рута - но тут нам на помощь приходит очередная недоделанная проверка "а не в неймспейсе ли мы и если да то..."

     
     
  • 7.65, Аноним (27), 21:25, 10/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Так это значит, что уже есть возможность исполнять произвольный код и создавать свои неймспейсы. Но например доступа в сеть в изолированном неймспейсе не появится, придётся для начала сбежать и получить права вне изоляции. При этом, песочницы изолируют gpu-процесс, исполняющий рандомные шейдеры, у которых в противном случае будет слишком много прав (привет майнеры). И обычно контентный тоже (привет libvpx). Что является более актуальным.
     
     
  • 8.66, пох. (?), 22:41, 10/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    ну да А от кого же мы еще защищаемся-то в браузере да, привет У него уже и та... текст свёрнут, показать
     
     
  • 9.69, yet another anonymous (?), 22:58, 10/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Действительно, настойчивое проталкивание wayland-only --- с доступом к GPU и око... текст свёрнут, показать
     
  • 9.70, Аноним (27), 00:16, 11/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Так у кода в браузере есть только возможность исполнять жс вебассембли, это не т... текст свёрнут, показать
     
  • 7.72, Аноним (71), 01:58, 11/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    https://github.com/containers/bubblewrap/blob/main/bubblewrap.c
    > if (prctl (PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0) < 0) die_with_error ("prctl(PR_SET_NO_NEW_PRIVS) failed");
     

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



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

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