МОСКОВСКАЯ ГОСУДАРСТВЕННАЯ АКАДЕМИЯ
ПРИБОРОСТРОЕНИЯ И ИНФОРМАТИКИ
КАФЕДРА АВТОМАТИЗИРОВАННЫХ СИСТЕМ ОБРАБОТКИ
ИНФОРМАЦИИ И УПРАВЛЕНИЯ (ИТ-7)
«Методы и средства защиты компьютерной информации»
Методические указания к выполнению контрольных заданий,
лабораторных и курсовых работ
Специальность 22.02.03 «Автоматизированные системы обработки
информации и управления»
Москва, 2003
УТВЕРЖДАЮ
Проректор по научной работе
_____
" " 2003
АННОТАЦИЯ
Предлагаемая работа –это введение в формальную теорию защиты информации в электронных системах обработки данных. Основная цель работы — доступно изложить методы анализа систем защиты информации в электронных системах обработки данных. Как большинство современных методов изучения сложных систем, анализ систем защиты предполагает иерархическую декомпозицию. Верхний уровень иерархии составляет политика безопасности со своими специфическими методами ее анализа. Следующий уровень — основные системы поддержки политики безопасности (мандатный контроль, аудит и т.д.). Затем следует уровень механизмов защиты (криптографические протоколы, криптографические алгоритмы, системы создания защищенной среды, системы обновления ресурсов и т.д.), которые позволяют реализовать системы поддержки политики безопасности. Наконец самый низкий уровень — реализация механизмов защиты (виртуальная память, теговая архитектура, защищенные режимы процессора и т.д.). В работе рассматриваются только верхние уровни этой иерархии, так как механизмы защиты достаточно полно описаны в литературе. Ограничения изложения рамками верхних уровней иерархии позволило с высокой степенью формализации ввести основные понятия и модели защиты информации, определения, что такое «хорошая» или «плохая» системы защиты, описать доказательный подход в построении систем защиты, позволяющий говорить о гарантированно защищенных системах обработки информации. Описанный подход лежит в основе многих стандартов для систем защиты и позволяет проводить анализ и аттестование защищенных систем.
Автор: Морозова Т.Ю.
Научный редактор: проф. Петров О.М.
Рецензент:
Рассмотрено и одобрено на заседании кафедры ИТ-7
"__"____________2003 г. Зав. кафедрой __________О.М. Петров
Ответственный от кафедры за выпуск учебно-методических материалов
доц. Правоторова Н.А.
Глава 1 ВСПОМОГАТЕЛЬНЫЕ СТРУКТУРЫ (МОДЕЛИ), ИСПОЛЬЗУЕМЫЕ В ЗАЩИТЕ ИНФОРМАЦИИ
Для того, чтобы провести исследование и получить практический результат часто применяют следующий прием. В объект исследования вносят некоторую структуру, которая имеет искусственный характер, но облегчает исследование. Например, для анализа взаимодействия тел физики внесли в описание окружающего мира структуры силовых взаимодействий, электрических взаимодействий. Математики для анализа реальных процессов вносят структуры вероятностного пространства и вероятностей событий. Иногда говорят, что строится модель объекта. Оба названия приемлемы, однако мы предпочитаем первое, так как в ходе анализа потребуется вносить в информацию несколько структур и анализировать их взаимодействие. В терминах моделей такие нагромождения представляются более трудными для объяснения. Далее мы рассмотрим следующие структуры, которые вносятся в неопределяемый объект под названием информация, теории защиты которого будет посвящена вся работа:
· структура языка, позволяющая говорить об информации как о дискретной системе объектов;
· иерархическая модель вычислительных систем и модель OSI/ISO, позволяющие аппаратную, программную, прикладную компоненты вычислительных систем и сетей связи представлять в виде объектов некоторых языков, а также представляют примеры неиерархической декомпозиции и анализа сложных систем;
· структура информационного потока, позволяющая описывать и анализировать угрозы информации;
· структура ценности информации, позволяющая понять, что надо и что не надо защищать;
· структуры реляционных баз данных, которые рассматриваются как примеры организации информации в вычислительных системах, и используются для пояснения наиболее трудных проблем защиты.
В заключение главы в качестве примера проблемы согласования различных структур между собой рассматривается задача совмещения одной из структур ценности информации и структуры реляционной базы данных.
1.1. ЯЗЫК, ОБЪЕКТЫ, СУБЪЕКТЫ.
Используем некоторые понятия математической логики. Пусть А конечный алфавит, А — множество слов конечной длины в алфавите А.
Из А при помощи некоторых правил выделено подмножество Я правильных слов, которое называется языком. Если Я1 — язык описания одной информации, Я2 — другой, то можно говорить о языке Я, объединяющем Я1 и Я2 описывающем ту и другую информацию. Тогда Я1 и Я2 подъязыки Я.
Будем считать, что любая информация представлена в виде слова в некотором языке Я. Кроме того, можно полагать, что состояние любого устройства в вычислительной системе достаточно полно описано словом в некотором языке. Тогда можно отождествлять слова и состояния устройств и механизмов вычислительной системы или произвольной электронной системы обработки данных (ЭСОД). Эти предположения позволяют весь анализ вести в терминах некоторого языка.
ОпределениеОбъектом относительно языка Я (или просто объектом, когда из контекста однозначно определен язык) называется произвольное конечное множество языка Я.
Пример 1. Произвольный файл в компьютере есть объект. В любой момент в файл может быть записано одно из конечного множества слов языка Я, в некотором алфавите А, которое отражает содержимое информации, хранящейся в файле. Значит, файл можно рассматривать как конечное множество слов, которые в нем могут быть записаны (возможные содержания файла). То, что в данный момент в файле содержится только одно слово, не исключает потенциально существования других записей в данном файле, а в понятие файла как объекта входят все допустимое множество таких записей. Естественно выделяется слово, записанное в файле в данный момент, — это состояние объекта в данный момент.
Пример 2. Пусть текст в файле разбит на параграфы так, что любой параграф также является словом языка Я и, следовательно, тоже является объектом. Таким образом, один объект может являться частью другого.
Пример 3. Принтер компьютера — объект. Существует некоторый (достаточно сложный) язык, описывающий принтер и его состояния в произвольный момент времени. Множество допустимых описаний состояний принтера является конечным подмножеством слов в этом языке. Именно это конечное множество и определяет принтер как объект.
В информации выделим особо описания преобразований данных.
Преобразование информации отображает слово, описывающее исходные данные, в другое слово. Описание преобразования данных также является словом. Примерами объектов, описывающих преобразования данных, являются программы для ЭВМ
Каждое преобразование информации может:
а) храниться;
б) действовать.
В случае а) речь идет о хранении описания преобразования в некотором объекте (файле). В этом случае преобразование ничем не отличается от других данных. В случае б) описание программы взаимодействует с другими ресурсами вычислительной системы — памятью, процессором, коммуникациями и др.
Определение. Ресурсы системы, выделяемые для действия преобразования, называются доменом.
Однако для осуществления преобразования одних данных в другие кроме домена необходимо передать этому преобразованию особый статус в системе, при котором ресурсы системы осуществляют преобразование. Этот статус будем называть «управление».
Определение. Преобразование, которому передано управление, называется процессом.
При этом подразумевается, что преобразование осуществляется в некоторой системе, в которой ясно, что значит передать управление.
Определение. Объект, описывающий преобразование, которому выделен домен и передано управление, называется субъектом.
То есть субъект — это пара (домен, процесс). Субъект для реализации преобразования использует информацию, содержащуюся в объекте О, то есть осуществляет доступ к объекту О.
Рассмотрим некоторые основные примеры доступов.
1. Доступ субъекта S к объекту О на чтение (r) данных в объекте О.
При этом доступе данные считываются в объекте О и используются в качестве параметра в субъекте S.
2. Доступ субъекта S к объекту О на запись (w) данных в объекте О.
При этом доступе некоторые данные процесса S записываются в объект О. Здесь возможно стирание предыдущей информации.
3. Доступ субъекта S к объекту О на активизацию процесса, записанного в О как данные (ехе). При этом доступе формируется некоторый домен для преобразования, описанного в О, и передается управление соответствующей программе.
Существует множество других доступов, некоторые из них будут определены далее. Множество возможных доступов в системе будем обозначать R.
Будем обозначать множество объектов в системе обработки данных через О, а множество субъектов в этой системе S. Ясно, что каждый субъект является объектом относительно некоторого языка (который может в активной фазе сам менять свое состояние). Поэтому S Í O. Иногда, чтобы не было различных обозначений, связанных с одним преобразованием, описание преобразования, хранящееся в памяти, тоже называют субъектом, но не активизированным. Тогда активизация такого субъекта означает пару (домен, процесс).
В различных ситуациях мы будем уточнять описание вычислительной системы. Однако мы всегда будем подразумевать нечто общее во всех системах. Это общее состоит в том, что состояние системы характеризуется некоторым множеством объектов, которое будем предполагать конечным.
В любой момент времени на множестве субъектов введем бинарное отношение aактивизации. S1aS2, если субъект S1, обладая управлением и ресурсами, может передать S2 часть ресурсов и управление (активизация). Тогда в графах, которые определяются введенным бинарным отношением на множестве объектов, для которых определено понятие активизации, возможны вершины, в которые никогда не входит ни одной дуги. Таких субъектов будем называть пользователями. Субъекты, в которые никогда не входят дуги и из которых никогда не выходят дуги, исключаются.
В рассмотрении вопросов защиты информации мы примем аксиому, которая положена в основу американского стандарта по защите («Оранжевая книга») и будет обсуждаться далее. Здесь мы сформулируем ее в следующей форме.
Аксиома. Все вопросы безопасности информации описываются доступами субъектов к объектам.
Если включить в рассмотрение гипотетически такие процессы как пожар, наводнение, физическое уничтожение и изъятие, то эта аксиома охватывает практически все известные способы нарушения безопасности в самых различных вариантах понимания безопасности. Тогда для дальнейшего рассмотрения вопросов безопасности и защиты информации достаточно рассматривать множество объектов и последовательности доступов.
Пусть время дискретно, Оt — множество объектов момент t, St — множество субъектов в момент t. На множестве объектов Оt как на вершинах определим ориентированный граф доступов Gt следующим образом: дуга />с меткой pÍR принадлежит Gt тогда и только тогда, когда в момент t субъект S имеет множество доступов р к объекту О.
Согласно аксиоме, с точки зрения защиты информации, в процессе функционирования системы нас интересует только множество графов доступов {Gt}t=1T. Обозначим через Y={G} множество возможных графов доступов. Тогда Yможно рассматривать как фазовое пространство системы, а траектория в фазовом пространстве Yсоответствует функционированию вычислительной системы. В этих терминах удобно представлять себе задачу защиты информации в следующем общем виде. В фазовом пространстве Y определены возможные траектории Ф, в F выделено некоторое подмножество N неблагоприятных траекторий или участков таких траекторий, которых мы хотели бы избежать. Задача защиты информации состоит в том, чтобы любая реальная траектория вычислительного процесса в фазовом пространстве Yне попала во множество N. Как правило, в любой конкретной вычислительной системе можно наделить реальным смыслом компоненты модели Y,F и N. Например, неблагоприятными могут быть траектории, проходящие через данное множество состояний Y‘ÍY.
Чем может управлять служба защиты информации, чтобы траектории вычислительного процесса не вышли в N? Практически такое управление возможно только ограничением на доступ в каждый момент времени. Разумеется, эти ограничения могут зависеть от всей предыстории процесса. Однако, в любом случае, службе защиты доступно только локальное воздействие. Основная сложность защиты информации состоит в том, что имея возможность использовать набор локальных ограничений на доступ в каждый момент времени, мы должны решить глобальную проблему недопущения выхода любой возможной траектории в неблагоприятное множество N. При этом траектории множества N не обязательно определяются ограничениями на доступы конкретных субъектов к конкретным объектам. Возможно, что если в различные моменты вычислительного процесса субъект S получил доступ к объектам О1 и О2, то запрещенный доступ к объекту О3 реально произошел, так как из знания содержания объектов О1 и O2 можно вывести запрещенную информацию, содержащуюся в объекте O3.
Пример 4. Пусть в системе имеются два пользователя U1, и U2, один процесс S чтения на экран файла и набор файлов O1...Om. В каждый момент работает один пользователь, потом система выключается и другой пользователь включает ее заново. Возможны следующие графы доступов
R r
Uj------->S-------------Oi , i=l ,..., m, j=l, 2. (1)
Множество таких графов — y. Траектории — последовательности графов вида (1). Неблагоприятными считаются траектории, содержащие для некоторого i= 1...m состояния
R r
U1------------>S------->Oi
R r
U2------------>S------->Oi
То есть неблагоприятная ситуация, когда оба пользователя могут прочитать один объект. Ясно, что механизм защиты должен строить ограничения на очередной доступ, исходя из множества объектов, с которыми уже ознакомился другой пользователь. В этом случае, очевидно, можно доказать, что обеспечивается безопасность информации в указанном смысле.
Пример 5.В системе, описанной в примере 4, пусть неблагоприятной является любая траектория, содержащая граф вида
R r
U1------------>S------->O1
В этом случае очевидно доказывается, что система будет защищена ограничением доступа на чтение пользователя U1 к объекту О1.
1.2. ИЕРАРХИЧЕСКИЕ МОДЕЛИ И МОДЕЛЬ ВЗАИМОДЕЙСТВИЯ ОТКРЫТЫХСИСТЕМ (OSI/ISO).
Ясно, что реализация автоматизированных информационных систем требует большого программно-аппаратного комплекса, который надо спроектировать, создать, поддерживать в работоспособном состоянии. Сложность этих систем такова, что требуется разработка специальной технологии проектирования и создания таких систем. В настоящее время основным инструментом решения задач анализа, проектирования, создания и поддержки в рабочем состоянии сложных систем является иерархический метод.
В основе метода лежит разбиение системы на ряд уровней, которые связаны однонаправленной функциональной зависимостью. В литературе предлагалось несколько вариантов формального и полуформального описания такой зависимости. Например, Парнас (D.L.Parnas, 1974) описывал такую зависимость следующим образом. Уровень А зависит в правильности своего функционирования от уровня В, или уровень А обращается к уровню В, или уровень А использует уровень В, или А требует присутствия правильной версии В. Однако это неформальные описания, а формализация здесь не удается из-за широкой общности понятия «сложная система» и неоднозначности разбиения на уровни. В целях понимания одного и того же в декомпозициях различной природы сложных систем можно договориться об универсальных принципах описания иерархического метода. Предположим, что интересующая нас сложная система А адекватно описана на языке Я. Предположим, что мы провели декомпозицию (разложение) языка Яна семейство языков D1,D2,...,Dn. Если язык Di, i=2,.., n, синтаксически зависит только от словоформ языка Di-1, то будем говорить, что они образуют два соседних уровня. Тогда система А может быть описана наборами слов B1,...,Bn в языках D1,D2,...,Dn причем так, что описание Вi синтаксически может зависеть только от набора Вi-1. В этом случае будем говорить об иерархической декомпозиции системы A и уровнях декомпозиции B1,...,Bn , где уровень Вiнепосредственно зависит от Bi-1. Рассмотрим ряд простейших примеров иерархического построения сложных систем.
Пример 1. Пусть вся информация в системе разбита на два класса Secret и Тор Secret, которые в цифровой форме будем обозначать 0 и 1. Пусть все пользователи разбиты в своих возможностях допуска к информации на два класса, которые также будем обозначать 0 и 1. Правило допуска к информации X при запросе пользователя Y определяется условием, если класс х запрашиваемой информации X, а класс у пользователя Y, то допуск к информации разрешен тогда и только тогда, когда x=y. Это условие можно описать формально формулой некоторого языка D2
if x=y then "Допуск Y кX"
Для вычисления этого выражения необходимо осуществить следующие операции, которые описываются в терминах языка D1:
x:=U1(X),
y:=U2(Y),
z=xÅy
U(X,Y,z),
где U1(X) — оператор определения по имени объекта X номера класса доступа х; U2(Y) — оператор определения по имени пользователя Y номера класса допуска у; Å — сложение по mod 2; U(X, Y, z) — оператор, реализующий доступ Y к X, если z=0, и блокирующий систему, если z=l.
По построению уровень B2 зависит от B1, а вся система представлена иерархической двухуровневой декомпозицией с языками D1и D2. Причем Я=(D1, D2).
Пример 2.Гораздо чаще используется неформальное иерархическое описание систем. Например, часто используется иерархическая декомпозиция вычислительной системы в виде трех уровней.
Аппаратная часть — Операционная система -Пользовательские программы.
МОДЕЛЬ OSI/ISO
1. Одним из распространенных примеров иерархической структуры языков для описания сложных систем является разработанная организацией международных стандартов (ISO) Эталонная модель взаимодействия открытых систем (OSI), которая принята ISO в 1983 г.
ISO создана, чтобы решить две задачи:
· своевременно и правильно передать данные через сеть связи (т.е. пользователями должны быть оговорены виды сигналов, правила приема и перезапуска, маршруты и т.д.);
· доставить данные пользователю в приемлемой для него распознаваемой форме.
2. Модель состоит из семи уровней. Выбор числа уровней и их функций определяется инженерными соображениями. Сначала опишем модель.
Пользователь 1