Библиографическое описание:

Магазев А. А., Тимохин С. И. Реализация модели Белла-ЛаПадулы в системе компьютерной алгебры Mathematica // Молодой ученый. — 2015. — №3. — С. 68-71.

В работе представлен пакет расширения, реализованный авторами в рамках системы Mathematica и предназначенный для исследования модели безопасности Белла-ЛаПадулы. Приведено описание функций и команд, используемых в данном пакете.

 

Введение

Модели безопасности компьютерных систем — это политики безопасности, выраженные формальными способами, например, математически, алгоритмически или схемотехнически [1]. В данной статье рассматривается одна из классических моделей безопасности — мандатная модель Белла-ЛаПадулы [2]. Мы описываем библиотеку подпрограмм для исследования указанной модели, разработанную нами средствами системы компьютерной алгебры Wolfram Mathematica [4]. Библиотека представляет так называемый пакет расширения, дополняющий стандартный функционал среды Mathematica.

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

1.      Описание модели Белла-ЛаПадулы

Напомним основные положения классической модели Белла-ЛаПадулы [1, 2, 3].

В рамках модели Белла-ЛаПадулы компьютерная система представляется совокупностью следующих компонент:

-                   множеством объектов доступа O;

-                   множеством субъектов доступа S;

-                   множеством прав доступа R = {read, write};

-                   матрицей доступа A, строки которой отвечают субъектам доступа, а столбцы — объектам доступа. Элементы матрицы доступов — это подмножества множества прав: A [s,o] Í R, s Î S, o Î O;

-                   линейно упорядоченным множеством L, элементы которого есть уровни безопасности субъектов и объектов доступа;

-                   функцией F: S È O ® L; данная функция сопоставляет субъектам и объектам доступа некоторые уровни безопасности;

-                   множеством V состояний системы, которое есть множество всевозможных упорядоченных пар (F, A);

-                   набора запросов Q субъектов на доступ к объектам, выполнение которых переводит систему в новое состояние;

-                   функции переходов T: V × Q ® V.

Вводятся следующие определения безопасности состояния системы.

Определение 1. Состояние v Î V называется просто безопасным, если для любых

s Î S и o Î O выполняется условие: read Î A [s, o] Þ F(s) ³ F(o).

Определение 2. Состояние v Î V называется *-безопасным, если для любых s Î S и o Î O выполняется условие: write Î A [s, o] Þ F(o) ³ F(s).

Определение 3. Состояние v Î V называется безопасным, если оно просто безопасное и *-безопасное одновременно.

Определение 4. Система является безопасной, если ее начальное состояние v0 Î V безопасно, и все состояния, достижимые из начального с помощью применения конечной последовательности запросов из множества Q, являются также безопасными.

На основе данных определений Дэвидом Беллом и Леонардом ЛаПадулой была доказана следующая теорема.

Теорема (основная теорема безопасности).

Система является безопасной, если и только если:

1.             безопасным является начальное состояние v0 Î V;

2.             если v = (F, A) Î V — состояние, достижимое из v0, и v* = T(v, q), где q Î Q,

3.             v* = (F*, A*), то для любых s Î S и o Î O выполняются условия:

-        если read Î A* [s, o] и read Ï A [s, o], то F*(s) ³ F*(o);

-        если read Î A [s, o] и F*(s) < F*(o), то read Ï A* [s, o];

-        если write Î A* [s, o] и write Ï A [s, o], то F*(o) ³ F*(s);

-        если write Î A [s, o] и F*(o) < F*(s), то write Ï A* [s, o].

2. Реализация модели Белла-ЛаПадулы в рамках системы компьютерной алгебры Mathematica

В настоящее время наряду с программами на различных языках программирования большую популярность в научных исследованиях приобрели системы компьютерной алгебры, ориентированные на проведение сложных символьных вычислений. Наиболее известными на сегодняшний день среди подобных систем являются MATLAB, Mathcad, Maple и Mathematica.

Спектр задач, решаемых подобными системами, очень широк. В частности, MATLAB предназначен преимущественно для решения задач технических вычислений. Mathcad — это система компьютерной алгебры класса систем автоматизированного проектирования, ориентированная на подготовку интерактивных документов. Система Maple предназначена для символьных вычислений, хотя и имеет ряд средств для численного решения задач.

Система компьютерной алгебры Mathematica — универсальная система, которая осуществляет численные и символьные вычисления. Отличительной особенностью данной системы является очень гибкая работа со списками. Действительно, списки относятся к числу базовых структур данной системы [4], что дает явное преимущество по сравнению с другими системами компьютерной алгебры касательно реализации модели Белла-ЛаПадулы.

Исходя из описания модели Белла-ЛаПадулы, изложенного выше, нами была предложена следующая методика реализации данной модели.

Пользователь должен иметь возможность создавать субъекты и объекты, присваивая им уровни доступа и уровни секретности соответственно. Для этого нами реализованы следующие функции CreateSubject [AccessLevel] и CreateObject [SecurityLevel]. Здесь AccessLevel — уровень доступа субъекта, SecurityLevel — уровень секретности объекта. Отметим, что в нашей реализации модели уровни безопасности — это целые числа.

Далее, пользователь должен иметь возможность устанавливать права в ячейках матрицы доступов. Для этого служит функция SetRights [SubjectNumber, ObjectNumber, Rights], где SubjectNumber — списочный номер субъекта, ObjectNumber — списочный номер объекта, Rights — предоставляемые права субъекту на объект (задается списком {1, 2}, где 1 — право на чтение, 2 — право на запись). Указание фигурных скобок в данном параметре обязательно.

В процессе использования реализации модели всегда можно просмотреть текущее состояние системы. Это делается с помощью команды ShowAllList. После выполнения данной команды выводятся матрица доступов, и таблицы с уровнями безопасности субъектов и объектов (пример на рис. 1).

Рис. 1. Текущее состояние системы

 

Из рисунка видно, что в рамках приведенного нами примера в системе присутствуют 6 субъектов и 6 объектов с соответствующими уровнями безопасности. Каждому субъекту даны некоторые права на объекты.

Проверка безопасности состояния системы осуществляется командами SimpleSecurityQ и StarSecurityQ. Обе эти команды выводят матрицы доступов системы.

На рис. 2 приведен пример вывода команды SimpleSecurityQ. Темно-серым цветом обозначены ячейки, в которых права заданы неправильно, светло-серым — права заданы правильно, не закрашенные ячейки — уровень доступа субъекта выше или равен уровню секретности объекта.

Рис. 2. Простое правило безопасности

 

Рис. 3. *-свойство

 

На рис. 3 приведен пример вывода функции StarSecurityQ. Здесь темно-серым цветом обозначены ячейки, в которых права заданы неправильно, светло-серым — права заданы правильно, не закрашенные ячейки — уровень доступа субъекта ниже или равен уровню секретности объекта.

Описываемый пакет расширения содержит также и ряд дополнительных подпрограмм.

Для удаления субъектов и объектов:RemoveSubject[SubjectNumber] и

RemoveObject [ObjectNumber],где SubjectNumber — списочный номер субъекта,

ObjectNumber — списочный номер объекта.

Для изменения уровней доступа субъектов или уровня секретности объектов: ChangeSubjectLevel [SubjectNumber, AccessLevel] и ChangeObjectLevel [ObjectNumber, SecurityLevel], где AccessLevel — новый уровень доступа субъекта, SecurityLevel — новый уровень секретности объекта.

Для выполнения запросов на изменение состояния системы:

-        запрос на возможность получения определенных прав субъектом на объект:

Query [SubjectNumber, ObjectNumber, Right];

-        запрос на изменение уровня доступа у субъекта:

QueryChangeAccess [SubjectNumber, AccessLevel];

-        запрос на изменение уровня секретности у объекта:

QueryChangeSecurity [ObjectNumber, SecurityLevel].

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

Test [SubjectNumber, ObjectNumber, LevelsNumber],где SubjectNumber– количество субъектов, ObjectNumber — количество объектов, LevelsNumber — количество уровней секретности. В результате выполнения данной команды, на экран выводится окно (рис. 4) содержащее:

-                   матрицу доступов с пустыми ячейками;

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

-                   список объектов с произвольным заполнением уровней секретности;

-                   таблицу заполнения прав доступа;

-                   кнопку «Проверка заполнения таблицы», справа от которой отображается число нажатий на кнопку.

Рис. 4. Режим проверки знаний

 

Суть данной процедуры в следующем. Придерживаясь основных правил модели Белла-ЛаПадулы (см. теорему) пользователь задает права доступов субъектов на объекты, выставляя соответствующие флаги в таблице. При нажатии на кнопку «Проверка заполнения таблицы» выводится отдельное окно с таблицей результатов (рис. 5). Стоит отметить, что в данном случае проводится полная проверка безопасности системы.

Рис. 5. Результат проверки знаний

 

Заключение

В настоящей статье описан пакет расширения системы Mathematica, реализующий основные положения модели безопасности Белла-ЛаПадулы. Разработанная библиотека позволяет существенно расширить возможности изучения политик безопасности и повысить уровень и качество обучения студентов по соответствующим дисциплинам.

 

Литература:

 

1.      Девянин П. Н. Модели безопасности компьютерных систем: Учеб. пособие для вузов. — М.: Академия, 2005. — 144 с.: ил.

2.      Bell D. E., La Padula L. J. Secure Computer System: Unified Exposition and Multics Interpretation. Bedford, MA 01730 — March, 1976

3.      Зегжда Д. П., Ивашко А. М. Основы безопасности информационных систем. — М.: Горячая линия — Телеком, 2000. — 452 с.

4.      Computation meets knowledge. Wolfram Language & System. Documentation Center [Электронный ресурс]. URL: http://reference.wolfram.com/language/

Обсуждение

Социальные комментарии Cackle