секкомп
Эту статью необходимо обновить . ( май 2012 г. ) |
Оригинальный автор(ы) | Андреа Арканджели |
---|---|
Начальная версия | 8 марта 2005 г |
Написано в | С |
Операционная система | Линукс |
Тип | Песочница |
Лицензия | Стандартная общественная лицензия GNU |
Веб-сайт | код |
seccomp (сокращение от безопасных вычислений [1] ) — средство компьютерной безопасности в ядре Linux . seccomp позволяет процессу совершить односторонний переход в «безопасное» состояние, в котором он не может выполнять никаких системных вызовов , кроме exit()
, sigreturn()
, read()
и write()
к уже открытым файловым дескрипторам . Если оно попытается выполнить какие-либо другие системные вызовы, ядро либо просто зарегистрирует событие, либо завершит процесс с помощью SIGKILL или SIGSYS . [2] [3] В этом смысле он не виртуализирует ресурсы системы, а полностью изолирует от них процесс.
Режим seccomp включается через PR_SET_SECCOMP
аргумент, или (поскольку ядро Linux 3.17 [4] ) через системный вызов. [5] режим seccomp раньше включался путем записи в файл, /proc/self/seccomp
, но этот метод был удален в пользу prctl()
. [6] В некоторых версиях ядра seccomp отключает RDTSC
Инструкция x86 , которая возвращает количество циклов процессора, прошедших с момента включения питания, и используется для высокоточной синхронизации. [7]
seccomp-bpf — это расширение seccomp. [8] это позволяет фильтровать системные вызовы с помощью настраиваемой политики, реализованной с помощью правил фильтра пакетов Беркли . Он используется OpenSSH. [9] и vsftpd , а также веб-браузеры Google Chrome/Chromium в ChromeOS и Linux. [10] (В этом отношении seccomp-bpf обеспечивает аналогичную функциональность, но с большей гибкостью и более высокой производительностью, чем более старая версия systrace , которая, похоже, больше не поддерживается в Linux .)
Некоторые считают, что seccomp сравним с OpenBSD Deposit(2) и FreeBSD capsicum (4). [ нужна цитата ] .
История [ править ]
seccomp был впервые разработан Андреа Арканджели в январе 2005 года для использования в общедоступных сетевых вычислениях и изначально задумывался как средство безопасного запуска ненадежных программ, связанных с вычислениями. Он был объединен с основной веткой ядра Linux в версии ядра 2.6.12, выпущенной 8 марта 2005 года. [11]
Программное обеспечение, использующее seccomp или seccomp-bpf [ править ]
- Android использует фильтр seccomp-bpf в зиготе, начиная с Android 8.0 Oreo. [12]
- основаны systemd Параметры песочницы на seccomp. [13]
- QEMU , быстрый эмулятор, основной компонент современной виртуализации, вместе с KVM использует параметр seccomp.
--sandbox
[14] - Docker – программное обеспечение, позволяющее запускать приложения внутри изолированных контейнеров. Docker может связать профиль seccomp с контейнером, используя команду
--security-opt
параметр. - CPUShare Арканджели какое-то время был единственным известным пользователем seccomp. [15] В своей статье в феврале 2009 года Линус Торвальдс выразил сомнение в том, что seccomp действительно кем-то используется. [16] Однако инженер Google ответил, что Google изучает возможность использования seccomp для изолированной программной среды своего веб-браузера Chrome . [17] [18]
- Firejail — это программа-песочница Linux с открытым исходным кодом, которая использует пространства имен Linux , Seccomp и другие функции безопасности на уровне ядра для изолированной среды приложений Linux и Wine . [19]
- Начиная с версии Chrome 20, seccomp-bpf используется для изолированной среды Adobe Flash Player . [20]
- Начиная с версии Chrome 23, seccomp-bpf используется для изоляции средств визуализации. [21]
- Snap определяет форму песочницы своего приложения, используя «интерфейсы», которые Snapd преобразует в seccomp, AppArmor и другие конструкции безопасности. [22]
- vsftpd использует изолированную программную среду seccomp-bpf начиная с версии 3.0.0. [23]
- OpenSSH поддерживает seccomp-bpf начиная с версии 6.0. [9]
- Mbox использует ptrace вместе с seccomp-bpf для создания безопасной песочницы с меньшими затратами, чем при использовании только ptrace. [24]
- LXD, » Ubuntu « гипервизор для контейнеров. [25] [26]
- Firefox и Firefox OS , использующие seccomp-bpf [27] [28]
- Tor поддерживает seccomp начиная с версии 0.2.5.1-альфа. [29]
- Lepton, инструмент сжатия JPEG , разработанный Dropbox, использует seccomp. [30]
- Kafel — это язык конфигурации, который преобразует читаемые политики в байт-код seccompb-bpf. [31]
- ОС Subgraph использует seccomp-bpf [32] [33]
- Flatpak использует seccomp для изоляции процессов [34]
- Bubblewrap — это легкое приложение-песочница, разработанное на платформе Flatpak. [35]
- мини-тюрьма [36] использует seccomp для изоляции процессов [37]
- SydBox использует seccomp-bpf [38] для улучшения времени выполнения и безопасности песочницы ptrace, используемой для сборок пакетов песочницы в дистрибутиве Exherbo Linux.
- File, программа Unix для определения типов файлов, использует seccomp для ограничения среды выполнения. [39]
- Zathura , минималистичный просмотрщик документов, использует фильтр seccomp для реализации различных режимов песочницы. [40]
- Tracker , приложение индексирования и предварительного просмотра для среды рабочего стола GNOME, использует seccomp для предотвращения автоматического использования уязвимостей синтаксического анализа в медиафайлах. [41]
Ссылки [ править ]
- ^ Linux программиста Руководство – Системные вызовы : «Системный вызов seccomp() работает в состоянии безопасных вычислений (seccomp)» –
- ^ Корбет, Джонатан (2 сентября 2015 г.). «Обзор секкомпа» . лун . Проверено 5 октября 2017 г.
- ^ «Документация/prctl/seccomp_filter.txt» . Проверено 5 октября 2017 г.
- ^ «Ядро Linux 3.17, Раздел 11. Безопасность» . kernelnewbies.org . 05.10.2013 . Проверено 31 марта 2015 г.
- ^ «seccomp: добавить системный вызов «seccomp»» . kernel/git/torvalds/linux.git — дерево исходного кода ядра Linux . ядро.орг . 25 июня 2014 г. Проверено 22 августа 2014 г.
- ^ Арканджели, Андреа (14 июня 2007 г.). «[ИСПРАВЛЕНИЕ 1 из 2] переместите seccomp из /proc в prctl» . Проверено 2 августа 2013 г.
- ^ Тиннес, Жюльен (28 мая 2009 г.). «Счетчик временных меток, отключающий странности в ядре Linux» . cr0 блог . Проверено 2 августа 2013 г.
- ^ Корбет, Джонатан (11 января 2012 г.). «Еще один новый подход к seccomp» . лун . Проверено 2 августа 2013 г.
- ^ Перейти обратно: а б «Примечания к выпуску Opensh 6.0» . Проверено 14 октября 2013 г.
- ^ Тиннес, Жюльен (19 ноября 2012 г.). «Более безопасная площадка для ваших средств визуализации Linux и Chrome OS» . Блог Chrome . Проверено 2 августа 2013 г.
- ^ «[ИСПРАВЛЕНИЕ] seccomp: поддержка безопасных вычислений» . История ядра Linux . Git-репозитории Kernel.org. 8 марта 2005 г. Архивировано из оригинала 15 апреля 2013 г. Проверено 2 августа 2013 г.
- ^ «Фильтр Seccomp в Android O» . Блог разработчиков Android .
- ^ «systemd.exec — конфигурация среды выполнения» . сайт freedesktop.org . Проверено 14 октября 2017 г.
- ^ Отубо, Эдуардо (15 сентября 2017 г.). «Запрос на включение новой модели QEMU Sandboxing» . Архив списка рассылки qemu-devel .
- ^ ван де Вен, Арьян (28 февраля 2009 г.). «Re: [стабильная] [ИСПРАВЛЕНИЕ 2/2] x86-64: seccomp: исправлена дыра в системных вызовах 32/64» . Список рассылки ядра Linux . Проверено 2 августа 2013 г.
- ^ Торвальдс, Линус (28 февраля 2009 г.). «Re: [ИСПРАВЛЕНИЕ 2/2] x86-64: seccomp: исправлена дыра в системных вызовах 32/64» . Список рассылки ядра Linux . Проверено 2 августа 2013 г.
- ^ Гучке, Маркус (6 мая 2009 г.). «Re: [ИСПРАВЛЕНИЕ 2/2] x86-64: seccomp: исправлена дыра в системных вызовах 32/64» . Проверено 2 августа 2013 г.
- ^ Гучке, Маркус (6 мая 2009 г.). «Re: [ИСПРАВЛЕНИЕ 2/2] x86-64: seccomp: исправлена дыра в системных вызовах 32/64» . Список рассылки ядра Linux . Проверено 2 августа 2013 г.
- ^ «Огненная тюрьма» . Огненная тюрьма . Проверено 26 ноября 2016 г.
- ^ Эванс, Крис (4 июля 2012 г.). «Chrome 20 в Linux и песочница Flash» . Проверено 2 августа 2013 г.
- ^ Тиннес, Жюльен (6 сентября 2012 г.). «Представляем Chrome-песочницу Linux нового поколения» . cr0 блог . Проверено 2 августа 2013 г.
- ^ «Привязка политики безопасности» . Архивировано из оригинала 4 февраля 2017 г. Проверено 3 февраля 2017 г.
- ^ Эванс, Крис (9 апреля 2012 г.). «vsftpd-3.0.0 и песочница фильтра seccomp уже здесь!» . Проверено 2 августа 2013 г.
- ^ «МБОКС» . Проверено 20 мая 2014 г.
- ^ «LXD — «гипервизор» для контейнеров (на основе liblxc)» . 4 ноября 2014 года . Проверено 8 ноября 2014 г.
- ^ «Куда мы идем с LXD» . Проверено 8 ноября 2014 г.
- ^ Дестюндер, Гийом (13 сентября 2012 г.). «Песочница Firefox Seccomp» . Мозилла Багзилла . Проверено 13 января 2015 г.
- ^ Дестюндер, Гийом (13 сентября 2012 г.). «Песочница Firefox Seccomp» . Мозилла Вики . Проверено 13 января 2015 г.
- ^ «Журнал изменений Тора» .
- ^ «Сжатие изображений Lepton: экономия 22% без потерь на изображениях со скоростью 15 МБ/с» . Технический блог Dropbox . Проверено 15 июля 2016 г.
- ^ «Kafel: язык и библиотека для определения политик фильтрации системных вызовов» .
- ^ «Подграф ОС» . Подграф . Проверено 18 декабря 2016 г.
- ^ «LoganCIJ16: Будущее ОС» . YouTube . Архивировано из оригинала 21 декабря 2021 г. Проверено 18 декабря 2016 г.
- ^ «Модель безопасности Flatpak – часть 1: основы» . Проверено 21 января 2017 г.
- ^ «пузырчатая пленка» . Проверено 14 апреля 2018 г.
- ^ «Песочница Chromium OS — проекты Chromium» .
- ^ «Мини-тюрьма [LWN.net]» . lwn.net . Проверено 11 апреля 2017 г.
- ^ «ядро/трассировка/use_seccomp» . dev.exherbo.org . Проверено 31 мая 2021 г.
- ^ «Песочница файлового приложения» . Гитхаб .
- ^ «Реализация Zathura seccomp» .
- ^ «Реализация seccomp трекера Gnome» .
Внешние ссылки [ править ]
- Официальный сайт (в архиве)
- Песочница Google Chromium , LWN.net , август 2009 г., Джейк Эдж
- seccomp-nurse — среда песочницы, основанная на seccomp
- Documentation/prctl/seccomp_filter.txt , часть ядра Linux. документации
- Подробная информация о безопасности программного обеспечения Linux: предотвращение и устранение ошибок безопасности