Использование capability-based security в ядрах операционных систем (Евгений Басков, OSDAY-2025)

Материал из 0x1.tv

Докладчик
Евгений Басков.jpg
Евгений Басков

Capability-based security — подход к управлению доступом в ядрах ОС, основанный на использовании неподделываемых объектов (capabilities) вместо неявных прав (ambient authority). Его ключевое преимущество — возможность вынесения политик безопасности из ядра в пользовательское пространство. Несмотря на применение в UNIX-дескрипторах, Capsicum, Genode и микроядрах (Zircon, seL4, EROS), термин не имеет строгой дефиниции из-за вариативности реализаций.

В отличие от ACL, capabilities сочетают:

  • Идентификацию объекта,
  • Прикрепленные права доступа,
  • Передачу через IPC.

Расширения базовой модели решают исторические проблемы контроля распространения и отзыва прав, включая поддержку ограниченных операций, уникальных имен и унифицированных системных вызовов.

Наиболее совершенные механизмы представлены в микроядрах seL4 и EROS, где capability-based security служит основой контроля доступа. Исследуется влияние структур данных (пространства имен и др.) на производительность, накладные расходы и удобство использования. Особое внимание уделяется балансу между гибкостью и эффективностью.

Предложена реализация для микроядра общего назначения, оптимизированная под выполнение POSIX-требований. Решение демонстрирует преимущества в гибкости и снижении накладных расходов по сравнению с аналогами, а также улучшенную масштабируемость на многоядерных системах, где традиционные подходы страдают от сложности управления.

Видео

on youtube


Thesis

Данный доклад посвящен применению подхода capability-based security в ядрах операционных систем (ОС). Этот подход заключается в реализации управления доступом к различным ресурсам ОС на основе системы объектов (capabilities), использование которых нацелено на отказ от использования неявных прав доступа (ambient authority). Одним из важных результатов применения этого подхода является возможность вынесения большей части политик безопасности из ядра ОС в пользовательское пространство. Данная работа близка к теме конструктивной информационной безопасности, в данный момент совместно разрабатываемой ИСП РАН и Лабораторией Касперского.

В настоящее время capability-based security применяется во многих ядрах ОС, однако наблюдается большое разнообразие в выбранных способах реализации этого подхода. В связи с этим понятие capability-based security пока не получило четкого определения. К реализациям capability-based security относятся файловые дескрипторы UNIX-like ОС, фреймворки Capsicum и Genode, а также ряд микроядер, включающих в себя Zircon, «Mach», «seL4» и «EROS».

Сравнение и основные концепции

В докладе capability-based security сравнивается с более известным подходом на основе Access Control List (ACL) и представляется обзор наиболее интересных реализаций механизмов capability-based security в ядрах операционных систем. Формулируются ключевые особенности и понятия, входящие в capability-based security, в том числе само понятие capability — неподделываемого локального идентификатора объекта ядра:

  • С прикрепленными к нему правами доступа
  • С возможностью передачи доступа посредством механизмов межпроцессного взаимодействия

Расширения и реализации

Также описывается ряд важных расширений базовых механизмов capability-based security, которые приводят к улучшению безопасности, предсказуемости и гибкости систем, построенных с использованием конкретных реализаций capability-based security. Изначальные реализации данного подхода имели ряд проблем с:

  • Контролем распространения доступа
  • Последующим отзывом ранее предоставленного доступа

Текущие реализации используют ряд различных расширений, которые устраняют эти проблемы. К другим аспектам реализации относится:

  • Поддержка ограниченных capabilities, которые предоставляют доступ к ограниченному кругу операций над объектом
  • Поддержка уникальных имен capability
  • Наличие унифицированного интерфейса системных вызовов

Помимо этого обозреваются наиболее интересные аспекты реализации capability-based security и связанных структур данных, которые влияют на:

  • Накладные расходы
  • Производительность
  • Простоту применения реализаций механизмов

Рассматриваются реализации данного механизма в ядрах «seL4» и «EROS», поскольку эти ядра имеют наиболее продвинутые и гибкие варианты механизмов capability-based security и используют данный подход в качестве основного механизма управления и контроля доступа к ресурсам ядра. Некоторые аспекты, такие как структура пространства имен capabilities, описываются применительно к более широкому кругу реализаций.

Экспериментальная реализация

В заключение к данному обзору представляется реализация механизмов capability-based security, которая используется в экспериментальном микроядре общего назначения, позволяющем обеспечить:

  • Достаточную гибкость и производительность для реализации интерфейсов POSIX
  • Минимизацию накладных расходов

Эта реализация имеет некоторые преимущества по сравнению существующими реализациями данного подхода применительно к микроядру общего назначения, поскольку остальные системы обладают:

  • Меньшей гибкостью
  • Большей сложностью
  • Проблемами с масштабируемостью на современных системах с большим числом процессорных ядер


Презентация

Использование capability-based security в ядрах операционных систем (Евгений Басков, OSDAY-2025).pdf Использование capability-based security в ядрах операционных систем (Евгений Басков, OSDAY-2025).pdf Использование capability-based security в ядрах операционных систем (Евгений Басков, OSDAY-2025).pdf Использование capability-based security в ядрах операционных систем (Евгений Басков, OSDAY-2025).pdf Использование capability-based security в ядрах операционных систем (Евгений Басков, OSDAY-2025).pdf Использование capability-based security в ядрах операционных систем (Евгений Басков, OSDAY-2025).pdf Использование capability-based security в ядрах операционных систем (Евгений Басков, OSDAY-2025).pdf Использование capability-based security в ядрах операционных систем (Евгений Басков, OSDAY-2025).pdf Использование capability-based security в ядрах операционных систем (Евгений Басков, OSDAY-2025).pdf Использование capability-based security в ядрах операционных систем (Евгений Басков, OSDAY-2025).pdf Использование capability-based security в ядрах операционных систем (Евгений Басков, OSDAY-2025).pdf Использование capability-based security в ядрах операционных систем (Евгений Басков, OSDAY-2025).pdf Использование capability-based security в ядрах операционных систем (Евгений Басков, OSDAY-2025).pdf Использование capability-based security в ядрах операционных систем (Евгений Басков, OSDAY-2025).pdf Использование capability-based security в ядрах операционных систем (Евгений Басков, OSDAY-2025).pdf Использование capability-based security в ядрах операционных систем (Евгений Басков, OSDAY-2025).pdf Использование capability-based security в ядрах операционных систем (Евгений Басков, OSDAY-2025).pdf Использование capability-based security в ядрах операционных систем (Евгений Басков, OSDAY-2025).pdf Использование capability-based security в ядрах операционных систем (Евгений Басков, OSDAY-2025).pdf Использование capability-based security в ядрах операционных систем (Евгений Басков, OSDAY-2025).pdf Использование capability-based security в ядрах операционных систем (Евгений Басков, OSDAY-2025).pdf Использование capability-based security в ядрах операционных систем (Евгений Басков, OSDAY-2025).pdf Использование capability-based security в ядрах операционных систем (Евгений Басков, OSDAY-2025).pdf Использование capability-based security в ядрах операционных систем (Евгений Басков, OSDAY-2025).pdf Использование capability-based security в ядрах операционных систем (Евгений Басков, OSDAY-2025).pdf Использование capability-based security в ядрах операционных систем (Евгений Басков, OSDAY-2025).pdf Использование capability-based security в ядрах операционных систем (Евгений Басков, OSDAY-2025).pdf Использование capability-based security в ядрах операционных систем (Евгений Басков, OSDAY-2025).pdf Использование capability-based security в ядрах операционных систем (Евгений Басков, OSDAY-2025).pdf Использование capability-based security в ядрах операционных систем (Евгений Басков, OSDAY-2025).pdf Использование capability-based security в ядрах операционных систем (Евгений Басков, OSDAY-2025).pdf Использование capability-based security в ядрах операционных систем (Евгений Басков, OSDAY-2025).pdf Использование capability-based security в ядрах операционных систем (Евгений Басков, OSDAY-2025).pdf Использование capability-based security в ядрах операционных систем (Евгений Басков, OSDAY-2025).pdf Использование capability-based security в ядрах операционных систем (Евгений Басков, OSDAY-2025).pdf Использование capability-based security в ядрах операционных систем (Евгений Басков, OSDAY-2025).pdf Использование capability-based security в ядрах операционных систем (Евгений Басков, OSDAY-2025).pdf Использование capability-based security в ядрах операционных систем (Евгений Басков, OSDAY-2025).pdf Использование capability-based security в ядрах операционных систем (Евгений Басков, OSDAY-2025).pdf Использование capability-based security в ядрах операционных систем (Евгений Басков, OSDAY-2025).pdf Использование capability-based security в ядрах операционных систем (Евгений Басков, OSDAY-2025).pdf
Использование capability-based security в ядрах операционных систем (Евгений Басков, OSDAY-2025)!.jpg

Примечания и ссылки