Seccomp: различия между версиями
Vt (обсуждение | вклад) (Новая страница: «{{note|Статья в процессе написания.}} Seccomp — специфическая для Линукс технология повышения безопасности выполнения программ через ''сандбоксинг сисколлов'' - [https://en.wikipedia.org/wiki/Seccomp seccomp]. (В не-Линукс системах сходные технологии это pledge, capsicum.) Преимущество т...») |
Vt (обсуждение | вклад) |
||
(не показано 5 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
{{note|Статья в процессе написания.}} | {{note|Статья в процессе написания.}} | ||
Seccomp — специфическая для Линукс технология повышения безопасности выполнения программ через ''сандбоксинг сисколлов'' | [https://en.wikipedia.org/wiki/Seccomp seccomp] — специфическая для Линукс технология повышения безопасности выполнения программ через ''сандбоксинг сисколлов''. (В не-Линукс системах сходные технологии это pledge, capsicum.) | ||
Преимущество технологии в том, что её может применять даже пользовательский процесс (а не только рутовый как в некоторых других технологиях) для снижения рисков взлома при доступе к не доверенным данным. | Преимущество технологии в том, что её может применять даже пользовательский процесс (а не только рутовый как в некоторых других технологиях) для снижения рисков взлома при доступе к не доверенным данным. | ||
Строка 10: | Строка 10: | ||
= Поддержка seccomp добавлена на уровне апстрима = | = Поддержка seccomp добавлена на уровне апстрима = | ||
* '''QEMU''' (по умолчанию выключено, включается опцией <code>-sandbox</code>). | * '''QEMU''' (по умолчанию выключено, включается опцией <code>-sandbox</code>). | ||
* '''systemd''' имеет много возможностей ограничивать привилегии запускаемого ''сервиса''. Seccomp доступен через [https://www.freedesktop.org/software/systemd/man/systemd.exec.html systemd.exec] параметр <code>SystemCallFilter=</code>. | * '''systemd''' имеет много возможностей ограничивать привилегии запускаемого ''сервиса''. Seccomp доступен через [https://www.freedesktop.org/software/systemd/man/systemd.exec.html systemd.exec] параметр <code>SystemCallFilter=</code>. | ||
Строка 16: | Строка 17: | ||
* '''man''' ... Отключается через переменную окружения <code>MAN_DISABLE_SECCOMP</code>. | * '''man''' ... Отключается через переменную окружения <code>MAN_DISABLE_SECCOMP</code>. | ||
= Поддержка seccomp | = Поддержка seccomp добавлена в Альт = | ||
* В пакете | Методология — "белый список" (разрешены только нужные для работы программы сисколлы остальные запрещены), ''если возможно'', запрещено чтение/запись любых файлов и запуск процессов. | ||
* В пакете {{pkg|psmisc}} во всех утилитах ('''pstree''', '''killall''' и т.д.) seccomp включен по умолчанию. Причина добавления — доступ ко всем процессам в системе через /proc, для того чтоб не доверенные процессы не могли эксплуатировать неизвестную уязвимость в этих утилитах. | |||
* В утилите '''file''' seccomp включен по умолчанию (отключается через опции <code>-S</code>, <code>--no-sandbox</code> или переменную окружения <code>SECCOMP_DEFAULT_ACTION=allow</code>) — запрещена запись в файлы и запуск процессов. Причина добавления — утилита используется для определения типа неизвестных файлов в том числе (и скорее всего) не доверенных. [В апстриме есть попытка самостоятельного добавления seccomp, но она была не завершена (и не сопровождается — новые сисколлы не добавляются в список), поэтому этот функционал не используется в других дистрибутивах.] | |||
* В утилите '''wget''' (пакет {{pkg|wget1}}) seccomp включен по умолчанию (отключается через переменную окружения <code>SECCOMP_DEFAULT_ACTION=allow</code>). Причина добавления — доступ к Веб, что в принципе не доверенный источник данных. | |||
[[Категория:Безопасность]] | [[Категория:Безопасность]] |
Текущая версия от 17:04, 4 июля 2023
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 включен по умолчанию (отключается через опции
-S
,--no-sandbox
или переменную окруженияSECCOMP_DEFAULT_ACTION=allow
) — запрещена запись в файлы и запуск процессов. Причина добавления — утилита используется для определения типа неизвестных файлов в том числе (и скорее всего) не доверенных. [В апстриме есть попытка самостоятельного добавления seccomp, но она была не завершена (и не сопровождается — новые сисколлы не добавляются в список), поэтому этот функционал не используется в других дистрибутивах.] - В утилите wget (пакет wget1) seccomp включен по умолчанию (отключается через переменную окружения
SECCOMP_DEFAULT_ACTION=allow
). Причина добавления — доступ к Веб, что в принципе не доверенный источник данных.