Для FreeBSD развивается механизм изоляции, похожий на plegde и unveil
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Для FreeBSD предложена реализация механизма изоляции приложений, напоминающего развиваемые проектом OpenBSD системные вызовы plegde и unveil. Изоляция в plegde осуществляется через запрет обращения к неиспользуемым в приложении системным вызовам, а в unveil через выборочное открытие доступа только для отдельных файловых путей, с которыми может работать приложение. Для приложения формируется подобие белого списка системных вызовов и файловых путей, а все остальные вызовы и пути запрещаются.
Отличие развиваемого для FreeBSD аналога plegde и unveil сводится к предоставлению дополнительной прослойки, позволяющей изолировать приложения без внесения изменений в их код или при минимальных изменениях. Напомним, что в OpenBSD plegde и unveil нацелены на тесную интеграцию с базовым окружением и применяются через добавление специальных аннотаций в код каждого приложения. Для упрощения организации защиты фильтры позволяют обойтись без детализации на уровне отдельных системных вызовов и манипулировать классами системных вызовов (ввод/вывод, чтение файлов, запись файлов, сокеты, ioctl, sysctl, запуск процессов и т.п.). Функции ограничения доступа могут вызываться в коде приложения по мере выполнения тех или иных действий, например, доступ к сокетам и файлам может закрываться после открытия нужных файлов и установки сетевого соединения.
Автор порта plegde и unveil для FreeBSD намерен предоставить возможность изоляции произвольных приложений, для чего предложена утилита curtain, позволяющая применять к приложениям правила, определённые в отдельном файле. Предложенная конфигурация включает файл с базовыми настройками, определяющими классы системных вызовов и типовые файловые пути, специфичные для определённых применений (работа со звуком, сетевое взаимодействие, вывод в лог и т.п.), а также файл с правилами доступа конкретных приложений.
Утилита curtain может применяться для изоляции большинства немодифицированных утилит, серверных процессов, графических приложений и даже целых сеансов рабочего стола. Поддерживается совместное использование curtain с механизмами изоляции, предоставляемыми подсистемами Jail и Capsicum. Также возможна организация вложенной изоляции, когда запускаемые приложения наследуют выставленные родительскому приложению правила, дополняя их отдельными ограничениями. Некоторые операции ядра (средства отладки, POSIX/SysV IPC, PTYs) дополнительно защищаются при помощи механизма барьеров, не позволяющего обращаться к объектам ядра, созданным не текущим или родительским процессом.
Процесс может самостоятельно настроить собственную изоляцию при помощи вызова curtainctl или используя предоставляемые библиотекой libcurtain функции plegde() и unveil(), аналогичные подобным функциям из OpenBSD.
Для отслеживания блокировок в процессе работы приложения предусмотрен sysctl 'security.curtain.log_level'. Доступ к протоколам X11 и Wayland включается отдельно через указание при запуске curtain опций "-X"/"-Y" и "-W", но поддержка графических приложений ещё не достаточно стабилизирована и имеет ряд нерешённых проблем (проблемы в основном проявляются при использовании X11, а поддержка Wayland реализована значительно лучше). Пользователи могут добавить дополнительные ограничения через создание локальных файлов с правилами (~/.curtain.conf). Например, для разрешения записи из Firfox только в каталог ~/Downloads/ можно добавить секцию "[firefox]" с правилом "~/Downloads/ : rw +".
Реализация включает в себя модуль ядра mac_curtain для мандатного контроля доступа (MAC, Mandatory Access Control), набор патчей для ядра FreeBSD с реализацией необходимых обработчиков и фильтров, библиотеку libcurtain для использования функций plegde и unveil в приложениях, утилиту curtain, примеры файлов конфигурации, набор тестов и патчи для некоторых программ в пространстве пользователя (например, для использования $TMPDIR с целью унификации работы с временными файлами). По возможности автор намерен свести к минимуму число изменений, для которых требуется применение патчей к ядру и приложениям.
===========
Источник:
OpenNet.RU
===========
Похожие новости
- Главная ссылка к новости (https://lists.freebsd.org/arch...)
- OpenNews: OpenBSD развивает Pledge, новый механизм изоляции приложений
- OpenNews: Для ядра Linux предложена система изоляции приложений Capsicum, изначально созданная для FreeBSD
- OpenNews: В состав OpenBSD-Current добавлен механизм защиты RETGUARD
- OpenNews: Планы по усилению механизма защиты W^X в OpenBSD
- OpenNews: В OpenBSD предложен новый системный вызов unveil() для изоляции ФС
Похожие новости:
- Началось бета-тестирование FreeBSD 13.1
- Выпуск Bastille 0.9.20220216, системы управления контейнерами на основе FreeBSD Jail
- Выпуск FreeBSD 12.3
- Для FreeBSD развивается новый инсталлятор
- [*nix, Лайфхаки для гиков] Mein Konfig: экскурсия по dotfiles (часть 2)
- [*nix, Лайфхаки для гиков] Mein Konfig: экскурсия по dotfiles
- Выпуск дистрибутива helloSystem 0.5, использующего FreeBSD и напоминающего macOS
- [IT-инфраструктура, Сетевые технологии, DevOps, Софт] Работа с пакетами в изолированной среде. Использование zfs datasets и jail’ов
- [Системное администрирование, IT-инфраструктура, *nix, Софт] FreeBSD. Путь сетевого пакета внутри ядра
- [Софт, IT-компании] Вебинар “ИТ-вызовы 2021 года: с чем бороться и как эффективно защищать свою сеть”
Теги для поиска: #_pledge, #_unveil, #_freebsd
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 03:20
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Для FreeBSD предложена реализация механизма изоляции приложений, напоминающего развиваемые проектом OpenBSD системные вызовы plegde и unveil. Изоляция в plegde осуществляется через запрет обращения к неиспользуемым в приложении системным вызовам, а в unveil через выборочное открытие доступа только для отдельных файловых путей, с которыми может работать приложение. Для приложения формируется подобие белого списка системных вызовов и файловых путей, а все остальные вызовы и пути запрещаются. Отличие развиваемого для FreeBSD аналога plegde и unveil сводится к предоставлению дополнительной прослойки, позволяющей изолировать приложения без внесения изменений в их код или при минимальных изменениях. Напомним, что в OpenBSD plegde и unveil нацелены на тесную интеграцию с базовым окружением и применяются через добавление специальных аннотаций в код каждого приложения. Для упрощения организации защиты фильтры позволяют обойтись без детализации на уровне отдельных системных вызовов и манипулировать классами системных вызовов (ввод/вывод, чтение файлов, запись файлов, сокеты, ioctl, sysctl, запуск процессов и т.п.). Функции ограничения доступа могут вызываться в коде приложения по мере выполнения тех или иных действий, например, доступ к сокетам и файлам может закрываться после открытия нужных файлов и установки сетевого соединения. Автор порта plegde и unveil для FreeBSD намерен предоставить возможность изоляции произвольных приложений, для чего предложена утилита curtain, позволяющая применять к приложениям правила, определённые в отдельном файле. Предложенная конфигурация включает файл с базовыми настройками, определяющими классы системных вызовов и типовые файловые пути, специфичные для определённых применений (работа со звуком, сетевое взаимодействие, вывод в лог и т.п.), а также файл с правилами доступа конкретных приложений. Утилита curtain может применяться для изоляции большинства немодифицированных утилит, серверных процессов, графических приложений и даже целых сеансов рабочего стола. Поддерживается совместное использование curtain с механизмами изоляции, предоставляемыми подсистемами Jail и Capsicum. Также возможна организация вложенной изоляции, когда запускаемые приложения наследуют выставленные родительскому приложению правила, дополняя их отдельными ограничениями. Некоторые операции ядра (средства отладки, POSIX/SysV IPC, PTYs) дополнительно защищаются при помощи механизма барьеров, не позволяющего обращаться к объектам ядра, созданным не текущим или родительским процессом. Процесс может самостоятельно настроить собственную изоляцию при помощи вызова curtainctl или используя предоставляемые библиотекой libcurtain функции plegde() и unveil(), аналогичные подобным функциям из OpenBSD. Для отслеживания блокировок в процессе работы приложения предусмотрен sysctl 'security.curtain.log_level'. Доступ к протоколам X11 и Wayland включается отдельно через указание при запуске curtain опций "-X"/"-Y" и "-W", но поддержка графических приложений ещё не достаточно стабилизирована и имеет ряд нерешённых проблем (проблемы в основном проявляются при использовании X11, а поддержка Wayland реализована значительно лучше). Пользователи могут добавить дополнительные ограничения через создание локальных файлов с правилами (~/.curtain.conf). Например, для разрешения записи из Firfox только в каталог ~/Downloads/ можно добавить секцию "[firefox]" с правилом "~/Downloads/ : rw +". Реализация включает в себя модуль ядра mac_curtain для мандатного контроля доступа (MAC, Mandatory Access Control), набор патчей для ядра FreeBSD с реализацией необходимых обработчиков и фильтров, библиотеку libcurtain для использования функций plegde и unveil в приложениях, утилиту curtain, примеры файлов конфигурации, набор тестов и патчи для некоторых программ в пространстве пользователя (например, для использования $TMPDIR с целью унификации работы с временными файлами). По возможности автор намерен свести к минимуму число изменений, для которых требуется применение патчей к ядру и приложениям. =========== Источник: OpenNet.RU =========== Похожие новости
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 03:20
Часовой пояс: UTC + 5