chroot и seccomp
Коротко: chroot меняет для процесса видимый корневой каталог, seccomp ограничивает, какие системные вызовы он вообще может выполнять. Оба — строительные блоки контейнеров и песочниц.
Подробнее: Они дополняют друг друга: один ограничивает видимые файлы, другой — разрешённые возможности по отношению к ядру.
Подробности
- chroot:
chroot /новый/корень программазаставляет программу видеть/новый/коренькак/. Полезно для ремонта из живой системы и для сред сборки. - Предел chroot: Сам по себе не механизм безопасности. С правами root процесс может вырваться. Поэтому контейнеры добавляют пространства имён (namespace).
- seccomp: Фильтр (seccomp-bpf) разрешает или запрещает отдельные системные вызовы либо убивает процесс при запрещённом.
- Применение: Песочницы браузеров, профиль Docker по умолчанию, systemd (
SystemCallFilter=). - Принцип: Кому нужны
openиread, тому не нужныptraceилиmount. Это соответствует принципу наименьших привилегий.
См. также: Docker