Введение
Подход к ограничению доступа к системе авторизованным пользователям
В области безопасности компьютерных систем, ролевой контроль доступа (RBAC) или безопасность на основе ролей – это подход к ограничению доступа к системе для авторизованных пользователей, а также к реализации обязательного контроля доступа (MAC) или дискреционного контроля доступа (DAC). Ролевой контроль доступа представляет собой механизм контроля доступа, не зависящий от конкретной политики, и определяется ролями и привилегиями. Компоненты RBAC, такие как разрешения ролей, назначение пользователей ролям и взаимосвязи между ролями, упрощают процесс назначения прав доступа пользователям. Исследование, проведенное NIST, показало, что RBAC отвечает многим потребностям коммерческих и государственных организаций. RBAC может быть использован для упрощения администрирования безопасности в крупных организациях, насчитывающих сотни пользователей и тысячи разрешений. Несмотря на то, что RBAC отличается от моделей контроля доступа MAC и DAC, он может обеспечивать соблюдение этих политик без каких-либо сложностей.
Отношение к другим моделям
RBAC – это гибкая технология управления доступом, гибкость которой позволяет реализовать DAC или MAC. DAC с группами (например, реализованные в файловых системах POSIX) может эмулировать RBAC. MAC может имитировать RBAC, если граф ролей ограничен деревом, а не частично упорядоченным множеством. До разработки RBAC модель Белла-ЛаПадулы (BLP) была синонимом MAC, а разрешения файловой системы – синонимом DAC. Эти модели считались единственными известными моделями управления доступом: если модель не была BLP, она считалась моделью DAC, и наоборот. Исследования, проведенные в конце 1990-х годов, показали, что RBAC не относится ни к одной из этих категорий. В отличие от контроля доступа на основе контекста (CBAC), RBAC не учитывает контекст сообщения (например, источник соединения). RBAC также подвергается критике за склонность к "взрыву ролей" – проблеме, возникающей в крупных корпоративных системах, которым требуется управление доступом с более высокой степенью детализации, чем может обеспечить RBAC, поскольку роли по своей сути привязаны к операциям и типам данных. По аналогии с CBAC, система управления доступом на основе отношений между сущностями (ERBAC, хотя тот же акроним также используется для модифицированных систем RBAC, таких как расширенный контроль доступа на основе ролей) способна защищать отдельные экземпляры данных, учитывая их связь с субъектом, выполняющим операцию.
Сравнение с ACL
Списки контроля доступа (ACL) используются в традиционных системах дискреционного контроля доступа (DAC) для управления объектами данных низкого уровня. RBAC отличается от ACL тем, что назначает разрешения операциям, которые изменяют прямые взаимосвязи между несколькими сущностями (см. ACLg ниже). Например, ACL может использоваться для предоставления или запрета прав записи в определенный системный файл, но не определяет, как этот файл может быть изменен. В системе, основанной на RBAC, операция может заключаться в проведении транзакции "создание кредитного счета" в финансовом приложении или в заполнении записи "результат анализа уровня сахара в крови" в медицинском приложении. Таким образом, роль представляет собой последовательность операций в рамках более широкой деятельности. RBAC особенно хорошо подходит для реализации принципа разделения обязанностей (SoD), который требует участия двух или более лиц в авторизации критически важных операций. Были проанализированы необходимые и достаточные условия для обеспечения безопасности SoD в RBAC. Основной принцип SoD заключается в том, что ни один человек не должен иметь возможности скомпрометировать безопасность, используя двойные привилегии. Следовательно, одно лицо не может одновременно занимать роль, осуществляющую аудит, контроль или надзор над другой выполняемой ролью. В то же время, "минимальная модель RBAC", RBACm, может быть сопоставлена с механизмом ACL, ACLg, где в качестве записей в ACL допускаются только группы. Barkley (1997) показал, что RBACm и ACLg эквивалентны. В современных реализациях SQL, таких как ACL фреймворка CakePHP, ACL также управляют группами и наследованием в иерархии групп. В этом контексте конкретные "современные" реализации ACL можно сравнивать с конкретными "современными" реализациями RBAC более эффективно, чем со "старыми (файловыми) реализациями". Для обмена данными и для "сравнений на высоком уровне" данные ACL могут быть преобразованы в формат XACML.
Контроль доступа на основе отношений
Контроль доступа на основе отношений, или ReBAC, – это модель, развивающаяся из RBAC. В ReBAC разрешение субъекта на доступ к ресурсу определяется наличием отношений между этим субъектом и ресурсом. Преимущество этой модели заключается в возможности реализации детализированных прав доступа, например, в социальной сети, где пользователи могут делиться публикациями с другими конкретными пользователями.
Использование и доступность
Использование RBAC для управления пользовательскими привилегиями (компьютерными разрешениями) в пределах одной системы или приложения широко признано передовой практикой. Отчет 2010 года, подготовленный для NIST Исследовательским треугольным институтом, проанализировал экономическую ценность RBAC для предприятий и оценил преимущества на одного сотрудника за счет сокращения времени простоя, повышения эффективности предоставления доступа и упрощения администрирования политик контроля доступа. В организации с разнородной ИТ-инфраструктурой и требованиями, охватывающими десятки или сотни систем и приложений, управление достаточным количеством ролей и назначение соответствующих членств в ролях с использованием RBAC становится чрезвычайно сложным без иерархического создания ролей и назначения привилегий. Новые системы расширяют более раннюю модель NIST RBAC для решения ограничений RBAC при развертывании в масштабе предприятия. Модель NIST была принята INCITS в качестве стандарта ANSI/INCITS 359 2004. Также опубликовано обсуждение некоторых проектных решений, принятых при разработке модели NIST.
Потенциальные уязвимости
Вмешательство в управление доступом на основе ролей – относительно новая проблема в приложениях безопасности, где наличие нескольких учетных записей пользователей с динамически меняющимися уровнями доступа может приводить к нестабильности ключей шифрования, позволяя внешнему злоумышленнику воспользоваться этой уязвимостью для несанкционированного доступа. Приложения совместного использования ключей в динамических виртуализированных средах продемонстрировали определенный успех в решении данной проблемы.