Все по песочницам!
• Представьте, что вам нужно запустить некоторый
процесс Linux в
изолированной среде. Так, чтобы он
не смог нанести вред системе, на которой запускается. Какие инструменты мы используем в таких случаях? Первое, что приходит в голову, это технологии виртуализации или контейнеризации. Но что, если нам нужно что-то более
легковесное и
простое в использовании?
Bubblewrap — это утилита командной строки, которая является одним из проектов сообщества Containers (знаменито авторством таких инструментов, как
Podman, Buildah, Skopeo и др.).
• Когда может быть полезен:
Невысокие требования к изоляции процесса и системы;
Недопустимы накладные расходы как у более сложных средств изоляции;
Тестирование (поведения) программы в разных условиях эксплуатации;
Запуск программ/скриптов/кода, полученных из ненадежных источников;
Лимитирование расхода ресурсов для отдельно взятого процесса;
Изменение структуры файловой системы для запускаемого процесса.
• Стоит сказать, что bubblewrap — это не то ПО, которое предоставляет готовую "песочницу" с определенной политикой безопасности. В некоторых вариантах использования bubblewrap требуется граница безопасности между изолированной средой и реальной системой; в других вариантах использования требуется возможность изменять расположение файловой системы для процессов внутри изолированной среды, но не ставится цель создания границы безопасности.
В результате уровень защиты между изолированными процессами и хост-системой определяется аргументами, передаваемыми bubblewrap.
• Таким образом, используя аргументы командной строки,
вы сами определяете уровень изоляции запускаемого процесса. При этом под капотом Bubblewrap использует стандартные средства Linux, которые
не требуют повышения привилегий пользователя:
chroot,
clone,
seccomp,
cgroups,
landlock.
• Основные плюсы:
Не требуются root-привилегии;
Изолирует работу только одного процесса;
Может использоваться для изоляции приложений с графическим UI;
Предоставляет большой спектр настроек лимитирования;
Простая установка и использование;
Низкие накладные расходы на изоляцию.
• Основной минус — это то, что ограничение на ресурсы системы устанавливаются только с использованием
cgroup. Это значит, что для полноценной работы bwrap в Docker/Kubernetes-контейнере последний придется запустить в
privileged-режиме!
https://github.com/containers/bubblewrap
• Дополнительно:
•
Firejail — гибкий и мощный инструмент изоляции, который не просто контролирует доступ к файловой системе, а полностью отрезает приложение от основной системы с помощью механизма
Linux Namespaces. Подробнее тут:
@it_secur1053
#Linux #Песочница
Обсуждение 0
Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.
Обсудить в Telegram