Сага об ABAC: как построить систему управления доступом к звездолёту. Часть 1. Атрибуты.

Сага об ABAC: как построить систему управления доступом к звездолёту. Часть 1. Атрибуты.

Чтобы объяснить атрибутивную модель доступа (ABAC), ребята из RooX начали сочинять фантастический роман.

image

… Капитан Марк Дуглас широченными прыжками преодолевал последние метры до звездолета под шквальным огнем люминоидов. «Корабль, открыть правый шлюз, включить стартовые!» — крикнул он, надеясь, что недавнее попадание не повредило передатчик. Дверь шлюза откатилась. «Значит, ещё есть шанс», — мелькнул в голове нервный обрывок мысли.

Марк уклонился от очередного залпа, оттолкнулся от пыльной поверхности планеты и кубарем вкатился на палубу. «Закрыть шлюз! Взлетаем!» Шлюз с грохотом захлопнулся, и Марк почувствовал тяжесть ускорения. Он был спасен, но предстояло еще разобраться, что так разозлило доброжелательных до этого светлячков. …

Привет! Мы — RooX, российский разработчик системы аутентификации и авторизации RooX UIDM. В ней мы реализовали полноценную атрибутивную модель доступа (ABAC, Attribute-based access control). ABAC позволяет создавать детализированные политики доступа, с ней можно учесть максимальное количество нюансов, чтобы минимизировать риск несанкционированных действий.

Эта модель описана довольно давно, но она требовательна к вычислительным мощностям и скорости интеграций между системами, так что технические возможности для ее полноценного использования появляются только сейчас.

Модель ABAC нравится нам настолько, что мы сочинили фрагменты фантастического романа, чтобы проиллюстрировать ее работу.

Что такое ABAC

Итак, ABAC — подход к управлению доступом к информационным ресурсам, в рамках которого право совершения тех или иных действий пользователя вычисляется по набору свойств — атрибутов.

Атрибуты могут относиться к чему угодно и кому угодно. Их удобно делить на 4 категории.

  1. Атрибуты субъектов, то есть тех, кто получает доступ.
    Имя — Марк, должность — капитан, раса — землянин, скорость бега — впечатляющая.
  2. Атрибуты объектов, то есть того, к чему запрашивается доступ.
    Инвентарный номер звездолета — Roo37X, шлюз — по правому борту, двигатели — стартовые.
  3. Атрибуты действия, то есть на что запрашивается доступ.
    Шлюз — открыть (желательно очень быстро), двигатели — запустить.
  4. Атрибуты окружения/среды. Что происходит в окружающей среде в момент запроса на действие субъекта по отношению к объекту.
    Местное время — на закате, место — пыльная поверхность планеты.

В RooX UIDM авторизация на основе ABAC учитывает эти атрибуты и их комбинации в правилах доступа, что позволяет бизнесу гибко подходить к вопросам авторизации сотрудников, клиентов и партнеров. Например, разрешать сотрудникам входить в информационные системы только в рабочие часы, предлагать клиенту пройти дополнительный фактор аутентификации при входе с нового устройства и так далее. В целом подход призван предусмотреть все нюансы сценариев авторизации и повысить уровень кибербезопасности.

	 
Можно сказать, что ABAC как концепция появилась в 2001, когда консорциум OASIS разработал стандарт для управления доступом на основе атрибутов, который получил название XACML (англ. eXtensible Access Control Markup Language).

Теперь давайте попробуем «приземлить» эти довольно абстрактные слова на пример со звездолётом.

Капитанский доступ (атрибуты субъекта)

02 Капитанскии доступ Марк Дуглас.jpg

… Марк вспомнил, как еще кадетом стажировался под началом командора Лиама Риджа. Корабль был огромный, но ему с должностью помощника инженера были доступны только его каюта, кают-компания на второй палубе и часть инженерного отсека. Он уже тогда представлял, как однажды произнесет: «Корабль, капитанский доступ». …

В этом отрывке нельзя не заметить акцент на должность в вопросе прав доступа. Человеку, с должностью «помощник инженера» доступны лишь несколько помещений корабля, а человеку с должностью «капитан» — все. Должность — атрибут субъекта.

Часто должность по большей части определяет бизнес-роль сотрудника и, соответственно, его обязанности и права. Модель доступа, которая основывается исключительно на роли, так и называется — ролевая модель доступа, или RBAC (role-based access control).

Важное замечание. В сети встречаются материалы, в которых RBAC и ABAC противопоставляются друг другу, а также статьи, где RBAC, ABAC и другие модели доступа (DAC, MAC, ReBAC) составляют некий последовательный список. Если бы модели именовались по цветам, такие статьи имели бы заголовки вида «Красное или белое: какую модель выбрать» или «Топ 8 моделей доступа: бело-оранжевый, оранжевый, бело-зелёный, синий…».
В действительности ABAC — универсальная модель доступа, она определяет архитектуру и общий подход. С помощью нее можно реализовать все остальные модели. В частности, RBAC — это ABAC, в котором значение имеет лишь один атрибут субъекта — его роль.
В аналогии с цветами ABAC — это, скорее, RGB, в котором правильно оперируя значениями R, G и B, можно получить и красное, и белое.

Вернемся к кадету Марку.

Внимание, вопрос. Можно ли с уверенностью утверждать, что в указанном отрывке описывается «чистый» RBAC?

(минута пошла)

Правильный ответ: благодаря одному слову мы можем с уверенностью утверждать, что в указанном отрывке описывается вовсе не RBAC, а ReBAC (relationship-based access control) — модель, в которой имеют значения отношения между элементами системы. И которая тоже реализуется на ABAC.

И это слово — «его». «Его каюта» — это словосочетание означает, что между Марком и помещением (субъектом и объектом) есть отношения принадлежности. И доступ зависит от этих отношений. В свою каюту он может войти, а в чужую (надеемся) — по умолчанию, нет.

Куй железо, пока горячо (атрибуты объекта)

03 Куи железо пока горячо Харуто Инамори.jpg

… Харуто Инамори, ремонтник третьего класса, вошел в парковочный ангар. Заявка на ремонт была из тех, что он делал с закрытыми глазами: диагностика навигационной системы одного из транспортных шаттлов.

Харуто дошел до указанного в заявке места — шестая линия, ячейка двадцать четыре. Шатл выглядел как новый, без единой царапины на корпусе. Это было необычно.

Ремонтник активировал свой портативный интерфейс и запустил процедуру подключения к информационной системе шаттла. Однако, экран его устройства быстро замерцал и выдал сообщение об ошибке: «Отказ доступа. Обратитесь к администратору.»

— Интересно... — пробормотал Харуто. Обычно эти кораблики были готовы к диагностике без задержек.

Он взглянул на инвентарный номер шаттла, выгравированный на корпусе, и ощутил неприятных холодок в груди. Быстро сверился с заявкой. В ней стоял другой номер.

— Что за чертовщина здесь творится? — пробормотал он себе под нос. …

Харуто не смог подключиться к информационной системе шаттла, поскольку доступ был выдан на шатл с другим инвентарным номером. Номер шаттла атрибут объекта.

04 Куи железо пока горячо Винд.jpg

… Винд потер ушибленный лоб… насколько же он крепко задумался, что не заметил, что дверь корабля не открылась… С другой стороны, а почему она не открылась?

Инженер похлопал себя по месту на предплечье, где был вживлен индивидуальный чип. Суеверие, конечно. Постукивание по неработающим приборам или потряхивание их с целью починки никак не могло сработать с рациональной точки зрения. Однако срабатывало...

Тем временем дверь оставалась закрытой. Поборов порыв ударить и по ней, Винд набрал на коммуникаторе Марка Дугласа. Единственное разумное объяснение тому, что корабль не пускает его внутрь — капитан не на борту. Но это было бы крайне подозрительно…

Корабль не пускает инженера на борт, потому что первым в данной ситуации на борт должен был взойти капитан. Нет капитана, нет конфетки, в смысле, доступа на корабль.

На первый взгляд, речь идет о субъектах — капитане и инженере. Даже возникает соблазн ввести какую-то еще группу атрибутов, что-то про взаимоотношения субъектов, но на самом деле присутствие капитана на борту — это просто свойство звездолета, то есть атрибут объекта.

В Петропавловске-Камчатском — полночь (атрибуты среды)

05 В Петропавловске Андреи.jpg

… Андрей бежал по коридорам, стараясь по возможности не задевать других посетителей космического порта. Надо же было забыть коробочку с подарком для Лиры! Если он не успеет попасть на корабль до десяти вечера по локальному времени, придется объясняться с Дугласом, по какой такой важной причине он просит исключение из регламента ночного доступа на корабль. Капитан, конечно, ситуацию поймет, но, как говорится, возьмёт Андрея на заметку…

В политики доступа можно заложить зависимость от параметров окружающей среды. Например, это могут быть время или геолокация. Для физического мира — параметры атмосферы, освещенность и прочее. В случае компьютерного окружения — модель устройства, идентификатор сети и так далее.

Примеры:

  • Давайте не будем позволять открывать шлюз звездолета, если температура за бортом выше 3000℃ (в звезду случайно влетели или от плазменного заряда не увернулись) или содержание метана в атмосфере снаружи превышает 4,4%.
  • Или не будем пускать на борт некоторых членов экипажа после 22:00 при швартовке в порту — увольнительная так увольнительная.
  • Или отправим пройти дополнительный фактор аутентификации, если вход в приложение для сотрудника происходит из недоверенной сети (wifi в кафешке вместо корпоративного).
  • Или заблокируем доступ к интернет-банку (и намекнем отключить VPN), если по геолокации понятно, что случилось невозможное перемещение.

Сто раз отмерь, один отрежь (атрибуты действия)

06 Сто раз отмерь Андреи.jpg

… Андрей осторожно выглянул в проем двери и немедленно вжался в стену, инстинктивно перестав дышать. Задача добраться до выхода резко осложнилась — в холле хватало светлячков. Правда, у них у всех полоска на головогруди была желтого цвета, значит, это был молодняк. Если верить разведке, мощность оружия люминоидов зависела от возраста. «Желтоголовикам» была доступна лишь минимальная мощность, чтобы не перестреляли своих же.

Андрей проверил щиты — выдержат пару прямых попаданий. В ответ на третье, допустим, костюм впрыснет в тело медкоктейль. Четвертое убьет его в любом случае.

«Если разведка нам не врет, у меня фора в три выстрела. Не так уж и мало», — подумал Андрей. …

У действий, доступ к которым прописывается с помощью ABAC, тоже могут быть атрибуты. Молодому люминоиду из отрывка выше доступны выстрелы только на минимальной мощности. Мощность выстрела — это атрибут действия.

	 
Важно: что считать отдельными действиями, а что одним действием, но с разными значениями атрибутов — вопрос, который решается индивидуально на стадии проектирования.
Например, открыть и закрыть дверь шлюза можно спроектировать как разные действия: действие1 — открыть, действие2 — закрыть. А может быть действие будет одно — «сдвинуть», а атрибутом станет куда сдвинуть — «вправо» или «влево». Или действие одно — сделать что-то с дверью, а атрибут — что именно сделать: открыть, закрыть, заблокировать, отстрелить при катапультировании и так далее.

Еще несколько примеров атрибутов действия:

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

***

ABAC-модель помогает справляться с самыми сложными задачами по аутентификации и авторизации не только в звездолетах. В портфолио RooX есть проекты разработки и внедрения систем управления доступом для различных отраслей. Система RooX UIDM объединяет единый вход, многофакторную аутентификацию и управление правами доступа, то есть в одном решении есть SSO, MFA и IDM. Хотите узнать, как RooX UIDM может улучшить процессы в вашей компании? Напишите нам на roox@roox.ru — мы готовы показать, как все работает.

Внимание, конкурс!

  1. Сочините свой фрагмент романа, в котором действие будет так или иначе опираться на ABAC. Объем – до 1000 знаков с пробелами.
  2. Пришлите этот фрагмент на abac@roox.ru до 30 апреля с объяснением модели доступа, описанной в фрагменте. От одного автора принимаем один фрагмент.
  3. Ждите запроса на данные для доставки. Мы выберем лучшие фрагменты и отправим авторам наш мерч.

И еще приглашаем в русскоязычное телеграм-сообщество по аутентификации и авторизации. Присоединяйтесь и задавайте вопросы.

Реклама. 12+. Рекламодатель ООО «Рукс Солюшенс», ИНН 7708747748, erid:2SDnjeK5wCG

Как управлять уязвимостями в инфраструктуре свыше 80 000 хостов

23 апреля состоится вебинар о возможностях ScanFactory VM для крупного бизнеса.

Реклама. 18+, ООО «СКАНФЭКТОРИ», ИНН 7727458406