Реализация модели Белла-ЛаПадулы в системе компьютерной алгебры Mathematica | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 28 декабря, печатный экземпляр отправим 1 января.

Опубликовать статью в журнале

Авторы: ,

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №3 (83) февраль-1 2015 г.

Дата публикации: 21.01.2015

Статья просмотрена: 2931 раз

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

Магазев, А. А. Реализация модели Белла-ЛаПадулы в системе компьютерной алгебры Mathematica / А. А. Магазев, С. И. Тимохин. — Текст : непосредственный // Молодой ученый. — 2015. — № 3 (83). — С. 68-71. — URL: https://moluch.ru/archive/83/15117/ (дата обращения: 18.12.2024).

В работе представлен пакет расширения, реализованный авторами в рамках системы 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/

Основные термины (генерируются автоматически): уровень секретности, компьютерная алгебра, система, субъект, MATLAB, реализация модели, начальное состояние, списочный номер, списочный номер субъекта, темно-серый цвет.


Похожие статьи

Применение Wolfram Mathematica для анализа работы модели безопасности Take-Grant

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

Разработка и отладка программного обеспечения для подавления артефактов в электрокардиограмме

В данной статье описана спроектированная программа, представляющая виртуальную программу для подавления артефактов в электрокардиограмме, написанная в среде Mathcad. Так же был построен график спектральной области, по которому можно найти оптимальное...

Организация многомодульной, слабосвязанной архитектуры приложения при работе с Gradle

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

Обзор технологий виртуализации

В представляемой статье приведено описание различных типов виртуализации, как наиболее значимой характеристики средств виртуализации. Рассмотрен ряд технологий виртуализации, в частности OpenVZ, Parallels Virtuozzo Containers, Xen и KVM. А также, про...

Intelligent Evolutionary Studio — программное обеспечение для машинного обучения искусственных нейронных сетей

В работе приводится описание разработанного авторами программного обеспечения Intelligent Evolutionary Studio, реализованного с помощью шаблона проектирования эволюционного моделирования. Поясняется формат файлов искусственных нейронных сетей. Описан...

Восстановление простых линейных и итерационных функций средствами MATLAB

В данной статье рассматривается метод восстановления простых функций, сохраненных в виде p-файлов, средствами MATLAB. В качестве основного инструмента используется встроенный отладчик и функция dbstop. Применение описанных в статье методов позволяет ...

Выбор архитектуры локальной сети при проектировании систем реального времени

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

Механизмы работы нейронных сетей

В статье рассматривается применение механизмов соответствия сгенерированных и нормированных слов. Вычислительные эксперименты показывают преимущество предложенной модели по сравнению с charRNN. В документе также рассматривается применение предлагаемо...

Модификация алгоритма Смита — Уотермана для задачи автоматического распознавания слитной речи

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

Создание и обучение нейронных сетей в системе Matlab

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

Похожие статьи

Применение Wolfram Mathematica для анализа работы модели безопасности Take-Grant

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

Разработка и отладка программного обеспечения для подавления артефактов в электрокардиограмме

В данной статье описана спроектированная программа, представляющая виртуальную программу для подавления артефактов в электрокардиограмме, написанная в среде Mathcad. Так же был построен график спектральной области, по которому можно найти оптимальное...

Организация многомодульной, слабосвязанной архитектуры приложения при работе с Gradle

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

Обзор технологий виртуализации

В представляемой статье приведено описание различных типов виртуализации, как наиболее значимой характеристики средств виртуализации. Рассмотрен ряд технологий виртуализации, в частности OpenVZ, Parallels Virtuozzo Containers, Xen и KVM. А также, про...

Intelligent Evolutionary Studio — программное обеспечение для машинного обучения искусственных нейронных сетей

В работе приводится описание разработанного авторами программного обеспечения Intelligent Evolutionary Studio, реализованного с помощью шаблона проектирования эволюционного моделирования. Поясняется формат файлов искусственных нейронных сетей. Описан...

Восстановление простых линейных и итерационных функций средствами MATLAB

В данной статье рассматривается метод восстановления простых функций, сохраненных в виде p-файлов, средствами MATLAB. В качестве основного инструмента используется встроенный отладчик и функция dbstop. Применение описанных в статье методов позволяет ...

Выбор архитектуры локальной сети при проектировании систем реального времени

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

Механизмы работы нейронных сетей

В статье рассматривается применение механизмов соответствия сгенерированных и нормированных слов. Вычислительные эксперименты показывают преимущество предложенной модели по сравнению с charRNN. В документе также рассматривается применение предлагаемо...

Модификация алгоритма Смита — Уотермана для задачи автоматического распознавания слитной речи

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

Создание и обучение нейронных сетей в системе Matlab

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

Задать вопрос