Научная статья на тему 'ИНЖИНИРИНГ ПРИВИЛЕГИЙ В ЗАДАЧЕ ПОСТРОЕНИЯ РОЛЕВОЙ ПОЛИТИКИ РАЗГРАНИЧЕНИЯ ДОСТУПА'

ИНЖИНИРИНГ ПРИВИЛЕГИЙ В ЗАДАЧЕ ПОСТРОЕНИЯ РОЛЕВОЙ ПОЛИТИКИ РАЗГРАНИЧЕНИЯ ДОСТУПА Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
5
1
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
разграничение доступа / роли / привилегии / матрица доступов / анализ формальных понятий / access control / roles / permissions / access matrix / formal concept analysis

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Н.Ф. Богаченко

Проблема инжиниринга ролей расширяется подзадачей разработки привилегий. Предполагается, что в информационной системе задано дискреционное разграничение доступа. Для построения ролевой политики безопасности предлагается методика, основанная на алгоритмах анализа формальных понятий. По матрице доступов строится решётка Галуа, узлы которой интерпретируются как возможные привилегии. Определяются критерии выбора оптимального набора привилегий и обсуждается эвристический алгоритм решения поставленной задачи.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

PERMISSIONS ENGINEERING IN THE TASK OF CONSTRUCTING A ROLE-BASED ACCESS CONTROL POLICY

The problem of role engineering is extended by the subproblem of permissions engineering. It is assumed that discretionary access control is specified in the information system. To build a role-based security policy, a technique based on algorithms for formal concept analysis is proposed. Based on the access matrix, a Galois lattice is constructed, the nodes of which are interpreted as possible permissions. Criteria for choosing the optimal set of permissions are determined and a heuristic algorithm for solving the problem is discussed.

Текст научной работы на тему «ИНЖИНИРИНГ ПРИВИЛЕГИЙ В ЗАДАЧЕ ПОСТРОЕНИЯ РОЛЕВОЙ ПОЛИТИКИ РАЗГРАНИЧЕНИЯ ДОСТУПА»

УДК 004.056 DOI 10.24147/2222-8772.2024.1.94-102

ИНЖИНИРИНГ ПРИВИЛЕГИИ В ЗАДАЧЕ ПОСТРОЕНИЯ РОЛЕВОЙ ПОЛИТИКИ РАЗГРАНИЧЕНИЯ ДОСТУПА

Н.Ф. Богаченко

к.ф.-м.н., доцент, e-mail: nfbogachenko@mail.ru

Омский государственный университет им. Ф.М. Достоевского, Омск, Россия

Аннотация. Проблема инжиниринга ролей расширяется подзадачей разработки привилегий. Предполагается, что в информационной системе задано дискреционное разграничение доступа. Для построения ролевой политики безопасности предлагается методика, основанная на алгоритмах анализа формальных понятий. По матрице доступов строится решётка Галуа, узлы которой интерпретируются как возможные привилегии. Определяются критерии выбора оптимального набора привилегий и обсуждается эвристический алгоритм решения поставленной задачи.

Ключевые слова: разграничение доступа, роли, привилегии, матрица доступов, анализ формальных понятий.

Одним из основных способов обеспечения информационной безопасности является защита от несанкционированного доступа. При этом задача построения политики разграничения доступа считается не менее важной, чем, например, стойкость используемых криптографических алгоритмов. Практическая реализация классических моделей управления доступом сталкивается с рядом трудностей применительно к крупномасштабным информационным системам (Large-Scale Complex IT Systems). В данной работе будет рассмотрена ролевая модель разграничения доступа и проблемы, возникающие при её построении.

1. Разработка ролей

Рассмотрим математическую постановку задачи построения ролевого разграничения доступа (Role-Based Access Control) [1] в некоторой информационной системе. Этот процесс состоит из трёх этапов:

1. Построение иерархии ролей:

✓ формирование множества ролей: R = {г\,..., гп};

✓ формирование множества привилегий: Р = {р\,... ,рт};.

✓ назначение привилегий ролям: RP : R ^ 2Р;

✓ авторизация ролей: RR : R ^ 2Д.

2. Предоставление ролей пользователям:

✓ формирование множества пользователей: U = {щ,..., us};

✓ назначение привилегий пользователям: UP : U ^ 2Р;

✓ авторизация пользователей: UR : U ^ 2Д.

3. Работа в системе:

✓ формирование множества сеансов работы: С = {с\,..., ct};

✓ управление доступом: CU : С х U ^ 2R.

При реализации ролевой политики разграничения доступа в небольшой информационной системе, как правило, не возникает сложности в выборе множеств R и Р и отображения RP. Другими словами, определение ролей и закрепление за каждой ролью набора привилегий осуществляется администратором безопасности в ручном режиме на основе анализа бизнес-процессов. Ситуация резко усложняется, когда информационная система является крупномасштабной [2,3]. В этом случае поиск оптимального (корректного, полного) множества ролей и связанных с каждой ролью привилегий является весьма сложной задачей, требующей вычислительной поддержки (автоматизации). Данная задача получила название «инжиниринг ролей» (Role Engineering) [4]. Как известно, для решения сложных проблем, в том числе и для задачи инжиниринга ролей, возможны два подхода, два пути решения: нисходящий (top-down) и восходящий (bottom-up).

Применительно к задаче инжиниринга ролей нисходящий подход (или, как его ещё называют, метод «с чистого листа») заключается в классической последовательности поэтапного построения ролевой политики разграничения доступа. Группа экспертов определяет множество R, задаёт отображения RP и RR. И лишь затем происходит переход ко второму этапу - к авторизации пользователей на роли. Но в крупномасштабных информационных системах как число пользователей, так и число объектов доступа (а значит, и число привилегий) существенно увеличивается. Кроме того, нередко необходим учёт уже имеющихся информационных потоков, разрешений и запретов на доступ и т. п. В связи с этим всё более востребован восходящий подход к решению задачи инжиниринга ролей. В этом случае построение ролевой модели начинается со второго этапа: за основу берутся множество U и отображение UР, т. е. уже существующие правила доступа - потребности пользователей в определённом наборе привилегий. При таком подходе к проектированию ролевого разграничения доступа часто используются методы интеллектуального анализа данных (Data Mining). В связи с чем задачу инжиниринга ролей, для решения которой используется восходящий подход, принято называть «проблемой разработки ролей» (Role Mining Problem) [5]. Постановка этой задачи может быть формализована следующим образом [6]:

• Дано:

✓ множество пользователей: U = {щ,... ,us};

✓ множество привилегий: Р = {р1, ... ,рт};

✓ отображение, определяющее назначение привилегий пользователям: UP : U ^ 2Р.

• Найти:

✓ множество ролей: R = {г\,..., гп};

✓ отображение, определяющее назначение привилегий ролям: RP : R ^ 2Р;

✓ отображение, определяющее авторизацию пользователей:

UR : U ^ 2fí;

✓ отображение, определяющее авторизацию ролей: RR : R ^ 2R.

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

Возникает вопрос, что делать, если в крупномасштабной информационной системе множество привилегий Р и тем более отображение UР ещё не определены? Если подсистема разграничения доступа строится «с нуля», то здесь необходима серьёзная работа экспертов. Но в случае, когда в информационной системе ранее уже была реализована дискреционная политика разграничения доступа (Discretionary Access Control) [7], являющаяся базовой для всех защищённых компьютерных систем, представляется возможным частично автоматизировать процесс выявления множества привилегий Р за счёт применения методов интеллектуального анализа данных (используемых для решения проблемы разработки ролей в целом).

2. Вспомогательные модели и методы

Дискреционное разграничение доступа основано на произвольном управлении доступом: разрешение на доступ определяется для каждого субъекта к каждому объекту. Пусть S - множество субъектов, О - множество объектов, А - множество видов доступа. Для каждой пары (si, Oj) Е S х О задаётся набор разрешённых видов доступа aij С А, т. е. определяется правило доступа (si, Oj,aij). Такие правила организовываются в матрицу доступов M размерности IS| х |0|, в которой каждому субъекту соответствует своя строка, каждому объекту - свой столбец, а на их пересечении указывается набор разрешённых видов доступа aij.

Не ограничивая общности, будем считать, что U = S, т. е. множества пользователей и субъектов совпадают. В реальных системах U С S, но для решения наших задач достаточно преобразовать матрицу доступов M, удалив из неё строки, которые не соответствуют пользователям.

Далее рассмотрим один из подходов к решению вопроса формирования множества привилегий Р на основе имеющейся матрицы доступов M. Предлагается использовать методы анализа формальных понятий (Formal Concept Analysis) [8], успешно применяемые для решения классической проблемы разработки ролей [6].

В основе анализа формальных понятий лежит определение формального контекста - тройки (I, J, R), где I - множество предметов; J - множество признаков; R - бинарная матрица размерности |/1 х |J|, сопоставляющая признаки предметам. На любые подмножества X С I, Y С J можно подействовать операторами Галуа:

Xf = {j Е J|Vi Е X : [R]y = 1},

= {г Е IV Е Y : [R]tJ = 1}.

Несложно заметить, что X^ - это множество признаков, общих для предметов из X, Y^ - множество предметов, гарантированно имеющих признаки из Y. Формальное понятие формального контекста - это пара (X, Y) такая, что

(X = Y^) Л (Y = Xf).

В формальном понятии (X, У) подмножество X принято называть объёмом, а подмножество У - содержанием. Очевидно, что каждое формальное понятие в матрице Я определяет заполненный единицами прямоугольник с точностью до перестановки строк и/или столбцов. Для любых двух формальных понятий (Х\,У\) и (Х2,У2) выполняется правило включения:

X! С Х2 ^ Уг Э у2.

Это позволяет на множестве всех формальных понятий заданного формального контекста ввести отношение частичного порядка

(Х1,¥1) X (Х2,У2) ^ Хг С Х2(Уг Э У2)

и доказать, что формальные понятия, упорядоченные согласно этому отношению, образуют математическую решётку. Эта решётка называется решёткой Галуа и визуализируется в виде диаграммы Хассе (ориентированного графа), узлами которой являются формальные понятия. Чем выше в диаграмме находится формальное понятие (X, У), тем больше его объём X и меньше содержание У.

3. Разработка привилегий

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

• Дано: множество пользователей и.

• Найти:

✓ множество привилегий Р;

✓ отображение, определяющее назначение привилегий пользователям,

иР : и ^ 2Р.

Если для решения поставленной задачи применяются восходящие принципы проектирования, т. е. за основу решения берутся уже существующие в системе предпосылки к разграничению доступа и используются методы интеллектуального анализа данных, то задачу инжиниринга привилегий назовём «проблемой разработки привилегий» [9,10]. Одна из возможных постановок проблемы разработки привилегий приведена далее.

• Дано:

✓ множество пользователей и;

✓ множество объектов, к которым осуществляется доступ, О;

✓ множество видов доступа А;

✓ матрица доступов М размерности | х |0|.

• Найти:

✓ множество привилегий Р;

✓ отображение, определяющее назначение привилегий пользователям,

ИР : и ->• 2Р.

Таким образом в процессе формирования (или выявления) элементов множества привилегий Р за основу берутся разрешённые пользователям виды доступа к объектам системы. Важно напомнить, что привилегии в ролевой политике разграничения доступа выдаются пользователям на действия в информационной системе в целом, применительно к целой группе или классу объектов. Виды доступа в дискреционной политике, напротив, задают разрешения на доступ к определённому объекту. Поэтому можно сформулировать следующие требования к процедуре определения привилегий:

1. Привилегия должна быть соотнесена с группой объектов, к которым задан один и тот же вид доступа.

2. Привилегия должна быть выдана группе пользователей, которые имеют один и тот же вид доступа к некоторому объекту.

Эти правила приводят к идее использования методов анализа формальных понятий, которые позволят по матричному представлению исходных данных выделить привилегии с оптимальными наборами объектов и пользователей. Предлагается следующая методика решения проблемы разработки привилегий, состоящая из трёх этапов.

Этап 1. В соответствии с видами доступа, определёнными множеством А, построим бинарные матрицы Ml, M2,..., по правилу:

[Мк]г, = 1 ^ ак е M]v,

где к = 1,..., | А|, ак е А, M - матрица доступов. Данный процесс назовём декомпозицией матрицы M по видам доступа. Далее матрицы, полученные в результате декомпозиции, будем рассматривать отдельно.

Этап 2. Следующая подзадача - найти оптимальный набор привилегий Рк для вида доступа ак. Под оптимальным будем понимать такой набор, который в первую очередь минимизирует число выделенных привилегий. Но если руководствоваться только этим критерием, то достаточно будет создать одну привилегию, которая выдаст доступ ак ко всем объектам множества О. К сожалению, при таком подходе подавляющее большинство пользователей получат доступ к объектам, к которым в матрице Мк доступ был запрещён. С точки зрения минимизации рисков утечки информации естественно потребовать, чтобы число таких «лишних» объектов стремилось к нулю. А это приведёт к обратному эффекту - число привилегий придётся увеличивать. Наконец, выделенные привилегии должны обеспечить все доступы, которые разрешались матрицей Мк.

Представим нашу проблему в терминах анализа формальных понятий. Для каждой бинарной матрицы Мк определим формальный контекст Мк = (и, О, Мк), в котором множество предметов - это множество пользователей и, множество признаков - это множество объектов О, бинарная матрица, сопоставляющая предметы и признаки, - это матрица Мк.

Далее найдём все формальные понятия (Х'к ,У£) формального контекста Мк и построим решётку Галуа Гк. Существуют различные алгоритмы решения этой задачи. Их классификацию и описание можно найти, например, в работе [11]. Узлы полученной решётки (формальные понятия (Хгк,Ук)) будем интерпретировать как возможные привилегии, выделенные для вида доступа ак. Среди узлов решётки Гк

необходимо выбрать набор привилегий Рк = {(,Yj}),..., (Х™к ,Y™k)}, удовлетворяющий следующим критериям и ограничениям:

1. Число выделенных привилегий минимально:

F = \Ркmin. (1)

2. Число «лишних» объектов, образующихся при переходе от матрицы доступов к распределению привилегий между пользователями, минимально:

G = ^ £(М,Рк,UP) —► min, (2)

UiEU

здесь L - оператор, вычисляющий количество «лишних» объектов1.

3. Объединение содержаний выделенных привилегий покрывает множество объектов:

U ^ = (3)

Очевидно, что поиск точного решения сформулированной подзадачи выбора оптимального набора привилегий (1) - (3) весьма трудоёмкий. Он сводится к полному перебору возможных подмножеств привилегий, удовлетворяющих требованиям матрицы доступов М& в разрезе разрешений на доступ (требованиям ограничения (3)). С практической точки зрения достаточно найти приближённое решение. Рассмотрим эвристический алгоритм выбора набора Рк по матрице М& и по решётке Гь

Несложно понять, что для каждой j-й строки матрицы Мд., отвечающей пользователю Uj, найдётся узел (XI ,Y£) в решётке Tfc, в котором:

• объём Хгк = {uj} состоит из одного пользователя;

• содержание Yjt включает те объекты, которым отвечают единичные клетки выбранной строки матрицы Мд..

На первом шаге отбора привилегий необходимо найти минимальное число именно таких узлов решётки Г, объёмы которых содержат по одному пользователю, а все содержания в объединении покрывают множество объектов О. Тем самым будут удовлетворены все разрешения на доступ, выдаваемые матрицей (ограничение (3)). Но этот процесс эквивалентен поиску минимального числа строк матрицы

, покрывающих единицами все её столбцы. Эта подзадача представляет собой интерпретацию хорошо известной задачи минимизации булевой формулы методом Квайна-мак-Класки в пункте работы с импликантной матрицей, алгоритмы решения которой изучены и реализованы [12]. От выбранных строк опять перейдём к узлам решётки Г^.

На втором шаге, с целью минимизации числа «лишних» объектов при выдаче привилегий пользователям, для каждого выбранного на предыдущем шаге узла (XI,Yk) рассмотрим узлы, из которых ведут в него дуги, т. е. рассмотрим «родителей» этого узла. Если среди узлов-«родителей» можно выбрать набор узлов, содержания которых совместно покрывают содержание узла (XI,Y£), то фиксируем

1Вопросы построения отображения UP и оператора L по матрице доступов М и набору привилегий Рк требуют отдельного обсуждения и выходят за рамки данной статьи.

такой минимальный по числу узлов набор и привилегию (Хгк, У£) заменяем на привилегии, соответствующие отобранным узлам. Этот процесс, назовём его расщеплением привилегий, ведёт к увеличению числа привилегий и в зависимости от структуры решётки Гк может итеративно продолжаться вплоть до её верхней грани. Критерием остановки следует выбрать условие достижения некоторого баланса между числом привилегий и числом «лишних» объектов при авторизации пользователей на привилегии.

Этап 3. Пусть для каждого вида доступа ак е А определён набор привилегий Рк. Сформируем множество привилегий Р = и Рк (к = 1,..., и определим отображение иР : и ^ 2Р так, чтобы обеспечить все разрешённые матрицей M доступы2.

Пример 1. Разберём второй этап решения проблемы разработки привилегий на примере. Пусть построен формальный контекст Мк с матрицей Мк.

М

к =

01 02 оз 04 о 5 05 О7

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

и1 (1 0 0 0 0 1 0

и2 1 0 1 1 1 1 0

из 1 0 0 1 0 1 0

и4 0 1 1 0 1 0 0

иъ \0 1 0 0 0 0 1

Иерархия возможных привилегий, порождённая решёткой формальных понятий Гк формального контекста Мк, представлена на рис. 1. Возможные привилегии имеют следующие объёмы и содержания:

Рг = ({и1,и2,и3,щ,и5},0);р2 = ({«1 ,и2,щ], |01,0б}); Рз = ({щ, щ}, {оз, о5}); Р4 = ({щ,и5}, {02});

Ръ = ({и2,из}, {01,04,05}); Рб = ({и2}, {01,03,04,05,05}); Р7 = ({44}, {02, Оз, 0Ъ}); р8 = ({щ}, {02,07});

р9 = (0, {01,02,03,04,05,05,07}).

Рис. 1. Диаграмма Хассе решётки Галуа Гк

На первом шаге отбора привилегий будут выбраны привилегии р5 и р8, так как их объёмы состоят из одного пользователя, а объединение содержаний покрывает всё множество объектов. На втором шаге обнаруживается возможность заменить привилегию р5 её «родителями» - привилегиями р3 и р5, так как содержания этих двух

2Более подробно алгоритм построения отображения иР будет рассмотрен в последующих публикациях.

привилегий в объединении покрывают содержание привилегии р6. Таким образом, имеются два варианта формирования набора Рк: Рк = {р6,р8} и Рк = {рз,р5,р8}. Оценим число выделенных привилегий и число «лишних» объектов для каждого варианта (см. табл. 1, 2). Для РЦ: Р = 2, С = 9; для Р = 3, С = 2. Окончательный выбор, какое из подмножеств РЦ или Р^ принять за искомый набор Рк, осуществляется экспертами, исходя из того, какой критерий - Р или С - более значим.

Таблица 1. Отображение иР и «лишние» объекты для набора привилегий Р^

Пользователь Привилегии «Лишние» объекты

и1 Рб {03,04,05}

щ Рб 0

щ Рб {03,05}

и4 Р6 U Р8 {01,04,05,07}

и5 Р8 0

Таблица 2. Отображение иР и «лишние» объекты для набора привилегий Р2

Пользователь Привилегии «Лишние» объекты

и1 Р5 ы

U2 Р3 U Р5 0

U3 Р5 0

и4 Р3 U р8 м

U5 Р8 0

Заключение

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

Литература

1. Sandhu R.S., Coyne E.J., Feinstein H.L., Youman C.E. Role-Based Access Control Models // IEEE Computer. 1996. No. 29(2). P. 38-47.

2. Богаченко Н.Ф. Анализ проблем управления разграничением доступа в крупномасштабных информационных системах // Математические структуры и моделирование. 2018. № 2 (46). С. 135-152.

3. Богаченко Н.Ф. О сложности подсистем разграничения доступа крупномасштабных информационных систем // Математические структуры и моделирование. 2018. № 4 (48). С. 92-98.

4. Coyne E.J. Role engineering // RBAC '95: Proceedings of the first ACM Workshop on Role-based access control. New York: ACM Press, 1995. P. 4-5.

5. Kuhlmann M., Shohat D., Schimpf G. Role mining - revealing business roles for security administration using data mining technology // SACMAT '03: Proceedings of the eighth ACM symposium on Access control models and technologies. 2003. P. 179-186.

6. Белим С.В., Богаченко Н.Ф. Использование решётки формальных понятий для построения ролевой политики разграничения доступа // Информатика и системы управления. 2018. № 1 (55). С. 16-28.

7. Harrison M.A., Ruzzo W.L., Ullman J.D. On Protection in Operating Systems // Communications of the ACM. 1975. P. 14-25.

8. Wille R. Restructuring Lattice Theory: an approach based on hierarchies of concept // Ordered sets / Ed. I. Rival. Dordrecht; Boston: Reidel, 1982.

9. Богаченко Н.Ф. Интеллектуальный анализ политик разграничения доступа больших информационных систем // Математическое и компьютерное моделирование: сб. материалов V Междунар. науч. конф. Омск: Изд-во Ом. гос. ун-та, 2017. С. 142-145.

10. Богаченко Н.Ф. Проблема разработки полномочий // Омские научные чтения - 2020: материалы Четвёртой Всерос. нау. конф. Омск: Изд-во Ом. гос. ун-та, 2020. С. 367-369.

11. Семенова Д.В., Катаева А.В., Монгуш Ч.М. Метод декомпозиции формального контекста и неизбыточное представление закономерностей в многомерных данных: моногр. Красноярск: Сиб. федер. ун-т, 2020.

12. Дмитриев Г.А., Комиссарчик В.Ф., Марголис Б.И. Программа минимизации функций алгебры логики методом Мак-Класки // Программные продукты и системы. 1997. № 2. URL: https://swsys.ru/index.php?page=article&id=1032 (дата обращения: 21.02.2024).

PERMISSIONS ENGINEERING IN THE TASK OF CONSTRUCTING A ROLE-BASED

ACCESS CONTROL POLICY

N.F. Bogachenko

Ph.D. (Phys.-Math.), Associate Professor, e-mail: nfbogachenko@mail.ru Dostoevsky Omsk State University, Omsk, Russia

Abstract. The problem of role engineering is extended by the subproblem of permissions engineering. It is assumed that discretionary access control is specified in the information system. To build a role-based security policy, a technique based on algorithms for formal concept analysis is proposed. Based on the access matrix, a Galois lattice is constructed, the nodes of which are interpreted as possible permissions. Criteria for choosing the optimal set of permissions are determined and a heuristic algorithm for solving the problem is discussed.

Keywords: access control, roles, permissions, access matrix, formal concept analysis.

Дата поступления в редакцию: 26.02.2024

i Надоели баннеры? Вы всегда можете отключить рекламу.