Seccomp - Seccomp
Эта статья должна быть обновлено.Май 2012 г.) ( |
Оригинальный автор (ы) | Андреа Арканджели |
---|---|
изначальный выпуск | 8 марта 2005 г. |
Написано в | C |
Операционная система | Linux |
Тип | Песочница |
Лицензия | Стандартная общественная лицензия GNU |
Интернет сайт | код |
seccomp (Короче для безопасный режим вычислений) это компьютерная безопасность объект в Ядро Linux. seccomp позволяет процесс сделать односторонний переход в "безопасное" состояние, в котором он не может системные вызовы Кроме выход()
, sigreturn ()
, читать()
и записывать()
уже открывать файловые дескрипторы. Если он попытается выполнить какие-либо другие системные вызовы, ядро завершит процесс с СИГКИЛЛ или SIGSYS.[1][2] В этом смысле это не виртуализировать ресурсы системы, но полностью изолирует процесс от них.
режим seccomp включается через PR_SET_SECCOMP
аргумент, или (начиная с ядра Linux 3.17[3]) через системный вызов.[4] Режим seccomp раньше включался записью в файл, / proc / self / seccomp
, но этот метод был удален в пользу prctl ()
.[5] В некоторых версиях ядра seccomp отключает RDTSC
x86 инструкция, которая возвращает количество циклов процессора, прошедших с момента включения, используемая для высокоточного отсчета времени.[6]
seccomp-bpf является расширением seccomp[7] который позволяет фильтровать системные вызовы с помощью настраиваемой политики, реализованной с использованием Пакетный фильтр Беркли правила. Он используется OpenSSH и vsftpd а также Google Хром / Хром веб-браузеры на Chrome OS и Linux.[8] (В этом отношении seccomp-bpf обеспечивает аналогичную функциональность, но с большей гибкостью и более высокой производительностью, чем более старые Systrace - который, похоже, больше не поддерживается для Linux.)
История
seccomp был впервые разработан Андреа Арканджели в январе 2005 года для публичного использования. сеточные вычисления и изначально задумывался как средство безопасной работы ненадежный вычислительные программы. Он был объединен с Основная линия ядра Linux в версии ядра 2.6.12, выпущенной 8 марта 2005 года.[9]
Программное обеспечение с использованием seccomp или seccomp-bpf
- Android использует фильтр seccomp-bpf в зиготе, поскольку Android 8.0 Орео.[10]
- systemd с песочница варианты на основе seccomp.[11]
- QEMU, Quick Emulator, ключевой компонент современной виртуализации вместе с KVM использует seccomp для параметра
- песочница
[12] - Докер - программа, позволяющая запускать приложения внутри изолированных контейнеров. Docker может связать профиль seccomp с контейнером с помощью
--security-opt
параметр. - CPUShare от Arcangeli какое-то время был единственным известным пользователем seccomp.[13] Написав в феврале 2009 г., Линус Торвальдс выражает сомнение, действительно ли seccomp кем-либо используется.[14] Однако Google инженер ответил, что Google изучает возможность использования seccomp для песочница его Хром веб-браузер.[15][16]
- Firejail это программа-песочница Linux с открытым исходным кодом, которая использует Пространства имен Linux, Seccomp и другие функции безопасности на уровне ядра для изолированной среды Linux и Вино Приложения.[17]
- Начиная с версии Chrome 20, seccomp-bpf используется для песочницы. Adobe Flash Player.[18]
- Начиная с версии Chrome 23, seccomp-bpf используется для изолирования рендереров.[19]
- Щелчок указать форму песочницы своего приложения с помощью «интерфейсов», которые snapd преобразует в seccomp, AppArmor и другие конструкции безопасности[20]
- vsftpd использует песочницу seccomp-bpf начиная с версии 3.0.0.[21]
- OpenSSH поддерживает seccomp-bpf с версии 6.0.[22]
- Mbox использует ptrace вместе с seccomp-bpf для создания безопасной песочницы с меньшими накладными расходами, чем только ptrace.[23]
- LXD, an Ubuntu "гипервизор "для контейнеров[24][25]
- Fire Fox и ОС Firefox, которые используют seccomp-bpf[26][27]
- Tor поддерживает seccomp начиная с версии 0.2.5.1-alpha[28]
- Лептон, а JPEG инструмент сжатия, разработанный Dropbox использует seccomp[29]
- Kafel - это язык конфигурации, который преобразует читаемые политики в seccompb-bpf. байт-код[30]
- Подграф ОС использует seccomp-bpf[31][32]
- Flatpak использует seccomp для изоляция процесса[33]
- Bubblewrap - это легкое приложение-песочница, разработанное из Flatpak[34]
- минихейл[35] использует seccomp для изоляции процесса[36]
Рекомендации
- ^ Корбет, Джонатан (02.09.2015). "Обзор seccomp". lwn. Получено 2017-10-05.
- ^ "Документация / prctl / seccomp_filter.txt". Получено 2017-10-05.
- ^ «Ядро Linux 3.17, раздел 11. Безопасность». kernelnewbies.org. 2013-10-05. Получено 2015-03-31.
- ^ "seccomp: добавить" seccomp "системный вызов". kernel / git / torvalds / linux.git - дерево исходных текстов ядра Linux. kernel.org. 2014-06-25. Получено 2014-08-22.
- ^ Арканджели, Андреа (14 июня 2007 г.). "[ПАТЧ 1 из 2] переместить seccomp из / proc в prctl". Получено 2013-08-02.
- ^ Тиннес, Жюльен (28 мая 2009 г.). «Счетчик отметок времени, отключающий странности в ядре Linux». cr0 блог. Получено 2013-08-02.
- ^ Корбет, Джонатан (11 января 2012 г.). «Еще один новый подход к seccomp». lwn. Получено 2013-08-02.
- ^ Тиннес, Жюльен (19 ноября 2012 г.). «Более безопасная игровая площадка для средств визуализации Linux и Chrome OS». В Хром Блог. Получено 2013-08-02.
- ^ «[PATCH] seccomp: поддержка безопасных вычислений». История ядра Linux. Репозитории Kernel.org git. 2005-03-08. Архивировано из оригинал на 2013-04-15. Получено 2013-08-02.
- ^ «Фильтр Seccomp в Android O». Блог разработчиков Android.
- ^ "systemd.exec - Конфигурация среды выполнения". freedesktop.org. Получено 2017-10-14.
- ^ Отубо, Эдуардо (15.09.2017). "QEMU Sandboxing new model pull request". qemu-devel архив списка рассылки.
- ^ ван де Вен, Арьян (28 февраля 2009 г.). "Re: [стабильный] [PATCH 2/2] x86-64: seccomp: исправить дыру в системном вызове 32/64". Список рассылки ядра Linux. Получено 2013-08-02.
- ^ Торвальдс, Линус (28 февраля 2009 г.). "Re: [PATCH 2/2] x86-64: seccomp: fix 32/64 syscall hole". Список рассылки ядра Linux. Получено 2013-08-02.
- ^ Гучке, Маркус (06.05.2009). "Re: [PATCH 2/2] x86-64: seccomp: fix 32/64 syscall hole". Получено 2013-08-02.
- ^ Гучке, Маркус (06.05.2009). "Re: [PATCH 2/2] x86-64: seccomp: fix 32/64 syscall hole". Список рассылки ядра Linux. Получено 2013-08-02.
- ^ "Firejail". Firejail. Получено 2016-11-26.
- ^ Эванс, Крис (2012-07-04). «Chrome 20 в Linux и песочница Flash». Получено 2013-08-02.
- ^ Тиннес, Жюльен (06.09.2012). «Представляем песочницу Chrome для Linux нового поколения». cr0 блог. Получено 2013-08-02.
- ^ «Политика безопасности Snap». Архивировано из оригинал на 2017-02-04. Получено 2017-02-03.
- ^ Эванс, Крис (2012-04-09). "VSftpd-3.0.0 и песочница фильтров seccomp уже здесь!". Получено 2013-08-02.
- ^ «Примечания к выпуску Openssh 6.0». Получено 2013-10-14.
- ^ «MBOX». Получено 2014-05-20.
- ^ "LXD" гипервизор "для контейнеров (на основе liblxc)". Получено 2014-11-08.
- ^ "Куда мы идем с LXD". Получено 2014-11-08.
- ^ Дестейндер, Гийом (13 сентября 2012). "Песочница Firefox Seccomp". Mozilla Bugzilla. Получено 2015-01-13.
- ^ Дестейндер, Гийом (13 сентября 2012). "Песочница Firefox Seccomp". Mozilla Вики. Получено 2015-01-13.
- ^ "Tor ChangeLog".
- ^ «Сжатие лептоновых изображений: экономия 22% изображений без потерь со скоростью 15 МБ / с». Технический блог Dropbox. Получено 2016-07-15.
- ^ «Kafel: язык и библиотека для определения политик фильтрации системных вызовов».
- ^ «Подграф ОС». Подграф. Получено 2016-12-18.
- ^ «LoganCIJ16: будущее ОС». YouTube. Получено 2016-12-18.
- ^ «Модель безопасности Flatpak - часть 1: основы». Получено 2017-01-21.
- ^ "пузырчатая пленка". Получено 2018-04-14.
- ^ https://www.chromium.org/chromium-os/developer-guide/chromium-os-sandboxing
- ^ "Minijail [LWN.net]". lwn.net. Получено 2017-04-11.
внешняя ссылка
- Официальный веб-сайт[мертвая ссылка ]
- Песочница Google Chromium, LWN.net, Август 2009, Джейк Эдж
- медсестра, среда песочницы на основе seccomp
- Документация / prctl / seccomp_filter.txt, часть Ядро Linux документация
- Безопасность программного обеспечения Linux: предотвращение и устранение ошибок безопасности