Модель безопасности веб-приложений на основе мандатного ролевого разграничения доступа
Автор: Кононов Дмитрий Дмитриевич, Исаев Сергей Владиславович
Журнал: Вестник Бурятского государственного университета. Философия @vestnik-bsu
Рубрика: Системный анализ и информационные технологии
Статья в выпуске: 9, 2012 года.
Бесплатный доступ
Статья посвящена разработке модели безопасности для веб-приложений. В мандатную ролевую модель добавлены новые элементы, учитывающие функционирование веб-приложений.
Модель безопасности, ролевое разграничение доступа, мандатное разграничение доступа, веб-приложения
Короткий адрес: https://sciup.org/148181263
IDR: 148181263
Текст научной статьи Модель безопасности веб-приложений на основе мандатного ролевого разграничения доступа
В связи с развитием систем телекоммуникаций и веб-сервисов вопросы безопасности становятся все более актуальными и востребованными. Целью работы является создание модели безопасности, ориентированной на использование в веб-приложениях.
В настоящее время основными моделями разграничения доступа являются дискреционная, мандатная, ролевая.
Дискреционные модели безопасности основаны на управлении доступа субъектов к объектам с помощью списков управления доступа или матрицы доступа. В этом семействе наиболее исследованы модели Харрисона - Руззо - Ульмана (ХРУ) [1], типизированная матрица доступа [2], TakeGrant [3].
Мандатное разграничение доступа - разграничение доступа субъектов к объектам, основанное на назначении метки конфиденциальности для информации, содержащейся в объектах, и выдаче разрешений субъектам на обращение к информации такого уровня конфиденциальности. Примером мандатной модели является модель Белла - ЛаПадула [4]. В классической модели Белла - Ла-Падулы анализируются условия, при выполнении которых в компьютерной системе невозможно возникновение информационных потоков от объектов с большим уровнем конфиденциальности к объектам с меньшим уровнем конфиденциальности.
Ролевое разграничение доступа является дальнейшим развитием политики дискреционного разграничения доступа: права доступа субъектов к объектам системы группируются по некоторым признакам, образуя роли. Формирование ролей призвано определить четкие и понятные для пользователей правила разграничения доступа.
Перечисленные модели не учитывают специфику функционирования веб-приложений, в частности, иерархическую организацию запросов и ссылок, а также ограничены в способах задания доступа. В работе описана адаптированная модель безопасности, которая устраняет данные проблемы.
Модель ролевого разграничения доступа
Базовая модель ролевого разграничения доступа RBACa [5] задается набором элементов:
, где:
U - множество пользователей;
R - множество ролей;
Р - множество прав доступа;
S - множество сессий пользователей;
UA: U 2R - функция, определяющая для каждого пользователя множество ролей, на которые он может быть авторизован;
РА: R^>2F - функция, определяющая для каждой роли множество прав доступа, при этом Vp е P,3r е R такой, что р е РА(г);
user: S ^ U - функция, определяющая для каждой сессии пользователя, от имени которого она авторизована;
roles: S —> 2R - функция, определяющая для пользователя множество ролей, на которые он авторизован в данной сессии; при этом в каждый момент времени Vs G S выполняется условие role sis) с UA(user(s)).
Модель RBAC, задается как RBACa , при этом вводится иерархией ролей (RH).
Адаптация модели для веб-приложений
В модель RBAC, к существующим элементам «пользователь» (user), «роль» (role), «разрешение» (permission), «сессия» (session) добавим новые, учитывающие особенности функционирования веб-приложений: «токен» (token), «запрос» (request).
Определение 1. Токен (Тк) - набор атрибутов пользователя, позволяющих осуществить его аутентификацию в системе. Токеном является пара (имя, пароль) либо пара (сертификат ЭЦП, закрытый ключ ЭЦП).
Определение 2. Запрос (Rq) - набор информации, пересылаемой клиентом серверу по протоколу HTTP. Запрос содержит набор заголовков, уникальный идентификатор ресурса, набор параметров имя/значение и тело запроса.
Запрос принадлежит сессии, в рамках одной сессии может выполняться несколько запросов. Элементы «запрос» и «разрешение» связаны отношением «многие-ко-многим». На множестве запросов Rq вводится отношение включения.
Определение 3. Запрос А включает запрос В (В < А), если путь уникального идентификатора ресурса (URI) запроса А содержит путь уникального идентификатора ресурса запроса В с начальной позиции строки в рамках одного пространства имен, при этом len Bpath< len Apath , где len(x) - длина строки х.
А
В
/library

Рис. 1. Пример отношения включения на множестве запросов
На рисунке 1 приведены запросы А, В, С и D, для которых справедливы следующие отношения: А<В, В<С, B Отношение включения обладает следующими свойствами: • рефлексивность: • антисимметричность: Prq,rq' g Rq: ((rg < rq')&(rq' < rq)) rq = rq', • транзитивность: Vrgx,rq,,rq3 e Rq: ((rq, Таким образом, отношение включения на множестве запросов Rq задает отношение нестрогого частичного порядка. Зададим функцию RqA, отображающую права доступа на множество запросов RqA : Р —> 2Rq. Определение 4. Иерархия запросов (RqH) - заданное на множестве запросов Rq отношение включения. При этом для любых р^Р справедливо условие: если rq,rq' & Rq, rq^RqA(p} и rq < rq', то rq' e RqA(p}. Таким образом, определение 4 дает возможность осуществлять гибкое разграничение доступа для отдельных запросов и всех запросов, которые включают данный запрос. На рисунке 2 представлена схема элементов полученной модели безопасности. Иерархия ролей Иерархия запросов Рис. 2. Схема элементов модели безопасности Адаптированная модель мандатного ролевого разграничения доступа В работе [6] для базовой ролевой модели описано использование мандатного разграничения доступа, направленной на защиту от угрозы конфиденциальности информации. В рамках введенной терминологии опишем модель мандатного ролевого разграничения доступа для вебприложений. В дополнение к используемым элементам ролевой модели, заданной выше, добавим следующие элементы: Rq - множество запросов; (Z,<) - решетка уровней конфиденциальности; с.U —>L - функция уровней доступа пользователей; с : Rq —>L- функция уровней конфиденциальности запросов; А = read, write - виды доступа; R = {х_read | х е Z} о {х_write | х е Z} - множество ролей; Р = {(rg, read} | rq е Rq} Таким образом, на множестве ролей R заданы независимые иерархии по чтению и записи. Используя определения 5.20 и 5.22 [7], в соответствии с требованиями либерального мандатного управления доступом для множества запросов Rq задается иерархия на множестве ролей R и ограничения функций UA(), rolesQ и РА(). В рамках мандатного разграничения доступа задается определение информационного потока. Определение 5. Будем считать, что существует информационный поток от запроса rq Е Rq к запросу rq' е Rq тогда и только тогда, когда существуют роли г,г' eR и сессия s е S такие, что (rq, read} е PA(r}, (rq', write} е РА(г') и г, г' е roles(s}. Сформулируем утверждение о невозможности реализации запрещенных информационных потоков от запросов с высоким уровнем конфиденциальности к запросам с низким уровнем конфиденциальности. Утверждение 1. Если модель ролевого управления доступом соответствует требованиям либерального мандатного управления доступом, то в ней для любых запросов rq, rq' Е Rq, таких что c(rq} > c(rq'), невозможно возникновение информационного потока от rq к rq'. Доказательство проводится аналогично теоремы 5.1 [7]. Таким образом, описанная модель является безопасной с точки зрения информационных потоков для запросов с разным уровнем конфиденциальности. Заключение В работе описана мандатная ролевая модель, учитывающая специфику функционирования вебприложений. Приведены определения токена, запроса, задано отношение включения на множестве запросов. Сформулировано утверждение о безопасности информационных потоков в системах, построенных на базе данной модели с учетом требований либерального мандатного управления доступом. Проведенное исследование позволило повысить безопасность разрабатываемых вебприложений [8, 9].