Атрибутивное управление доступом
Атрибутивное управление доступом (Attribute-Based Access Control, ABAC) — это модель управления доступом, в которой решение о предоставлении или отказе в доступе к ресурсу принимается на основе набора атрибутов, связанных с субъектом (пользователем), объектом (ресурсом), действием и окружением (средой). В отличие от более простых моделей, таких как дискреционное управление доступом (DAC) или управление доступом на основе ролей (RBAC), ABAC позволяет формулировать динамические и контекстно-зависимые политики, не привязанные жёстко к заранее определённым спискам или ролям.
Основные понятия и архитектура
ABAC оперирует четырьмя основными типами сущностей, каждая из которых характеризуется набором атрибутов:
- Субъект — активная сущность, запрашивающая доступ (например, пользователь, процесс, сервис). Атрибуты субъекта могут включать: идентификатор, должность, отдел, уровень допуска, время последней аутентификации, географическое местоположение.
- Объект — пассивная сущность, к которой запрашивается доступ (файл, база данных, устройство, API-метод). Атрибуты объекта: тип, владелец, уровень секретности, дата создания, классификация.
- Действие — операция, которую субъект намерен выполнить над объектом (чтение, запись, удаление, выполнение, передача).
- Окружение (среда) — контекст, в котором происходит запрос доступа. Атрибуты окружения: текущее время, IP-адрес, тип устройства, уровень угрозы, фаза жизненного цикла (например, «рабочее время» или «аварийный режим»).
Архитектура ABAC, как правило, включает следующие компоненты:
- Policy Enforcement Point (PEP) — точка принудительного исполнения политики. Перехватывает запрос доступа и направляет его на проверку.
- Policy Decision Point (PDP) — точка принятия решения. Анализирует запрос, сравнивает атрибуты с политиками и выносит вердикт (разрешить, запретить, неопределённо).
- Policy Information Point (PIP) — точка получения информации. Извлекает значения атрибутов из различных источников (LDAP-каталоги, базы данных, системы управления идентификацией, внешние API).
- Policy Administration Point (PAP) — точка администрирования политик. Интерфейс для создания, редактирования и управления политиками доступа.
Политики доступа
Политика в ABAC представляет собой правило, которое связывает атрибуты субъекта, объекта, действия и окружения с разрешением или запретом. Политики обычно записываются на языке eXtensible Access Control Markup Language (XACML) или в формате JSON, поддерживаемом такими стандартами, как NIST SP 800-162.
Пример политики на естественном языке:
«Разрешить чтение медицинской записи, если субъект является лечащим врачом пациента (атрибут субъекта: role = 'doctor', атрибут объекта: patient_id = атрибут субъекта patient_id), и запрос выполняется в рабочее время (атрибут окружения: time между 8:00 и 18:00), и устройство субъекта соответствует корпоративному стандарту (атрибут окружения: device_type = 'managed')».
Политики могут быть:
- Разрешающими — явно разрешают доступ при выполнении условий.
- Запрещающими — явно запрещают доступ при выполнении условий.
- Комбинированными — с использованием алгоритмов объединения (например, «первое применимое правило», «только если все разрешено», «запрет по умолчанию»).
Преимущества и недостатки
Преимущества
- Гибкость и детализация. Политики могут учитывать практически любые комбинации атрибутов, что позволяет реализовать доступ «на лету» без необходимости переопределения ролей или ACL.
- Масштабируемость. При добавлении тысяч новых пользователей или ресурсов не требуется изменять политики, если их атрибуты корректно заполнены.
- Контекстная адаптация. Доступ может автоматически изменяться в зависимости от времени, местоположения, уровня угрозы или других параметров.
- Централизованное управление. Политики хранятся и администрируются в единой точке, что упрощает аудит и соответствие нормативным требованиям (например, Федеральному закону № 152-ФЗ «О персональных данных» в РФ).
Недостатки
- Сложность проектирования. Разработка и отладка политик ABAC требует высокой квалификации и глубокого понимания предметной области.
- Производительность. Каждый запрос доступа требует выполнения множества запросов к источникам атрибутов и вычисления логических правил, что может создавать задержки.
- Управление атрибутами. Необходимо обеспечить актуальность, достоверность и защиту атрибутов. Устаревшие или некорректные атрибуты могут приводить к ошибкам доступа.
- Сложность аудита. При большом количестве атрибутов и политик выяснение причины отказа или разрешения может быть нетривиальной задачей.
Сравнение с другими моделями
| Характеристика | DAC | RBAC | ABAC |
|---|---|---|---|
| Основание для доступа | Список контроля доступа (ACL) объекта | Роль субъекта | Набор атрибутов (субъекта, объекта, действия, среды) |
| Гибкость | Низкая | Средняя | Высокая |
| Масштабируемость | Плохая (при большом числе объектов) | Хорошая (до определённого числа ролей) | Отличная |
| Сложность реализации | Низкая | Средняя | Высокая |
| Поддержка контекста | Нет | Ограниченная (через сессии) | Полная |
| Пример применения | Файловые системы, простые приложения | Корпоративные ERP-системы, CRM | Облачные платформы, IoT, медицинские информационные системы |
Применение
ABAC широко применяется в средах, где требуется высокая степень детализации и динамичности управления доступом:
- Облачные вычисления (Microsoft Azure, Amazon Web Services, Google Cloud) — для управления доступом к ресурсам на основе тегов, проектов, учетных записей.
- Медицинские информационные системы — для разграничения доступа к электронным медицинским картам в зависимости от роли врача, статуса пациента и времени суток.
- Интернет вещей (IoT) — для управления доступом устройств к данным и командам на основе их типа, местоположения и уровня доверия.
- Государственные информационные системы — для реализации требований законодательства о защите информации (например, в РФ — требования ФСТЭК России к системам управления доступом).
- Финансовый сектор — для контроля доступа к транзакциям и отчётам на основе должности, суммы операции и геолокации.
Стандартизация и нормативная база
Основным стандартом для реализации ABAC является XACML (eXtensible Access Control Markup Language), разработанный OASIS. В России вопросы управления доступом регулируются рядом нормативных документов, включая:
- ГОСТ Р 56545-2015 «Защита информации. Управление доступом. Общие положения».
- Методические документы ФСТЭК России (например, «Меры защиты информации в государственных информационных системах»), которые предписывают использование ролевых и атрибутивных моделей для систем с высоким уровнем защищённости.
- Федеральный закон № 152-ФЗ «О персональных данных» — требует обеспечения разграничения доступа к персональным данным, что может быть реализовано с помощью ABAC.
Интересные факты
- Концепция ABAC была впервые формализована в начале 2000-х годов как развитие идей RBAC и мандатного управления доступом (MAC).
- Одним из первых крупных внедрений ABAC стала система управления доступом в Национальных институтах здравоохранения США (NIH).
- В 2013 году NIST (Национальный институт стандартов и технологий США) выпустил специальную публикацию SP 800-162, которая стала базовым руководством по внедрению ABAC.
- ABAC часто используется в комбинации с RBAC (гибридная модель), где роли применяются как один из атрибутов, а не единственный критерий.
Источники
- NIST Special Publication 800-162. «Guide to Attribute Based Access Control (ABAC) Definition and Considerations».
- OASIS Standard. «eXtensible Access Control Markup Language (XACML) Version 3.0».
- ГОСТ Р 56545-2015 «Защита информации. Управление доступом. Общие положения».
- Федеральный закон от 27.07.2006 № 152-ФЗ «О персональных данных».
- Методические документы ФСТЭК России по защите информации в государственных информационных системах.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →