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

Атрибутивное управление доступом

Атрибутивное управление доступом (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 требует высокой квалификации и глубокого понимания предметной области.
  • Производительность. Каждый запрос доступа требует выполнения множества запросов к источникам атрибутов и вычисления логических правил, что может создавать задержки.
  • Управление атрибутами. Необходимо обеспечить актуальность, достоверность и защиту атрибутов. Устаревшие или некорректные атрибуты могут приводить к ошибкам доступа.
  • Сложность аудита. При большом количестве атрибутов и политик выяснение причины отказа или разрешения может быть нетривиальной задачей.

Сравнение с другими моделями

ХарактеристикаDACRBACABAC
Основание для доступаСписок контроля доступа (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 →