Seccomp (Secure Computing Mode)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 13:39, 24 декабря 2015.

Seccomp (сокращённо от secure computing mode) средство безопасности компьютера, который предоставляет механизм изолирования приложений в ядре Linux; Он был объединён в ядро Linux, магистраль в версии ядра 2.6.12, который был выпущен в Марте, 8, 2005.[1] seccomp разрешает процессу односторонний переход в «безопасные» состояние, где он не может делать каких-либо системные вызовы, за исключением exit(), sigreturn(), read() and write() для уже открытых файлов дескрипторов. Как только он пытается вызвать другие процессы, ядро завершит процесс с сигналом SIGKILL. В этом смысле он не виртуализирует системные ресурсы, но полностью изолирует процесс от них. Seccomp режим включен через вызов системы с помощью PR_SET_SECCOMP аргумента, или (с версии Linux kernel 3.17[2]) через системный вызов.[3] seccomp режим использовался для записи в файл,/proc/self/seccomp, но этот метод был удалён в пользу prctl().[4] В некоторых версиях ядра, seccomp отключает RDTSC x 86 инструкции. [5]

seccomp-bpf

seccomp-bpf это дополнение к seccomp[6], которое позволяет фильтровать вызовы системы, используя настраиваемые политики, реализованные с помощью Berkeley-правил фильтрования пакетов. Он используется OpenSSH и vsftpd так же как и Google Chrome/Chromium веб-браузер в Chrome OS и Линуксе.[7]

Использование

  • seccomp был впервые разработан Андреа Арканджели в январе 2005 года для использования в общественной сетке и первоначально был задуман как средство безопасно запущенные ненадежных вычислительных программ.\
  • CPUShare Арканджели было единственным известным пользователем этой фичи.[8] Writing in February 2009, Linus Torvalds expresses doubt whether seccomp is actually used by anyone.[9] However, a Google engineer replied that Google is exploring using seccomp for sandboxing its Chrome web browser.[10][11]
  • Как версия для Chrome20, seccomp-bpf использовалась, чтобы изолировать Adobe Flash Player.[12]
  • Как версия для Chrome, seccomp-bpf использовалась, чтобы изолировать отрисовщики.[13]
  • Vsftpd использует виртулизацию seccomp-bpf как версию 3.0.0.[14]
  • OpenSSH поддерживал seccomp-bpf с версии 6.0.[15]
  • Mbox использует ptrace одновременно с seccomp-bpf, чтобы создать защищённую песочницу с меньшими издержками, чем ptrace только [16]
  • LXD, который является "Низкоуровневой оболочой" для контейнеров[17][18]
  • Firefox и FirefoxOS используют seccomp-bnf песочницу для дочерних процессов и некоторых плагинов[19][20]
  • Cjdns использует seccomp БНФ как один из ее механизмов песочнице, фильтрация системных вызовов, которую он выполняет в системе Linux и строго ограничить его доступ к внешнему миру.[21]

Ссылки

  1. PATCH seccomp: безопасная поддержка вычислений
  2. Linux kernel 3.17, Section 11. Security
  3. Seccomp: add "seccomp" syscall |work=kernel/git/torvalds/linux.git - Linux kernel source tree
  4. title =PATCH 1 of 2 move seccomp from /proc to a prctl
  5. Счетчик временной метки отключает странности в ядре Linux
  6. Ещё один один новый подход к seccomp
  7. Безопаснее площадка для вашего Chrome ОС Linux и визуализации
  8. Re: stable PATCH 2/2 x86-64: seccomp: fix 32/64 syscall hole
  9. Re: PATCH 2/2 x86-64: seccomp: fix 32/64 syscall hole
  10. Re: PATCH 2/2 x86-64: seccomp: fix 32/64 syscall hole
  11. Re: PATCH 2/2 x86-64: seccomp: fix 32/64 syscall hole
  12. Chrome 20 on Linux and Flash sandboxing
  13. Introducing Chrome's next-generation Linux sandbox
  14. vsftpd-3.0.0 and seccomp filter sandboxing is here!
  15. Openssh 6.0 выпущенные заметки
  16. MBOX
  17. LXD an "hypervisor" for containers (based on liblxc)
  18. Where We're Going With LXD
  19. Firefox Seccomp песочница
  20. Firefox Seccomp песочница
  21. Добавлена SECCOMP «песочница» и новый вызов администратора API для проверки, если правильно удаляются разрешения

Источники