Теоретические основы компьютерной безопасности: Методические указания к выполнению лабораторных работ, страница 21

Тогда допустимы следующие определения сущностей системы:

S (3, 52, 11);

S (1, 1, 2, 3, 4, 5, 6, 7, 8);

S (5,           123412,   23, 32432,   4, 6, 8, 346743, 1);

и недопустимы:

S(0,1,2,3,43,5,6,87,6) // номер субъекта = 0, и отсутствие ';' в конце

S(12, 23,4,5,6,7,8,-5);   // отрицательный атрибут, и 7 атрибутов

Если в секции не описан ни один субъект, это означает, что в системе нет субъектов. Соответственно, панель активных сущностей в интерфейсе ути­литы security.exe будет пустой.

Секция «объекты». Задание набора объектов

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

O (номер объекта, атрибут 1,..., атрибут n);

номер объекта - номер определяемого объекта.

Номер объекта может принимать целое значение в интервале 1...16. При этом, если два объекта имеют один номер, то в рассмотрение принимается только последний по порядку. Ответственность за последствия выхода за гра­ницы интервала лежит на пользователе.

атрибут i - это числовое значение i-oгo атрибута объекта.

Количество атрибутов, как и у субъектов, - 8. Все атрибуты объектов имеют числовой тип unsignedlong. Ошибка при превышении максимального ко­личества атрибутов будет обработана компилятором Си++.

По умолчанию номер объекта = 1, а атрибут i - 0. Тогда вызов функ­ции О ()эквивалентен O(1, 0,0,0,0,0,0,0,0), O(7) - O(7, 0,0,0,0,0,0,0,0), O(5, 12) -O(5, 12,0,0,0,0,0,0,0).

Тогда допустимы следующие определения сущностей системы:

O(1, 23,51,14);

О(1, 1,2,3,4,5,6,7,8);

O(5,           123412,   23,32432,   4,6,8,346743,1);

и недопустимы:

O(20,1,2,3,43,5,6,87,6)   // номер объекта = 20, и отсутствие ';' в конце

О(12, 23,4,5,6,7,8,5, -9,9);   // отрицательный атрибут, и 9 атрибутов

Если в секции не описан ни один объект, это означает, что в системе нет объектов, и соответствующая панель интерфейса утилиты security.exe будет пустой.

Секция «имена атрибутов». Присвоение имен атрибутам

В дальнейшем при определении правил доступа пользователю понадо­бится обращение к атрибутам субъектов или объектов. Для этой цели преду­смотрена возможность присвоения определенного пользователем имени неко­торому атрибуту

субъекта: ATTRNAWIE имя атрибута IS ATTRS (номер атрибута); объекта:   ATTRNAME имя атрибута IS ATTRO (номер атрибута);

имя атрибута - название атрибута субъекта (объекта).

Имя атрибута пользователь может выбрать по своему желанию. Оно не должно совпадать со служебными словами языка описания модели и с уже объявленными именами.

номер атрибута - номер атрибута, которому пользователь присваивает имя.

Номер атрибута - это целая величина от 1 до 8.

Например, верными будут объявления:

ATTRNAME seclevel_o IS ATTRO(15);

ATTRNAME ROLE_OF_SUBJECT IS ATTRS(1):

и неверными:

ATTRNAME attr1 ATTRS(O)         /* отсутствует служебное слово IS, номер

атрибута = 0, отсутствует ';'   */

ATTRNAME ATTRO IS ATTRO(10); /* совпадение имени атрибута со слу­жебным словом, и номер атрибута превышает предельное значение */

Язык описания модели позволяет присвоить имя конкретному атрибуту, т.е. пользователь может, если это необходимо, ввести некоторую переменную и присвоить ей определенное значение атрибута. Объявление такой перемен­ной происходит следующим образом:

ATTRNAME имя атрибута = АS(номер атрибута);

ATTRNAME имя атрибута = АО(номер атрибута);

или

ATTRNAME имя атрибута = AS{ номер атрибута, номер субъекта);

ATTRNAME имя атрибута = АО( номер атрибута, номер объекта);

или

ATTRNAME имя атрибута 1 = АS(номер атрибута <,номер субъекта>),

имя атрибута n = АО(номер атрибута <,номер объекта> );