ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 05.12.2019
Просмотров: 12625
Скачиваний: 26
361
активизации до момента окончания работы КС, невозможно сформировать в
начальный момент активизации КС.
Пусть в КС выделяется конечное число уровней представления объектов U={0, ...,
R}, R - максимальный уровень представления объекта.
С точки зрения выполнения условий безопасности имело бы смысл говорить о
некотором "стационарном" состоянии КС, когда в отображениях Stream и Create
участвуют только объекты уровня R. Тогда реализация МБС может быть значительно
упрощена (в том смысле, что все аргументы-объекты операции Create имеют тот же
уровень).
Необходимо обратить внимание на то, что такое требование, с одной стороны,
может накладывать ограничительные условия на свойства прикладного ПО
(невозможность инициирования потоков, включающих объекты уровня менее R,
прикладными программами), а с другой стороны, быть следствием проектировочных
решений реализации субъекта, локализованного в ядре операционной системы (примером
является ОС Windows NT 4.0, запрещающая операции ниже уровня "файл" со стороны
субъектов прикладного уровня).
Практическая реализация всех операционных систем позволяет выделить две фазы
их работы: активизация субъектов с ростом уровня представления объектов (фаза загрузки
или начальная фаза) и фаза стационарного состояния (когда уровень представления
объектов не увеличивается). Конечно, необходимо сделать оговорку, касающуюся
возможности реализации потоков к объектам нижнего уровня (операционные системы
типа DOS, в которых возможна операция с любым объектом нижнего уровня (сектор) из
программ прикладного уровня).
Тогда практическая реализация ИПС может состоять из двух этапов:
предопределенное выполнение начальной фазы, включающее в себя момент активизации
МБС (и МБО), и работа в стационарной фазе в режиме ИПС (возможно, с, контролем
неизменности объектов-источников).
Введем понятие последовательности активизации компонент КС. Смысл вводимых
понятий и формулируемых ниже утверждений состоит в необходимости приведения
субъектов КС в одно и то же состояние после активизации первичного субъекта
аппаратно-программного уровня, или, иначе говоря, в задании предопределенной
последовательности активизации субъектов КС.
Обозначим: Zl - последовательность пар (i, j)t (t=0, 1, 2, ... ,1-1 -моменты времени)
длины 1, такие, что Create(Si,Oj)[t]->Sm[t+l].
Обозначим также:
Sz- множество всех субъектов, включенных в последовательность Zl,
Oz - множество всех объектов, включенных в последовательность Zl.
Для многопотоковых КС можно рассматривать несколько (возможно, зависимых
друг от друга) последовательностей Zl и соответственно множеств Sz и Oz.
362
Состоянием КС в момент времени t называется упорядоченная совокупность
состояний субъектов.
Напомним, что каждый объект есть слово в априорно определенном языке, а
понятие состояния субъекта сформулировано выше.
Состояние КС в моменты времени txl и tx2 (txl и tx2 исчисляются для двух отрезков
активности КС от нулевого момента активизации КС t0l и t02 - например, включения
питания аппаратной части) одинаково, если:
l. txl=tx2,
2.тождественны субъекты Si[t0l] и Si[t02],
3.неизменны все объекты из множества Oz,
4. неизменна последовательность ZL.
Необходимо заметить, что последовательность Zl локализуется в некотором
объекте либо совокупности объектов (например, для DOS последовательность
активизации субъектов предопределена содержанием файлов AUTOEXEC.BAT и
CONFIG.SYS) и неизменность последовательности Zl тождественна неизменности
указанных объектов, для ОС Windows NT последовательность активизации компонент
определена содержанием соответствующих ключей реестра (registry).
Пусть в последовательности Zl можно выделить zi такое, что для
любого Zk, k>i отображений Create и Stream используют только объекты уровня R.
Другими словами, с момента времени i наступает стационарная фаза функционирования
КС.
В этих условиях, а также при попарной корректности субъектов и действии МБС с
контролем неизменности объектов-источников на уровне R с момента времени m>k верно:
При условии неизменности Zl и неизменности объектов из Oz в КС с момента
времени установления неизменности Zl и Oz действует изолированная программная среда.
Рассмотрим процесс практического проектирования защищенного фрагмента КС.
Первоначально необходимо убедиться в выполнении условий корректности или
абсолютной корректности для субъектов, участвующих в порождении ИПС. Указанные
субъекты в основном могут быть локализованы на уровне программно-аппаратной
компоненты ЭВМ (программы ПЗУ, загрузчики операционных сред), т.е. работать на
уровне, близком к взаимодействию с оборудованием КС, либо на уровне операционной
среды. Доказательство корректности субъектов программно-аппаратного уровня
значительно отличается от соответствующих доказательств для субъектов прикладного
уровня. В связи с этим выделим проверку условий корректности субъектов в два шага.
Шагом 1 назовем доказательство корректности субъектов программно-аппаратного
уровня. Понятие модуль обозначает реализацию объекта источника, а совокупность
субъекта, порожденного из объекта источника и всего множества ассоциированных с этим
субъектом объектов в течение всего времени существования субъекта, называете1 как
правило, процессом (или задачей, заданием).
363
Далее
необходимо
определить
состав
программных
средств
базовой
вычислительной среды, т. е. определить конкретную операционную среду,
дополнительные программные средства сервиса (например программные оболочки или
средства телекоммуникации) и программные средства поддержки дополнительного
оборудования (программы управления принтером и др.). После этого наступает самый
трудоемкий этап (Шаг 2), на котором необходимо убедиться в корректности субъектов
описанного базового набора программных средств. При этом важно заметить следующее.
В составе ПО КС не должно быть целого класса возможностей - назовем их
инструментальными.
Прежде
всего
это
возможность
изменения
состояния
ассоциированных объектов со стороны субъекта (например, изменение содержимого
оперативной памяти) других субъектов (изменение содержания подразумевает
существование операций Stream типа запись), возможность инициирования и
прекращения выполнения процессов нестандартным образом (помимо механизмов
операционной среды). Кроме того, при реализации МБС и МБО на стационарной фазе
функционирования КС необходимо отсутствие в любых субъектах, замкнутых в ИПС,
операций порождения потоков Stream к объектам уровня k<R.
Обобщенно достаточные условия к базовому набору ПО можно сформулировать
следующим утверждением.
Для того, чтобы ИПС поддерживалась в течение всего времени активности КС,
достаточно, чтобы в составе программного обеспечения, могущего быть инициированным
в ИПС, не было функций порождения субъектов и прекращения их работы, кроме заранее
предопределенных при реализации МБС, и не существовало возможностей влияния на
среду выполнения (под средой выполнения понимается множество ассоциированных
объектов) любого процесса, а также инициирования потоков к объектам логического
уровня менее R.
Легко видеть, что данное утверждение есть собранные воедино условия
выполнения приводимых выше утверждений. Поясним требование невозможности
прекращения выполнения «ста каким-либо иным образом, кроме предопределенного. В
данном случае необходимо учитывать, что во множестве субъектов, замкнутых в ИПС,
выделены два особых субъекта - МБС и МБО. Прекращение существования МБС означает
нарушение условия замкнутости среды, а прекращение существования МБО означает
допустимость потоков множества N, т. е. несанкционированный доступ.
Шаг 3 заключается в проектировании и разработке программных или программно-
аппаратных средств защиты в КС, а затем и их тестировании. Он подразумевает
проектирование и реализацию в заданном множестве субъектов МБС и МБО.
Практически шаги 1-3 могут быть выполнены исходя из описанных в литературе
методик разработки и тестирования ПО.
Шаг 4 заключается в "замыкании" всего комплекса программного обеспечения,
включая и средства защиты, в изолированную программную среду.
364
Итак, показано, что основными элементами поддержания изолированности
программной среды являются контроль целостности и контроль порождения процессов.
Выше мы уже сформулировали понятия МБС и порождения субъектов с контролем
их неизменности. Необходимо заметить, что для достоверного контроля неизменности
объекта (т. е. с вероятностью ошибки, равной 0) необходимо убедиться в полном
тождестве проверяемого объекта и образца. Из этого следует, что эталон должен
содержать не меньше информации, чем проверяемый объект. Из этого в свою очередь
следует, что эталонный объект должен быть как минимум одинаковой длины с
проверяемым. На практике такой подход может быть применен с серьезными
ограничениями (например, для объектов небольшого объема типа программ ПЗУ или
загрузчиков ОС).
В связи с этим для контроля целостности применяют объекты, содержащие
информацию, зависящую от всего содержания объекта, но тем не менее значительно
меньшего объема, вычисленную при помощи класса функций типа «хэш-функций».
Очевидно, что в этом случае процесс установления неизменности объекта становится
вероятностным.
Исходя из данного факта невозможно говорить о гарантированных
(детерминировано) свойствах системы (поскольку неизменность объекта гарантируется
лишь с некоторой вероятностью, не равной 1). Следовательно, все условия утверждений
выполняются с некоторой вероятностью, зависящей от свойств применяемых для
контроля целостности хэш-функций. Для подчеркивания изменившихся условий будем
говорить далее не о контроле неизменности объекта, а о контроле целостности (КЦ)
объекта.
Необходимо отметить также, что в процедуре контроля неизменности (которая
теперь принимает вероятностный характер) участвуют как минимум два объекта: объект
контроля и эталонный объект (хэш-значение), а также субъект, реализующий хэш-
функцию и производящий сравнение.
Поэтому для субъекта контроля целостности важным является выполнение
следующих условий:
-качественный алгоритм контроля целостности (термин "качественный" будет
пояснен ниже);
-контроль реальных данных (т. е. отображение состояния контролируемого и
эталонного объектов в ассоциированные объекты-данные субъекта контроля целостности,
совпадающее с тождественным).
Поясним подробнее второй пункт. Контроль целостности всегда сопряжен с
чтением данных (т. е. с инициированием потоков от объектов к ассоциированным
объектам-данным субъекта контроля целостности, причем потоки могут соответствовать
различному уровню представления информации - чтение по секторам, по файлам и т. д.).
Например, встроенный в BIOS ПЭВМ субъект (практически это программная закладка -
см. ниже) может навязывать при чтении вместо одного сектора другой или редактировать
365
непосредственно буфер, в который были прочитаны данные. Аналогичный эффект может
быть вызван субъектами операционной среды, например, субъектами, локализованными в
первичных загрузчиках ОС. С другой стороны, даже контроль самого BIOS может
происходить "под наблюдением" какой-либо дополнительной аппаратуры и не показать
его изменения. Аналогичные эффекты могут возникать и при обработке файла. Цель
организации режима чтения реальных данных состоит в тождественном отображении
параметров чтения на АО субъекта чтения (поток от АО субъекта КЦ к АО субъекта
чтения) и тождественном отображении считываемого объекта (в соответствии с
параметрами, переданными субъекту чтения) к ассоциированным объектам-данным
субъекта КЦ.
Поясним теперь понятие качественного КЦ с точки зрения математических свойств
функции КЦ. Предположим, что имеется некоторый объект F и некоторый алгоритм Н,
преобразующий объект F в некоторый объект М, который представляется словом того же
языка, но меньшей длины. Этот алгоритм таков, что при случайном равновероятном
выборе двух объектов F1 и F2 из множества возможных соответствующие им объекты
Ml=H(F1) и M2=H(F2) с высокой вероятностью различны. Тогда проверка целостности
данных строится так: рассматриваем объект F, по известному алгоритму Н строим K=H(F)
и сравниваем М, заранее вычисленное как М = H(F), с К. При совпадении считаем объект
неизменным. Алгоритм Н называют, как правило, хэш-функцией, или реже контрольной
суммой, а число М - хэш-значением.
Качество КЦ определяется в данном случае выполнением следующих условий:
1. По известному объекту M=H(F) нахождение другого объекта G, не
тождественного F, такого, что M=H(G), является задачей с трудоемкостью не менее
заданной Th.
2. Объект М должен быть недоступен для изменения.
3.Длина объекта М должна обеспечивать условную вероятность P(H(F1)=H(F2)/F1
не тождествен F2) не более заданной Ph.
Поясним смысл этих условий. Пусть программа злоумышленника изменила объект
F (статическое искажение). Тогда, вообще говоря, хэш-значение М для данного объекта
изменится. Если субъекту злоумышленника доступен для изменения объект М
(существует соответствующий поток), то он может по известному алгоритму Н вычислить
новое хэш-значение для измененного объекта и заместить им исходное.
Пусть хэш-значение недоступно, тогда можно попытаться так построить
измененный объект, чтобы хэш-значение его не изменилось; принципиальная
возможность этого имеется, поскольку отображение, задаваемое алгоритмом хэширования
Н, не биективно (неоднозначно).
Таким образом, при условии недоступности хэш-значения для изменения и
доступности для изменения объекта-источника трудоемкость нарушения ИПС с КЦ
объектов-источников (т. е. возможность породить субъект из объекта-источника, не
тождественного исходному объекту) совпадает с Th. При однократной попытке