Дэвид Драйсдейл (David Drysdale) из компании Google опубликовал (https://lkml.org/lkml/2014/6/30/170) в списке рассылки разработчиков ядра Linux набор патчей с реализацией фреймворка Capsicum (http://www.cl.cam.ac.uk/research/security/capsicum/), предоставляющего механизмы для изолированного выполнения приложений и ограничения использования приложениями определённых функций. Система изначально разработана для проекта FreeBSD, включена в состав базовой системы начиная с выпуска FreeBSD 9 (http://www.opennet.me/opennews/art.shtml?num=32749) и расширена в ветке FreeBSD 10. Поддержка режима изоляции, основанного на использовании Capsicum, интегрирована в OpenSSH 6.5 (http://www.opennet.me/opennews/art.shtml?num=38971).
Capsicum расширяет POSIX API и предоставляет несколько новых системных примитивов, нацеленных на поддержку модели безопасности через управление возможностями объектов ("object-capability") для Unix-систем. Capsicum нацелен на дополнение традиционного централизованного мандатного контроля доступа средствами для защиты отдельных приложений и активируется на стороне самого приложения. Используя Capsicum, приложение можно запустить в режиме повышенной изоляции (sandbox), при котором программа сможет выполнять только заведомо разрешённые штатные действия.
Capsicum вводит в обиход новый класс файловых дескрипторов - capability, который предоставляет ограниченный набор прав, ассоциированных с ним. Попытки выполнить действия с дескриптором данного типа, не разрешённые заданными правами, отклоняются с выводом ошибки ENOTCAPABLE. Новые полномочия могут определяться только иерархически, как подмножество уже заданных прав, привязанных к существующему capability-дескриптору.
Предоставляется также специальный режим "capability", блокирующий обращение ко всем системным вызовам из которых возможен доступ к глобальному пространству имён. Комбинируя эти две возможности, использующее Capsicum приложение может эффективно изолировать себя в sandbox, определив права доступа для необходимых в работе файлов и сокетов, закрыв все остальные файловые дескрипторы и активировав режим capability, который не позволит открыть не подпадающие под созданные правила новые файловые дескрипторы.
URL: https://lkml.org/lkml/2014/6/30/170
Новость: http://www.opennet.me/opennews/art.shtml?num=40110