Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
Сергей Яремчук
Linux-системы, как многие другие в UNIX-семействе, имеют известный недостаток в управлении доступом. Прежде всего это малое количество контролируемых прав доступа, состоящих в разрешении чтения, записи и возможности выполнения, и права эти можно установить только для владельца файла, членов группы владельца и всех остальных. Иногда очень трудно вместить в предложенные ограничения даже пару десятков человек, при этом требуются более широкие возможности по описанию доступа к конкретному файлу. Дополнительно все программы, работающие от имени пользователя, имеют такие же права, как и сам пользователь, при этом совсем не учитывается важность самого объекта и вообще сама необходимость работы программы с ним. Сам пользователь файла решает, являются ли данные файлы секретными или будут доступными остальным пользователям. Отсюда получается, что запущенная от имени суперпользователя программа имеет неограниченные возможности в системе и доступ к любому объекту (эту модель еще называют одноуровневой). Все хорошо, пока она не скомпрометирована, и тогда такое упрощение становится уже большим недостатком. Такая модель доступа называется Discretionary Access Control (DAC) и позволяет создавать системы, защищенные по классу С1.
Естественно, сложившаяся ситуация не могла остаться нерешенной и было начато несколько различных проектов, в которых предлагался свой вариант решения данной проблемы. Об одном из них я уже писал в статье о SELinux в майском номере журнала. В данной разработке использована Role-Based Access Control (RBAC) модель доступа, позволяющая администратору определить роли и объекты в системе, к которым эти роли могут обращаться. Достаточно сказать, что в новое ядро версии 2.6 данная технология включена по умолчанию. Но данное решение не обладает достаточной гибкостью, и его удобнее все-таки использовать для создания специализированых решений. Второй проект, о котором уже говорилось на страницах журнала, – LIDS, позволяющий ограничить возможности пользователей (в том числе и root), но в некоторых вопросах только глобально, без «индивидуального» подхода.
Сегодня пойдет речь о проекте RSBAC (Rule Set Based
Access Control), домашняя страница
Архитектура RSBAC
RSBAC представляет собой гибкую, мощную и открытую модель управления доступа для ядра Linux, первая устойчивая версия 1.0.9а появилась на свет в январе 2000 года. Сам проект полностью не зависим от правительств и больших компаний и разрабатывается по лицензии GPL. Базируется RSBAC на архитектуре GFAC (Generalized Framework for Access Control Approach), предложенной Abrams и LaPadula. Основной особенностью предложенной системы была блочная структура, при которой каждый модуль реализует свою собственную модель защиты, что позволяет более гибко их использовать, отключая или включая нужный, и использовать одновременно несколько разных моделей защиты без конфликтов и противоречий между ними. Согласно подходу GFAC, предполагается разделение на три основных функциональных блока: AEF (Access Enforcement Facility) модуль, транслирующий системные вызовы в запросы на доступ, ADF (Access Decision Facility) осуществляет принятие решения и возвращает ответ (или ошибку), который при помощи модуля ACI (Access Control Information) транслируется в системный вызов. Также и в RSBAC система управления доступа ядром разделена на AEF- и ADF-компоненты и модуль ACI, все компоненты при этом жестко связаны в ядре. Сам ADF может состоять из нескольких модулей политик защиты, каждый из которых может подключаться/отключаться динамически, по мере необходимости обеспечивая требуемые задачи и гибкость в конфигурировании. В текущей версии 1.2.2 в комплекте имеется 12 модулей, реализующих восемь политик: