Релиз на Bubblewrap 0.12, прослойка за създаване на изолирани среди

Публикувана нова версия инструмента за организиране на работа в изолирани средища Bubblewrap 0.12, използван за ограничаване на отделни приложения на непривилегировани потребители. На практика Bubblewrap се прилага от проекта Flatpak като слой за изолация на стартираните приложения от пакети. За изолация се използват традиционните за Linux технологии на контейнерната виртуализация, основаващи се на cgroups, прoстранства на имена (namespaces), Seccomp и SELinux. Кодът на проекта е написан на C и се разпространява под лиценз LGPLv2.1+.

Изолацията на ниво файлова система се извършва чрез създаване по подразбиране на ново пространство на имена на точки на монтиране (mount namespace), в което с помощта на tmpfs се създава празен коренов раздел. В този раздел при необходимост се прикрепят раздели от външна файлова система в режим „mount —bind“ (например, при стартиране с опция „bwrap —ro-bind /usr /usr“, разделът /usr се прехвърля от основната система в режим само за четене). Мрежовите възможности се ограничават до достъпа до loopback интерфейса с изолация на мрежовия стек чрез флаговете CLONE_NEWNET и CLONE_NEWUTS.

За изключване на всички ненужни идентификатори на потребители и процеси от създаваното изолирано средище могат да се използват режимите CLONE_NEWUSER (user namespace) и CLONE_NEWPID (PID namespace), а за забрана на получаването на нови привилегии се прилага режим PR_SET_NO_NEW_PRIVS. За получаване на необходимите привилегии се използва „user namespace“.

В новото издание:

  • Лицензът на кода е променен от LGPL 2.0+ на LGPL 2.1+.
  • Прекратена е поддръжката на компилирането под формата на изпълним файл, получаващ допълнителни привилегии чрез флага suid root. Наличието на поддръжка на „user namespace“ в системата е задължително. Причината за това е трудоемкостта на поддържането на вариант с флага suid на фона на широко разпространената поддръжка на „user namespace“ в дистрибуциите.
  • Добавена е опция „—not-a-security-boundary“, при активирането на която някои сривове при настройка на изолирано sandbox средище, като повторно монтиране на подраздел, не водят до аварийно завършване.
  • Добавена е опционална компилация „assume_kernel“, която деактивира осигуряването на обратно съвместимост с ядра на Linux, по-стари от посочената версия. Например, посочването на версии 5.6.0+ ще доведе до изключване на алтернативната реализация на функционалността „openat2(RESOLVE_IN_ROOT)“.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster