Випуск Bubblewrap 0.12, прошарки для створення ізольованих оточень

Опубліковано нову версію інструментарію для організації роботи ізольованих оточень Bubblewrap 0.12, що використовується для обмеження окремих програм непривілейованих користувачів. На практиці Bubblewrap застосовується проектом Flatpak як прошарок для ізоляції програм, що запускаються з пакетів. Для ізоляції використовуються традиційні Linux технології контейнерної віртуалізації, засновані на використанні cgroups, просторів імен (namespaces), Seccomp та SELinux. Код проекту написаний мовою Сі та поширюється під ліцензією LGPLv2.1+.

Ізоляція на рівні файлової системи проводиться через створення за промовчанням нового простору імен точок монтування (mount namespace), в якому за допомогою tmpfs створюється порожній кореневий розділ. У цьому розділі при необхідності прикріплюються розділи зовнішньої ФС у режимі «mount —bind» (наприклад, при запуску c опцією «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