Открыть сервис

Attribute-Based Access Control

Attribute-Based Access Control (ABAC, управление доступом на основе атрибутов) — это модель контроля доступа, в которой решение о предоставлении или отказе в доступе к ресурсу принимается на основе набора атрибутов, связанных с субъектом (пользователем), объектом (ресурсом), действием и окружением (средой). В отличие от более простых моделей (например, дискреционного или ролевого управления доступом), ABAC использует гибкие, контекстно-зависимые правила, что позволяет реализовывать политики высокой детализации.

История и развитие

Концепция управления доступом на основе атрибутов возникла как развитие идей ролевого управления доступом (RBAC) и мандатного управления доступом (MAC). В начале 2000-х годов, с ростом сложности информационных систем и распространением облачных вычислений, потребность в более гибких и динамичных механизмах контроля доступа стала очевидной. Традиционные модели, привязанные к фиксированным ролям или меткам безопасности, не могли эффективно учитывать множество факторов, таких как время суток, местоположение пользователя, тип устройства или уровень угрозы.

В 2013 году Национальный институт стандартов и технологий США (NIST) опубликовал стандарт SP 800-162, который формализовал архитектуру ABAC и определил её ключевые компоненты. Этот стандарт стал основой для внедрения ABAC в государственных и коммерческих организациях. В России концепция ABAC также получила распространение, особенно в системах, требующих соответствия требованиям Федерального закона № 152-ФЗ «О персональных данных» и другим нормативным актам, регулирующим обработку конфиденциальной информации.

Основные понятия и компоненты

ABAC оперирует четырьмя основными типами атрибутов:

  • Атрибуты субъекта: характеристики пользователя, запрашивающего доступ. Примеры: должность, отдел, уровень допуска, гражданство, возраст, членство в проектной группе.
  • Атрибуты объекта: характеристики ресурса, к которому запрашивается доступ. Примеры: уровень секретности документа, тип данных (персональные данные, коммерческая тайна), владелец, дата создания.
  • Атрибуты действия: характеристики выполняемого действия. Примеры: чтение, запись, удаление, копирование, печать.
  • Атрибуты окружения (среды): контекстные факторы, не связанные напрямую с субъектом или объектом. Примеры: текущее время, IP-адрес, тип устройства (доверенное/недоверенное), уровень угрозы, географическое местоположение.

Политика доступа в ABAC представляет собой набор правил, которые определяют, при каких комбинациях атрибутов доступ разрешается или запрещается. Правила обычно записываются в виде логических выражений. Например: «Разрешить доступ на чтение к документу, если (должность пользователя = “Главный бухгалтер”) И (уровень секретности документа <= “Секретно”) И (время доступа между 9:00 и 18:00)».

Архитектура ABAC включает несколько ключевых компонентов:

  • Policy Enforcement Point (PEP): точка принудительного применения политики. Перехватывает запрос на доступ и отправляет его на проверку в PDP. После получения решения от PDP, PEP либо разрешает, либо блокирует доступ.
  • Policy Decision Point (PDP): точка принятия решения. Анализирует запрос, сопоставляет его с правилами политики и выносит решение (разрешить, запретить, неопределённо).
  • Policy Information Point (PIP): точка получения информации. Предоставляет PDP значения атрибутов субъекта, объекта, действия и окружения. PIP может обращаться к различным источникам данных: кадровым базам, каталогам LDAP, системам управления идентификацией, базам данных активов.
  • Policy Administration Point (PAP): точка администрирования политик. Интерфейс для создания, редактирования и управления правилами доступа.

Классификация и сравнение с другими моделями

ABAC часто сравнивают с другими моделями управления доступом:

  • Дискреционное управление доступом (DAC): владелец ресурса сам решает, кто может к нему получить доступ. ABAC более централизован и управляем, не зависит от решений отдельных владельцев.
  • Мандатное управление доступом (MAC): доступ контролируется на основе меток безопасности, присвоенных субъектам и объектам. ABAC гибче, так как позволяет использовать не только метки, но и множество других атрибутов.
  • Ролевое управление доступом (RBAC): доступ предоставляется на основе роли пользователя. ABAC может рассматриваться как расширение RBAC, где роль является лишь одним из многих атрибутов. ABAC позволяет создавать более тонкие политики, чем RBAC, особенно когда нужно учитывать контекст (например, «доступ разрешён только в рабочее время»).

Существует также гибридная модель — RBAC с элементами ABAC, где роли используются для базового разграничения, а атрибуты — для уточнения доступа в определённых ситуациях.

Применение

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

  • Корпоративные информационные системы: управление доступом к документам, базам данных, приложениям в зависимости от должности, отдела, проекта, времени и местоположения.
  • Облачные вычисления: контроль доступа к ресурсам в облачных средах (например, Amazon Web Services, Microsoft Azure, Google Cloud Platform). Политики ABAC позволяют точно определить, кто и при каких условиях может запускать виртуальные машины, обращаться к хранилищам данных или управлять сетевыми настройками.
  • Системы управления базами данных (СУБД): разграничение доступа к строкам и столбцам таблиц на основе атрибутов пользователя (например, менеджер может видеть только данные своих подчинённых).
  • Медицинские информационные системы: контроль доступа к электронным медицинским картам в зависимости от роли врача, типа медицинской организации, диагноза и согласия пациента.
  • Государственные информационные системы: обеспечение доступа к данным в соответствии с уровнем секретности, должностными обязанностями и другими нормативными требованиями.

Преимущества и недостатки

Преимущества

  • Гибкость и детализация: возможность создавать политики, учитывающие множество факторов, что позволяет реализовать принцип наименьших привилегий с высокой точностью.
  • Динамичность: политики могут изменяться в зависимости от контекста (время, местоположение, уровень угрозы) без необходимости изменять права отдельных пользователей.
  • Масштабируемость: управление доступом на основе атрибутов упрощает администрирование в больших и сложных организациях с тысячами пользователей и ресурсов.
  • Соответствие требованиям: позволяет легко реализовать политики, требуемые законодательством (например, о персональных данных, государственной тайне).

Недостатки

  • Сложность внедрения: требует разработки детальной модели атрибутов и правил, а также интеграции с различными источниками данных (PIP). Необходимо обучение администраторов.
  • Производительность: проверка сложных правил с множеством атрибутов может потребовать значительных вычислительных ресурсов, особенно при большом количестве запросов.
  • Управляемость: при большом количестве правил и атрибутов политики могут стать трудночитаемыми и сложными для аудита. Требуется тщательное проектирование и документирование.
  • Зависимость от качества данных: решения о доступе принимаются на основе атрибутов, поэтому точность и актуальность данных в источниках (PIP) критически важны. Некорректные данные могут привести к ошибочным решениям.

Примеры реализации

На практике ABAC реализуется с помощью специализированных программных продуктов — систем управления доступом (Policy-Based Access Control, PBAC). Многие современные платформы управления идентификацией и доступом (IAM) включают поддержку ABAC. Примеры коммерческих решений: Oracle Entitlements Server, Axiomatics Policy Server, IBM Security Access Manager. В открытом исходном коде существует реализация стандарта XACML (eXtensible Access Control Markup Language) — Apache Balana. XACML является одним из наиболее распространённых языков для описания политик ABAC.

Интересные факты

  • ABAC является ключевым компонентом архитектуры «нулевого доверия» (Zero Trust), где доступ к ресурсам не предоставляется по умолчанию, а проверяется каждый раз на основе множества факторов.
  • В некоторых системах ABAC может использоваться для автоматического предоставления доступа на основе изменения атрибутов (например, при переводе сотрудника в другой отдел его права автоматически обновляются).
  • Стандарт NIST SP 800-162, хотя и является американским, широко используется как основа для построения систем ABAC по всему миру, включая Россию.

Источники

  1. NIST Special Publication 800-162. Guide to Attribute Based Access Control (ABAC) Definition and Considerations.
  2. Федеральный закон от 27.07.2006 № 152-ФЗ «О персональных данных».
  3. Hu, V. C., et al. (2015). Guide to Attribute Based Access Control (ABAC) Definition and Considerations. National Institute of Standards and Technology.
  4. Sandhu, R., & Samarati, P. (1994). Access control: principle and practice. IEEE Communications Magazine.
  5. OASIS Standard. eXtensible Access Control Markup Language (XACML) Version 3.0.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →