Научная статья на тему 'Разработка ролевой модели безопасности управления доступом и информационными потоками компьютерной системы SELinux'

Разработка ролевой модели безопасности управления доступом и информационными потоками компьютерной системы SELinux Текст научной статьи по специальности «Компьютерные и информационные науки»

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

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Качанов Марк Александрович

Security analysis problem for access and information flows control in SELinux computer system is solved; a role-based security model of such computer systems and techniques for applying this model in practice are suggested in this paper.

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

Role-based security model of SELinux computer system

Security analysis problem for access and information flows control in SELinux computer system is solved; a role-based security model of such computer systems and techniques for applying this model in practice are suggested in this paper.

Текст научной работы на тему «Разработка ролевой модели безопасности управления доступом и информационными потоками компьютерной системы SELinux»

УДК 004.94

РАЗРАБОТКА РОЛЕВОЙ МОДЕЛИ БЕЗОПАСНОСТИ УПРАВЛЕНИЯ ДОСТУПОМ И ИНФОРМАЦИОННЫМИ ПОТОКАМИ КОМПЬЮТЕРНОЙ СИСТЕМЫ SELinux1

М. А. Качанов

В настоящее время наиболее рапространенным методом реализации безопасного управления доступом и информационными потоками в операционных системах (ОС) семейства GNU/Linux является применение программного средства SELinux, в связи с чем возникает задача разработки формальной модели его безопасности. В данной работе решается задача анализа безопасности управления доступом и информационными потоками в компьютерной системе (КС) SELinux, предлагаются ролевая модель безопасности данной КС, алгоритм проверки возможности получения права доступа и реализации информационного потока, а также метод применения данной модели на практике для анализа безопасности рассматриваемой КС.

Будем использовать основные понятия и обозначения теории ДП-моделей, считая, что моделируемая КС представляется системой, каждое состояние в которой задаётся набором объектов, а каждый переход из состояния в состояние осуществляется в результате применения одного из правил преобразования состояний. Определим новые элементы ДП-модели, необходимые для адекватного анализа безопасности КС SELinux:

T — множество типов сущностей;

M — множество известных классов сущностей;

Rm — множество прав доступа, допустимых для известных классов сущностей; label : E ^ U х R х T — функция, сопоставляющая сущности контекст безопасности (метку);

user : E ^ U, role : E ^ R, type : E ^ T — такие функции, что если e G E и label(e) = (u,r,t), то user(e) = u, role(e) = r, type(e) = t;

class : E ^ M — функция, сопоставляющая каждой сущности известный класс; allow_role : R ^ 2R — функция, сопоставляющая каждой роли множество ролей, которые она может занять;

role_types : R ^ 2T — функция, сопоставляющая каждой роли множество типов

субъектов, к которым ей разрешено получать доступ;

user_roles : U ^ 2R — функция, сопоставляющая каждому пользователю множество ролей, на которые он может быть авторизован;

class_perms : M ^ 2Rm —функция, сопоставляющая каждому известному классу сущностей набор прав доступа, к нему применимый;

Rr = {(c,p) : c G M,p G class_perms(c)} —множество видов прав доступа;

P С S х E х (Rr U {ownr}) —множество текущих прав доступа субъектов к сущностям;

функции fa : U х E ^ 2е, fp : U х E ^ 2е, ft : S х E х Rr ^ 2е, type_rights : T х T ^ 2Rr, role_transition : R х T ^ R, type_transition : T х T х M ^ 2T, login : R х T ^ 2RxT, constrain : Rr х (U х R х T)2 ^ {0,1}, validatetrans : M х (U х R х T)3 ^ {0,1}.

Определение 1. Иерархия известных классов сущностей — это заданное на множестве M отношение частичного порядка ^м, такое, что

Vm1,m2 Є M (m1 ^м m2 ^ class_perms(m1) D class _perms(m2)).

Определение 2. Совокупность объектов G = (U,UL, R, E, S, LS,T, F, M, RM, P, label, allow_role, role_types, user_roles, class_perms, type_rights, role_transition, type_transition, HE, login, constrain, validatetrans, ^M) будем называть состоянием системы.

В модели определены 19 правил преобразования состояний, образующих множество OP.

Используем следующие обозначения:

E(G*, OP) —система, где G* —множество всех возможных состояний; OP — множество правил преобразования состояний;

G \~ор G' — переход системы из состояния G в состояние G' с использованием правила преобразования состояний op Є OP.

Предположение 1. В рамках модели КС SELinux на траекториях функционирования системы доверенные пользователи не создают новых субъектов, доверенные субъекты не участвуют в передаче прав доступа, не реализуют информационных потоков по времени, не создают субъектов, не используют права доступа владения к другим субъектам.

Предположение 2. В рамках модели КС SELinux на траекториях функционирования системы не изменяются множества U, Ul , Ls, R, T, M, Rm, отношение ^м на множестве M, функции allow_role, role_types, user_roles, class_perms, type_rights, role_transition, type_transition, login, предикаты constrain, validatetrans.

Ввиду предположения 2 состояние системы будем записывать как G = (S, E, P, F, HE, class).

Определение 3. Система T.(G*,OP) с множеством правил преобразования состояний OP называется ДП-моделью КС SELinux, если её состояния подчиняются определению 2 и удовлетворяют предположениям 1 и 2.

Для формализации возможности получения права доступа и реализации информационного потока сформулируем определения предикатов безопасности ДП-модели КС SELinux.

Определение 4. Пусть G0 = (S0,E0,P0,F0,HE0,class0) —состояние системы T,(G*, OP), в котором существуют пользователь u Є U, право доступа ar Є Rr и сущность e Є E0. Определим предикат can_share(u, e, ar, G0), который будет истинным тогда и только тогда, когда существуют состояния G1,... , GN = (SN, EN, PN, FN, HEN, classN) и правила преобразования состояний op1,... ,opN, такие, что G0 \~opi G1 \~op2 ... ^~0pN Gn и существует субъект x Є SN, такой, что user(x) = u, и (x, e, ar) Є PN, где N ^ 0.

Определение 5. Пусть G0 = (S0,E0,P0,F0,HE0,class0) —состояние системы T.(G*, OP), в котором существуют сущности x,y Є E0. Определим предикат can_write_-memory(x,y,G0), который будет истинным тогда и только тогда, когда существуют состояния G1,... ,Gn = (Sn,En,Pn,Fn,Hen,classN) и правила преобразования состояний op1,... ,opN, такие, что G0 \~opi G1 \~op2 ... \~opN GN и (x,y,writem) Є FN, где

N ^ 0.

Определение 6. Пусть G0 = (S0,E0,P0,F0,HE0,class0) —состояние системы T.(G*, OP), в котором существуют сущности x,y G E0. Определим предикат can_write time(x, y, G0), который будет истинным тогда и только тогда, когда существуют состояния Gi,..., GN = (Sn, En, PN, Fn, HEN, classN) и правила преобразования состояний opi,..., opN, такие, что G0 \~opi Gi hop2 ... bopN GN и (x, y, writet) G FN, где N ^ 0.

Замечание 1. Заметим, что для проверки истинности предикатов can_share(u, e,ar,G0), can_write_memory(x,y,G0) и can_write_time(x,y,G0) в соответствии с определением требуется учесть все траектории функционирования КС, что не осуществимо на практике.

В связи с замечанием 1 представляется целесообразным сформулировать и обосновать алгоритмы проверки истинности предикатов can_share, can_write_memory и can_write_time. Такие алгоритмы реализуют преобразование начального состояния КС в его замыкание и позволяют проверить истинность предикатов для всех пользователей, сущностей и прав доступа одновременно. В работе вводятся определения замыканий ДП-модели КС SELinux (time-замыкания и memory-замыкания), предлагаются и обосновываются алгоритмы их построения.

Предлагается также метод применения построенной модели на практике для проверки возможности получения права доступа и реализации информационного потока в КС SELinux. Метод состоит из двух основных этапов. Первый этап — это построение начального состояния предложенной ДП-модели КС SELinux по набору конфигурационных файлов КС. Второй этап — это построение time-замыкания полученного состояния и интерпретация полученных результатов с точки зрения КС SELinux. На входе метод имеет весь набор необходимых конфигурационных файлов КС SELinux, а на выходе — ответ на вопрос, возможны ли получение заданного права доступа или реализация заданного информационного потока.

УДК 004.94

ОСОБЕННОСТИ РАЗРАБОТКИ ДП-МОДЕЛЕЙ СЕТЕВОГО УПРАВЛЕНИЯ ДОСТУПОМ1

Д. Н. Колегов

Работа посвящена особенностям построения ДП-моделей компьютерных систем (КС), реализующих сетевое управление доступом. Такие модели будем называть сокращенно СУД ДП-моделями, а при их описании используем основные определения и обозначения из [1].

Механизмы сетевого управления доступом в современных КС, как правило, обладают следующими свойствами, затрудняющими применение элементов и средств существующих ДП-моделей для их описания и исследования:

— распределенностью компонентов управления доступом и их сетевым взаимодействием;

— динамическим управлением доступом субъектов к сущностям на основе правил доступа и, как следствие, предоставлением субъектам различных прав доступа в зависимости от истинности условий того или иного правила доступа;

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