Capsicum — это реализация безопасности на основе возможностей для UNIX и подобных систем. Представленная на USENIX 2010, система является частью FreeBSD с момента ее выпуска 9.0. Она также была адаптирована для DragonflyBSD в виде патчей ядра . [1] Дополнительные технические подробности можно найти в докторской диссертации [2] Роберта Уотсона (ученого-компьютерщика) .
Система работает, разбивая обычные разрешения на очень маленькие части. Когда процесс переходит в режим capsicum, он теряет все разрешения, обычно связанные с его контролирующим пользователем, за исключением «возможностей», которые у него уже есть в форме файловых дескрипторов . Процесс также может получать возможности через сокеты Unix . Эти файловые дескрипторы управляют не только доступом к файловой системе , но и к другим устройствам, таким как сетевые сокеты. Флаги также используются для управления более детализированным доступом, таким как чтение и запись. [3]
CloudABI — это двоичный интерфейс приложения , основанный на capsicum. Он сохраняет общую модель разрешений capsicum, но использует ее для перепроектирования упрощенной среды для запуска процессов (системных вызовов, библиотеки C и т. д.), чтобы программы стали переносимыми на любую платформу, поддерживающую ABI на той же архитектуре набора инструкций . Интерфейс, который он предлагает, примерно соответствует POSIX за вычетом частей, которые не работают с безопасностью на основе возможностей. По состоянию на март 2020 года [обновлять]CloudABI изначально является частью FreeBSD , и его можно запускать на других системах либо через патч на основе Capsicum, либо с помощью незащищенного эмулятора системных вызовов . [4] [5]
По состоянию на октябрь 2020 года CloudABI был устарел в пользу WebAssembly System Interface из-за отсутствия интереса. [4]