Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методические указания ТОКБ.doc
Скачиваний:
33
Добавлен:
11.11.2019
Размер:
497.15 Кб
Скачать

Контрольные вопросы по лабораторной работе

1. Что послужило причиной создания информационных моделей безопасности?

2. Что понимается под невмешательством?

3. В чем заключается требование невмешательства?

4. В каком случае система считается не-выводимо безопасной?

5. Каковы недостатки информационных моделей?

Подготовка к экзамену

После изучения курса проводится итоговый контроль знаний в виде экзамена.

Вопросы итогового контроля

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

1. Защита информации. Общие понятия.

2. Источники угроз безопасности информации.

3. Анализ угроз безопасности информации.

4. Защита информации от несанкционированного доступа.

6. Принципы защиты от несанкционированного доступа.

7. Методы идентификации и аутентификации пользователей.

8. Схемы контроля доступа.

9. Целостность данных в АС.

10. Метод контроля целостности Кларка-Вильсона.

11. Криптографические методы защиты информации.

12. Шифр. Простые шифры. Криптография и криптоанализ.

13. Цифровая подпись.

14. Программы-вирусы.

15. Общая характеристика компьютерных вирусов.

16. Средства антивирусной защиты.

  1. Понятие политики безопасности. Основные аксиомы политики безопасности.

  2. Основные типы политики безопасности.

  3. Понятие доступа и монитора безопасности.

  4. Основные модели безопасности.

  5. Классы защищенности АС.

  6. "Единые" критерии безопасности информационных технологий. Общие положения.

  7. "Единые" критерии безопасности информационных технологий. Профиль защиты.

  8. "Единые" критерии безопасности информационных технологий. Проект защиты.

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

Учебники и учебные пособия:

  1. Гостехкомиссия России. Руководящий документ: Защита от несанкционированного доступа к информации. Термины и определения - ГТК- 1992.- 13с

  2. Теоретические основы компьютерной безопасности - М.: Радио и связь, 2000. – 192 с.

  3. Грушо А.А., Тимонина Е.Е. Теоретические основы защиты информации. - М.: Издательство Агентства «Яхтсмен», - 1996. - 192 с.

  4. Теория и практика обеспечения информационной безопасности. Под редакцией Зегжды П.Д. - М.: Издательство агентства «Яхтсмен», - 1996. -192с..

  5. Ярочкин В.И. Информационная безопасность - М.: Академический проект, 2004. – 544 с.

  6. Девянин П.П., Михальский О.О., Правиков Д.И., Щербаков А.Ю. Теоретические основы компьютерной безопасности. - М.: Радио и связь, 2000.- 192с.

ПРИЛОЖЕНИЯ

Приложение 1

Образец оформления титульного листа

Федеральное агентство по образованию

Сибирский государственный аэрокосмический университет

имени академика М. Ф. Решетнева

Факультет информатики и систем управления

Кафедра Безопасности информационных технологий

Лабораторная работа № __

ТЕМА

Курс: Теоретические основы компьютерной безопасности

Выполнил: ст. гр.______ ФИО

Проверил: Жукова М. Н.

Красноярск 2006

Приложение 2

Язык описания модели

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

Язык описания модели предназначен для определения в рамках иссле­дуемых в лабораторных работах моделей:

• наборов сущностей (субъектов, объектов);

• их атрибутов и

• правил доступа субъектов к объектам.

При выполнении лабораторного практикума указанные параметры сис­темы определяются в файле описания модели при помощи языка описания.

Соответственно, файл описания модели должен состоять из четырех секций:

• субъекты;

• объекты;

• имена атрибутов:

• правила доступа.

Для определения модели язык описания предоставляет набор операто­ров (служебных слов и функций):

S ATTRS THISS IF WRITES DELETES

О ATTRO THISO ENDRULES WRITEO DELETED

ATTRNAME AS NEW_ATTR READS CREATES CHATTRS

IS АО RULES READO CREATED CHATTRO

В каком случае, и в какой секции применяются данные операторы, будет рассмотрено далее при изложении языка описания модели.

Приведем пример файла описания модели с точки зрения его структуры:

// пример файла описания модели

//секция «субъекты»:

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

//секция «объекты»:

О(1 15,16,17,18,19,20,21,25);

//секция «имена атрибутов»:

ATTRNAME secleveIS IS ATTRS (1);

//секция «правила доступа»:

RULES

READO IF (func ())

WRITEO IF (seclevelS [THISS] <seclevelO [THISO})

ENDRULES

Секция «субъекты» предназначена для определения набора субъектов в системе. Здесь субъекты нумеруются и задаются значения их атрибутов, Секция может включать от одного до шестнадцати субъектов. Максимальное количество атрибутов фиксировано и равно 8. Все атрибуты имеют числовой тип unsigned long.

Секция «объекты» предназначена для определения набора объектов в системе. Причем, порядок секций «субъекты» и «объекты» непринципиален, т.е. объекты могут быть объявлены перед субъектами. Здесь объекты нумеру­ются и задаются значения их атрибутов. Количество объектов также варьиру­ется от 1 до 16. Атрибуты объектов также имеют числовой тип unsigned long, их максимальное количество - 8.

Секция «имена атрибутов» служит для именования атрибутов, как субъектов, так и объектов. Здесь задается имя атрибута по его номеру. Коли­чество атрибутов у субъекта и объекта фиксировано и равно 8. Полученное ат­рибутом имя сохраняется при смене номера сущности. Имена атрибутов субъ­ектов и объектов должны различаться и не повторять служебные слова языка описания и языка Си++.

Секция «правила доступа» предназначена для задания условий, по которым происходит доступ активных сущностей к пассивным. Секция выделя­ется служебными словами RULES и ENDRULES. Внутри секции записываются виды доступа и условия доступа. Возможны следующие виды доступа к пассив­ной сущности:

  1. READS - чтение субъекта;

  2. READO - чтение объекта;

  3. WRITES - запись в субъект;

  4. WRITEO - запись в объект;

  5. CREATES - создание субъекта;

  6. CREATED - создание объекта;

  7. DELETES - удаление субъекта;

  8. DELETED - удаление объекта;

  9. CHATTRS - смена атрибутов субъекта;

  10. CHATTRO - смена атрибутов объекта.

Условия доступа записываются в теле IF. Синтаксис внутри IF совпадает с синтаксисом внутри условного оператора if языка Си++.

Дополнительные переменные и функции, применение которых возможно в данной секции, объявляются и определяются во вспомогательных файлах:

• prefile;

• post file.

Prefile предназначен для объявления и определения пользователем не­обходимых переменных и функций, используемых в файле описания модели.

Postfile предназначен для определения пользователем дополнительных функций, используемых в файле описания модели.

Пример prefile:

int func(void);

Пример postfite:

int func(void)

{

return 1;

}

В качестве основы языка описания модели взят язык Си++. С его помо­щью определены операторы языка описания. Поэтому пользователь должен придерживаться правил написания программ на языке Си++ (например, синтак­сис, правила постановки комментариев, вызовы функций и т.д.). Рассмотрим подробно секции файла описания с точки зрения используемых операторов.

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

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

S {номер субъекта, атрибут 1,..., атрибут n);

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

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

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

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

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

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

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. Все атрибуты объектов имеют числовой тип unsigned long. Ошибка при превышении максимального ко­личества атрибутов будет обработана компилятором Си++.

По умолчанию номер объекта = 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 = АО(номер атрибута <,номер объекта> );

имя атрибута - имя, выбранное пользователем и не совпадающее со служеб­ными словами языка описания или языка Си++ и уже описанными атрибутами. служебные функции AS и АО - возвращают значение атрибута, номер которо­го задан параметром номер атрибута, а номер сущности определяется пара­метром номер субъекта(объекта). Причем, вызов AS без номера сущности эк­вивалентен А5(номер атрибута, THISS), аналогичное действует и для АО -АO(номер атрибута, THISO). Служебные слова THISS и THISO будут рассмот­рены позднее в секции «правила доступа», в которых используются имена ат­рибутов. Ответственность за выход за границы, определенные для номера ат­рибута или субъекта, лежит на пользователе.

В файле описания модели пользователь может также присвоить новое значение уже объявленной переменной:

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

или

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

без служебного слова ATTRNAME. Это эквивалентно присвоению нового зна­чения некогда объявленной переменной в Си++.

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

Секция «правила доступа»

Язык описания модели позволяет описать правила, по которым будет определяться право доступа активной сущности к пассивной.

Блок с правилами должен обязательно обозначаться служебным словом RULES, заканчиваться - ENDRULES. Внутри блок может быть пустым или со­держать правила доступа, задаваемые пользователем.

В системе возможны следующие операции, инициируемые активными сущностями:

  1. READS - чтение субъекта;

  2. READO - чтение объекта;

  3. WRITES - запись в субъект;

  4. WRITEO - запись в объект;

  5. CREATES - создание субъекта;

  6. CREATED - создание объекта;

  7. DELETES - удаление субъекта;

  8. DELETED - удаление объекта;

  9. CHATTRS - смена атрибутов субъекта;

  10. CHATTRO - смена атрибутов объекта.

Следовательно, пользователю необходимо следующим образом опре­делить правила доступа:

RULES

Имя операции 1 <код> IF (правило)

…………..

имя операции n <код> IF (правило)

ENDRULES

имя операции i - имя из упомянутого списка из 10 операций.

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

Следует учесть, что при описании модели некоторые операции могут не понадобиться. Если пользователь не объявит их, то они будут считаться раз­решенными. Пустой блок RULES-ENDRULES эквивалентен разрешению всех операций доступа. Чтобы гарантированно запретить некоторый вид доступа, необходимо применить всегда ложное условие доступа в теле IF.

код - любой код на языке Си++.

После RULES и до первого определения правила доступа, после IF( ), a также перед ENDRULES код запрещен. Код может включать определение пе­ременных, вызовы функций и т.д. Следует отметить, что определения и опи­сания вызываемых функций и используемых переменных должны содержаться в дополнительных файлах prefile и postfile.

Переменные, объявленные в файле инициализации, видны только в нем. Чтобы описать глобальную переменную, следует объявить ее в prefile. Эти ог­раничения связаны с особенностями программной реализации «Монитора безопасности» {при вызове служебной программы expert.exe до и после текста, написанного пользователем, в файл инициализации вставляется код. Таким образом, получается завершенное приложение, в котором содержимое файла инициализации оказывается внутри функции main(), prefile записывается до нее, a postfile - после).

правило - собственно условие, на основе которого принимается решение о разрешении доступа на выполнение данной операции над пассивной сущно­стью.

Внутри IF с использованием соглашений языка Си++ записывается усло­вие доступа. После объявления операции доступа допустим только вызов од­ного IF. Например, WRITES IF(...) IF(...) приводит к ошибке на этапе компиля­ции.

Упоминание только одной операции доступа без правила также приводит к ошибке, поэтому недопустимо следующее объявление:

RULES

WRITES

ENDRULES

В условии необходим доступ к атрибутам по их именам, определенным в секции «имена атрибутов».

Доступ к значению атрибута по его имени осуществляются образом:

имя атрибута [номер субъекта(объекта)]

имя атрибута - уже объявленное ранее имя.

номер субъекта(объекта) - конкретно номер сущности, значение атрибута которой хочет получить пользователь.

Номер варьируется от 1 до 16. Выход за пределы этого интервала не об­рабатывается. Здесь можно использовать такие служебные слова, как THISS, THISO. Во время работы программы «Монитор безопасности» пользователь выбирает активную, пассивную сущности и вид доступа. В этом случае:

  • THISS - это номер выбранной текущей активной сущности на момент вызо­ва «Монитора безопасности»,

  • THISO - номер текущей пассивной сущности.

В теле условия возможен вызов конкретного атрибута по его имени (ат­рибута, именованного при помощи функций AS и АО), а также по прямому вы­зову функций AS и АО. Особенности этих функций рассмотрены в секции «имена атрибутов».

Таким образом, правильным будет следующее описание (переменная tmp определена в файле prefile): RULES

READO IF(tmp++==0 && seclevel_s[THISS] >= seclevel[1] || Orole==5)

CHATTRS

tmp=50;

IF(AS(1,1)==tmp || seclevel_s[THISS]<NEW_ATTR(1))

ENDRULES

Видно, что в примере задействованы новые служебное слово -NEW_ATTR. Оно необходимо при операциях изменения атрибутов пассивной сущности и при создании новых сущностей. Правило доступа может основы­ваться на новых атрибутах сущности. При вызове, например, операции CHATTRS происходит сопоставление изменяемых и новых атрибутов, на осно­ве чего либо происходит замена атрибутов, либо - нет. Формат рассмотренного слова:

NEW_ATTR(Hомep атрибута)

номер атрибута - порядковый номер атрибута пассивной сущности, варьи­руемый от 1 до 8. Выход за пределы этого интервала не обрабатывается. По умолчанию никакие значения номера атрибута не назначаются.

Практический пример

Рассмотрим практическое определение файла описания модели на том же примере, с которого мы начали изучение языка описания:

// секция «субъекты»

S( 1, 1,2,3,4, 5, 6, 7, 8 ); // создание субъекта №1

// секция «объекты»

0(1, 15,16,17,18,19,20,21,25 ); //создание объекта №1

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

// определение имен атрибутов субъекта и объекта

ATTRNAME seclevelS IS ATTRS(1), seclevelO IS ATTRO(1);

// определение имени конкретного атрибута, а именно, первого атрибута первого субъекта

ATTRNAME imp = AS(1,1);

// секция «правила доступа»

// начало блока правил доступа RULES

// правило по чтению

READO IF(seclevelS[THISS]>seclevelO[THISO])

// правило по записи

WRITEO IF(seclevelS[THISS]<seclevelO[THISO] &&tmp = = 1)

// конец блока правил доступа

ENDRULES

В файле описания модели определено, что в начале в системе сущест­вуют две сущности - один субъект и один объект. Далее присвоено первому ат­рибуту субъектов имя seclevelS, а первому атрибуту объектов - seclevelO. Вве­дена переменная Imp, которой присвоено значение определенного атрибута (первый атрибут первого субъекта). Затем, с целью дальнейшего исследования поведения модели только при записи и чтении, описаны правила доступа субъ­екта по чтению и записи к пассивной сущности.

Дополнительные файлы prefile и postfile не использовались.

Приложение 3