Bubblewrap, инструмент за създаване на приложения в изолирана среда

Bubblewrap е инструмент какво работи да организира работата на пясъчника на Linux и бягай на непривилегировано ниво на потребителско приложение. На практика Bubblewrap се използва от проекта Flatpak като междинен слой за изолиране на приложения, стартирани от софтуерни пакети.

За изолация Linux използва технологии за виртуализация на традиционни контейнери, базирани на използването на cgroups, пространства от имена, Seccomp и SELinux. За да изпълнява привилегировани операции за конфигуриране на контейнер, Bubblewrap се стартира с права на root (изпълним файл с флаг suid), последвано от нулиране на привилегията след инициализиране на контейнера.

Няма нужда да активирате потребителски пространства от имена в системата, което ви позволява да използвате собствения си набор от идентификатори в контейнери, тъй като по подразбиране не работи в много дистрибуции.

Относно Bubblewrap

Bubblewrap се позиционира като ограничена suida реализация от подмножеството на функциите на потребителски пространства за имена, за да изключите всички потребителски и обработващи идентификатори от околната среда с изключение на текущата, използвайте режимите CLONE_NEWUSER и CLONE_NEWPID.

За допълнителна защита, програми, работещи в Bubblewrap, стартират в режим PR_SET_NO_NEW_PRIVS, което забранява нови привилегии, например с флага set.

Изолирането на ниво файлова система се извършва чрез създаване на ново пространство за имена на монтиране по подразбиране, в което се създава празен корен дял с помощта на tmpfs.

Ако е необходимо, външните FS секции са прикрепени към този раздел в «монтиране – свързване»(Например, като се започне с опцията«bwrap –ro-bind / usr / usr', Разделът / usr се препраща от хоста в режим само за четене).

Мрежовите възможности са ограничени до достъп до интерфейса за обратна връзка обърната с изолиране на мрежовия стек чрез индикатори CLONE_NEWNET и CLONE_NEWUTS.

Ключовата разлика с подобния проект Firejail, което също използва setuid стартера, е това в Bubblewrap, контейнерният слой включва само минимално необходимите функции и всички усъвършенствани функции, необходими за стартиране на графични приложения, взаимодействие с работния плот и филтриране на повиквания към Pulseaudio, се извеждат отстрани на Flatpak и се изпълняват след нулиране на привилегиите.

Firejail, от друга страна, комбинира всички свързани функции в един изпълним файл, усложняващ вашия одит и поддържащ сигурността на правилното ниво.

Bubblewrap основно работи с помощта на създаване на празно пространство за имена на монтиране във временна файлова система които ще бъдат унищожени след завършване на обработката на пясъчника.

Чрез използване на превключватели потребителят може да изгради желаната среда на файлова система в пространството на имената на монтиране, като монтира връзката на желаните директории от хост системата.

Обвивка с балончета 0.4.0

В момента Bubblewrap е във версията си 0.4.0, който беше пуснат наскоро. Кодът на проекта е написан на C и се разпространява под лиценза LGPLv2 +.

Новата версия е забележителен с изпълнението на поддръжка за присъединяване на пространствата от имена и процеси съществуващи потребители (pid namespaces).

Флаговете "–userns", "–userns2" и "–pidns" са добавени за контрол на връзката на пространства от имена.

Тази функция не работи в режим set и изисква отделен режим, който може да работи без права на root, но изисква потребителските пространства от имена да бъдат активирани в системата (деактивирани по подразбиране в Debian и RHEL / CentOS) и не изключва възможността за потенциална експлоатация оставащите уязвимости на ръба на ограниченията за „потребителски имена“.

От новите функции на Bubblewrap 0.4, също така се наблюдава възможността за изграждане с musl C библиотека вместо glibc, и поддръжка за запазване на информация за пространство от имена във файл със статистика във формат JSON.

Кодът на Bubblewrap, както и документацията за него, могат да бъдат разгледани на Github, връзката е тази.


Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорен за данните: Мигел Анхел Гатон
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.