Seccomp
Seccomp — специфическая для Линукс технология повышения безопасности выполнения программ через сандбоксинг сисколлов - seccomp. (В не-Линукс системах сходные технологии это pledge, capsicum.)
Преимущество технологии в том, что её может применять даже пользовательский процесс (а не только рутовый как в некоторых других технологиях) для снижения рисков взлома при доступе к не доверенным данным.
Например, с помощью технологии можно полностью запретить — запись в файлы данному процессу, чтение из любых файлов, доступ к опасным сисколлам типа ptrace, запуск других программ (execve), ограничить доступ к ненужным сисколлам (для уменьшение поверхности атаки).
Однако, так как seccomp это своего рода фаервол для сисколлов (и их параметров) один лишь факт применения этой технологии не гарантирует полную защиту — степень защищенности зависит от того как она применяется — какие сисколлы ограничиваются, в какой момент выполнения начала применяться защита, есть ли сопутствующие технологии повышающие эффективность этой (типа privilege separation).
Поддержка seccomp добавлена на уровне апстрима
- QEMU (по умолчанию выключено, включается опцией
-sandbox
). - systemd имеет много возможностей ограничивать привилегии запускаемого сервиса. Seccomp доступен через systemd.exec параметр
SystemCallFilter=
. - В Docker seccomp включен по умолчанию и отключается опцией
--security-opt seccomp=unconfined
или--privileged
. - В OpenSSH seccomp включен по умолчанию для некоторых его процессов участвующих в privilege separation. Он не включен для пользовательской сессии.
- man ... Отключается через переменную окружения
MAN_DISABLE_SECCOMP
.
Поддержка seccomp добавлена в Альт
- В пакете psmisc во всех утилитах (pstree, killall и т.д.) seccomp включен по умолчанию. Причина добавления — доступ ко всем процессам в системе через /proc, для того чтоб не доверенные процессы не могли эксплуатировать неизвестную уязвимость в этих утилитах.
- В утилите file seccomp включен по умолчанию (отключается через переменную окружения
SECCOMP_DEFAULT_ACTION=allow
). Причина добавления — утилита используется для определения типа неизвестных файлов в том числе и не доверенных.