ОИБ. основы информ. безопасности. Учебное пособие Томск
Скачать 1.99 Mb.
|
3.3. Основные типы формальных политик безопасности Существуют два типа политики безопасности: дискреционная и мандатная. Основой дискреционной (дискретной) политики безопасности является дискреционное управление доступом (Oiscretion.ary Access Control - ОАС), которое определяется двумя свойствами: все субъекты и объекты должны быть идентифицированы; права доступа субъекта к объекту системы определяются на основании некоторого внешнего по отношению к сиcтеме правила. К достоинствам дискреционной политики безопасности можно отнести относительно простую реализацию соответствующих механизмов защиты. Этим обусловлен тот факт, что большинство распространенных в настоящее время АC обеспечивают выполнение положений именно данной политики безопасности. В качестве при мера реализаций дискреционной политики безопасности в АС можно привести матрицу доступов, строки которой соответствуют субъектам системы, а столбцы - объектам; элементы матрицы характеризуют права доступа. К недостаткам относится статичность модели. Это означает, что данная политика безопасности не учитывает динамику изменений состояния АС, не накладывает ограничений на состояния системы. Кроме этого, при использовании дискреционной политики безопасности возникает вопрос определения правил распространения прав доступа и анализа их влияния на безопасность АС. В общем случае при использовании данной политики безопасности перед МБО, который при санкционировании доступа субъекта к объекту руководствуется некоторым набором правил, стоит алгоритмически неразрешимая задача: проверить приведут ли его действия к нарушению безопасности или нет. В то же время имеются модели АС, реализующих дискреционную политику безопасности, которые предоставляют алгоритмы проверки безопасности. Так или иначе, матрица доступов не является тем механизмом, который бы позволил реализовать ясную и четкую систему защиты информации в АС. Этим обуславливается поиск других более совершенных политик безопасности. Основу мандатной (полномочной) политики безопасности составляет мандатное управление доступом (Mandatory Access Control - МАС), которое подразумевает, что: все субъекты и объекты системы должны быть однозначно идентифицированы; задан линейно упорядоченный набор меток секретности; каждому объекту системы присвоена метка секретности, определяющая ценность содержащейся в нем информации - его уровень секретности в АС; 47 каждому субъекту системы присвоена метка секретности, определяющая уровень доверия к нему в АС - максимальное значение метки секретности объектов, к которым субъект имеет доступ; метка секретности субъекта называется его уровнем доступа. Основная цель мандатной политики безопасности – предотвращение утечки информации от объектов с высоким уровнем доступа к объектам с низким уровнем доступа, т. е. противодействие возникновению в АС информационных каналов сверху вниз. Чаще всего мандатную политику безопасности описывают в терминах, понятиях и определениях свойств модели Белла-Лапалуда, которая будет рассмотрена ниже. в рамках данной модели доказывается важное утверждение, указывающее на принципиальное отличие систем, реализующих мандатную защиту, от систем с дискреционной защитой: если начальное состояние системы безопасно, и все переходы системы из состояния в состояние не нарушают ограничений, сформулированных политикой безопасности, то любое состояние cuсmeмы безопасно. Кроме того, по сравнению с АС, построенными на основе дискреционной политики безопасности, для систем, реализующих мандатную политику, характерна более высокая степень надежности. Это связано с тем, что МБО такой системы должен отслеживать не только правила доступа субъектов системы к объектам, но и состояния самой АС. Таким образом, каналы утечки в системах данного типа не заложены в нее непосредственно (что мы наблюдаем в положениях предыдущей политики безопасности), а могут появиться только при практической реализации системы вследствие ошибок разработчика. В дополнении к этому правила мандатной. .политики безопасности более ясны и просты для пони мания разработчиками и пользователями АС, что также является фактором, положительно влияющим на уровень безопасности системы. С другой стороны, реализация систем с политикой безопасности данного типа довольно сложна и требует значительных ресурсов вычислительной системы. 48 3.4. Разработка и реализация формальных политик безопасности Рис. 3.3. Возможные пути нарушения политики безопасности Представляется очевидным, что при изменении функционально ассоциированных с субъектом реализации политики безопасности (МБО) объектов могут измениться и свойства самого МБО, заключающиеся в фильтрации потоков, и как следствие могут возникнуть потоки, принадлежащие множеству N. Введем в связи с этим понятие корректности субъектов. Определение 10. Пара субъектов Si и Sj называется не влияющими друг на друга (или корректными относительно друг друга), если в любой момент времени отсутствует поток (изменяющий состояние объекта) между ассоциированным объектом субъекта Si(Osi) и Sj(Osj), причем Osj не является ассоциированным объектом Si, a Osi не является ассоциированным объектом Sj. Дадим некоторые пояснения к определению: «изменение состояния объекта» трактуется в данном определении как нетождественность объектов в соответствующие моменты времени, но при этом подчеркнуто, что операция изменения объекта локализована в субъекте, с которым этот объект не ассоциирован. Смысл понятия корректности можно пояснить на примере: существующие в едином пространстве ОП программы не должны иметь функциональных возможностей изменения «чужого» вектора кода и состояния переменных. Вообще говоря, можно сформулировать более жесткое определение. Определение 11. Пара субъектов Si и Sj называется абсолютно не влияющими друг на друга (или абсолютно корректными относительно друг друга), если в условиях определения 10 множества ассоциированных объектов указанных субъектов не имеют пересечения. Абсолютная корректность легко достижима в случае виртуального адресного пространства. Определение абсолютной корректности позволяет сформулировать достаточные условия гарантированного осуществления только легального доступа. Утверждение 1 (достаточное условие гарантированного выполнения политики безопасности в АС 1). Монитор безопасности объектов разрешает порождение потоков только из множества L, если все существующие в системе субъекты абсолютно корректны относительно него и друг друга. Доказательство. Условие абсолютной корректности (по определению 11) предполагает неизменность функционально ассоциированных объектов МБО (поскольку потоков, 49 изменяющих ассоциированные объекты МБО, не существует). С другой стороны, такие потоки могут появиться при изменении ассоциированных объектов, принадлежащих другим субъектам АС (изменятся свойства субъекта, в том числе (возможно) и по порождению потоков к МБО). Условие корректности субъектов относительно друг друга делает это невозможным (по определению абсолютной корректности). Это, в свою очередь, означает, что МБО реализует только потоки из подмножества L. Утверждение доказано. Однако сформулированное утверждение накладывает весьма жесткие и трудноисполнимые условия на свойства субъектов в АС. Кроме того, невозможно гарантировать корректность любого субъекта, активизируемого в АС, относительно МБО. В связи с этим логично ограничить множество порождаемых субъектов, которые априорно корректны относительно МБО. В связи с этим введем определение монитора порождения субъектов (по аналогии с монитором обращений) и монитора безопасности субъектов. Определение 12. Монитор порождения субъектов (МПС) - субъект, активизирующийся при любом порождении субъектов. По аналогии с переходом от МО к МБО введем понятие монитора безопасности субъектов. Определение 13. Монитор безопасности субъектов (МБС) - субъект, который разрешает порождение субъектов только для фиксированного подмножества пар активизирующих субъектов и порождающих объектов. Воздействие МБС выделяет во всем множестве субъектов S подмножество разрешенных Е. Заметим также, что если в подмножество субъектов в момент времени t включается субъект МБС, то первым аргументом операции Create может быть только субъект, входящий во множество субъектов, а аргумент-объект, вообще говоря, любым. Сформулируем теперь ряд базовых определений, которые в дальнейшем будут повсеместно использоваться. Определение 14. АС называется замкнутой по порождению субъектов, если в ней действует МБС, разрешающий порождение только фиксированного конечного подмножества субъектов для любых объектов-источников, рассматриваемых для фиксированной декомпозиции АС на субъекты и объекты. При рассмотрении вопросов реализации защищенных сред будет использоваться термин «замкнутая программная среда», который по существу эквивалентен приведенному выше определению. Однако замкнутости АС по порождению субъектов недостаточно для описания свойств системы в части защищенности, поскольку необходимо обеспечить корректность порождаемых МБС субъектов относительно его самого и МБО. Механизм замкнутой программной среды сокращает множество возможных субъектов до некоторого множества фиксированной мощности, но при этом допускает существование некорректных субъектов, включенных в замкнутую среду. Сформулируем определение изолированности АС. Определение 15. Множество субъектов АС называется изолированным (абсолютно изолированным), если в ней действует МБС и субъекты из порождаемого множества корректны (абсолютно корректны) относительно друг друга и МБС. Следствие. Любое подмножество субъектов изолированной (абсолютно изолированной АС), включающее МБС, также составляет изолированную (абсолютно изолированную) среду. Следствие. Дополнение изолированной (абсолютно изолированной) АС субъектом, корректным (абсолютно корректным) относительно любого из .числа входящие в изолированную (абсолютно изолированную) среду, оставляет ее изолированной (абсолютно изолированной). Теперь возможно переформулировать достаточное условие гарантированного выполнения политики безопасности следующим образом. 50 Утверждение 2 (достаточное условие гарантированного выполнения политики безопасности в АС 2). Если в абсолютно изолированной АС существует МБО и порождаемые субъекты абсолютно корректны относительно МБО, а также МБС абсолютно корректен относительно МБО, то в такой АС реализуется только доступ, описанный в ПРД. Доказательство. Из определения абсолютной изолированности следует возможность существования в АС только конечного множества субъектов, которые, в свою очередь, корректны относительно МБС (по определению 16 и следствию из него). Далее, по условию утверждения (корректность МБО относительно любого из порождаемых субъектов и МБС) ассоциированные объекты могут изменяться только самим МБО, следовательно, в АС реализуются только потоки, принадлежащие множеству L. Утверждение доказано. Легко видеть, что данное утверждение является более конструктивным относительно предыдущего достаточного условия гарантированной защищенности, поскольку ранее требовалась корректность МБО относительно произвольного субъекта, что практически невозможно. В данном же случае множество субъектов ограничено за счет применения механизма МБС и возможно убедиться в попарной корректности порождаемых субъектов. При рассмотрении технической реализации изолированности субъектов в АС будет употребляться термин «изолированная программная среда» (ИПС), который описывает механизм реализации изолированности для конкретной программно-аппаратной реализации АС и при соответствующей декомпозиции на субъекты и объекты. При рассмотрении операции порождения субъекта возникает весьма важная проблема, связанная с тем, что в реальных АС одинаково поименованные объекты могут иметь различное состояние в пространстве (например, быть размещенными в различных каталогах) или во времени. Предположим, что зафиксировано состояние объекта Оm в некоторый момент временит. Будем обозначать состояние объекта Оm в момент времени t как 0m[t]. Определение 16. Операция порождения субъекта Create(Sk,Om)->Si называется порождением с контролем неизменности объекта, если для любого момента времени t>to, в который активизирована операция порождения объекта Create, порождение субъекта Si возможно только при тождественности объектов 0m[to] и 0m[t]. Следствие. В условиях определения 16 порожденные субъекты Si[tl]H Si[t2] тождественны, если tl>to и t2>to. При tl=t2 порождается один и тот же субъект. При порождении субъектов с контролем неизменности объекта в АС допустимы потоки от субъектов к объектам-источникам, участвующим в порождении субъектов, с изменением их состояния. Утверждение 3 (базовая теорема ИПС) Если в момент времени to в изолированной АС действует только порождение субъектов с контролем неизменности объекта и существуют потоки от любого субъекта к любому объекту, не противоречащие условию корректности (абсолютной корректности) субъектов, то в любой момент времени t>to АC также остается изолированной (абсолютно изолированной). Доказательство. По условию утверждения в АС возможно существование потоков, изменяющих состояние объектов, не ассоциированных в этот момент времени с каким-либо субъектом. Если объект с измененным состоянием не является источником для порождения субъекта, то множество субъектов изолированной среды нерасширяемо, в противном случае (измененный объект является источником для порождения субъекта) по условиям утверждения (порождение субъекта с контролем) порождение субъекта невозможно. Следовательно, мощность множества субъектов не может превышать той, которая была зафиксирована до изменения состояния любого объекта. Последствию из определения 16 (о замкнутости множества субъектов в ИПС с невозрастанием мощности множества субъектов) 51 получим, что множество субъектов АС изолировано. Утверждение доказано. Можно сформулировать методологию проектирования гарантированно защищенных АС. Сущность данной методологии состоит в том, что при проектировании защитных механизмов АС необходимо опираться на совокупность приведенных выше (утверждения 1-3) достаточных условий, которые должны быть реализованы для субъектов, что гарантирует защитные свойства, определенные при реализации МБО в АС (т. е. гарантированное выполнение заданной МБО политики безопасности). Рассмотренная концепция изолированной программной среды является расширением зарубежных подходов к реализации ядра безопасности. Ядро безопасности - специальный компонент механизма защиты, занимающий внешнее по отношению к другим механизмам положение и предназначенный для решения задач общей организации защиты информации и контроля работы других компонентов механизмов защиты. Соответственно такому назначению к ядру предъявляются особые требования, а для создания сформулированны особые подходы. Вообще говоря, идея централизации некоторых, наиболее ответственных процедур защиты информации и особенно - процедур управления механизмами защиты не является новой: возраст этой идеи уже превышает два десятилетия. Правда, первоначально ядро безопасности представлялось как некоторый комплекс программ, выполняющий особые функции защиты и организованный особо тщательно. Поэтому концепция ядра безопасности развивалась как в плане расширения выполняемых функций, так и в плане комплектности подходов к его построению. Ядро безопасности рассматривается как центральный компонент системы защиты и непосредственно выполняющая ряд важных функций защиты, таких как контроль, регистрация, уничтожение, сигнализация и др. Существо названных функций в самом общем виде заключается в следующем. Под контролем понимается систематическая проверка состояния и работоспособности всех средств и механизмов защиты информации, имеющихся в АС. Под регистрацией в современных системах обеспечения безопасности информации понимают совокупность средств и методов, предназначенных для регулярного сбора, фиксации, обработки и выдачи сведений о функционировании механизмов защиты, включая и ведение регистрационных журналов об обращениях к защищаемым данным и программам. Под уничтожением в системах защиты понимается своевременное уничтожение всех тех данных и программ, которые больше не нужны для дальнейшего функционирования АС, но сохранение которых может послужить причиной несанкционированного получения информации или способствовать такому получению. Отсюда однозначно вытекает важность данной функции. Под сигнализацией понимается решения ряда задач: предупреждение пользователей о необходимости соблюдения мер защиты, информирование службы безопасности о выходе из строя или нарушении или попытке нарушения безопасности и т.п. Обычно модель функционирования ядра безопасности изображается в виде следующей схемы, представленной на рис. 4. На рис. 4 "база данных защиты" означает объект, содержащий в себе информацию о потоках множества L (защита по "белому списку" - разрешения на потоки) или N (защита по "черному списку" - запрещение на потоки). 52 Рис. 3.4. Классическая модель ядра безопасности Для учета влияния субъектов в АС необходимо рассматривать расширенную схему взаимодействия элементов системы реализаций и гарантирования ПБ. В рис. 5 подчеркнута роль монитора безопасности субъектов при порождении субъектов из объектов. Взаимодействие субъектов и объектов при порождении потоков уточнено введением ассоциированных с субъектом объектов. Конструкция ОУ на схеме обозначает объект управления, т. е. объект, содержащий информацию о разрешенных значениях отображения Stream (об элементах множества L или N) и Create (элементы множества Е). Объект управления может быть ассоциирован (ассоциированный объект - данные) как с МБО, такие МБС. 53 Рис. 3.5. Ядро безопасности с учетом контроля порождения субъектов Перейдем к описанию практических методов построения ИПС. Целью рассмотрения практических подходов является иллюстрация тезиса о том, что достаточные условия гарантированной защищенности могут быть практически выполнены в реальных АС. Опираясь на утверждение 3 (базовую теорему ИПС), сформулированное и доказанное в предыдущей части, опишем метод субъектно-объектного взаимодействия в рюмках ИПС для более конкретной архитектуры АС. Из утверждения 3 следует, что для создания гарантированно защищенной АС (в смысле выполнения заданной политики безопасности) необходимо: 1. Убедиться в попарной корректности субъектов, замыкаемых в ИПС (либо убедиться в корректности любого субъекта относительно МБО и МБС). 2. Спроектировать и реализовать программно (или программно - аппаратно) МБС так, чтобы: - для любого субъекта и любого объекта производился контроль порождения субъектов (т. е. чтобы реализация МБС соответствовала его определению); - порождение любого субъекта происходило с контролем неизменности объекта-источника, 3. Реализовать МБО в рамках априорно сформулированной политики безопасности. Надо заметить, что приводимые выше утверждения верны только тогда, когда описанная и реализованная политика безопасности не нарушает их условий (проверка данного факта зависит от модели ПБ и является отдельной весьма важной задачей). Кроме того, необходимо обратить внимание на следующее. Объект управления, который является ассоциированным объектом МБС (обычно ассоциированный объект - данные), играет решающую роль в проектировании ИПС. При возможности изменения 54 состояния объекта управления потенциально возможно «размыкание» программной среды, т. е. добавление к множеству разрешенных субъектов дополнительных, реализующих злоумышленные функции. С другой стороны, процесс управления безопасностью подразумевает возможность изменения объекта управления (подробнее в части 3). Возможность изменения объекта управления (реализация потока Stream (cy6ъeкт управления, АО объекты субъекта управления)->ОУ) должна присутствовать для выделенных субъектов (возможно с дополнительным условием активизации этого субъекта выделенным пользователем (пользователями)). Важную роль при проектировании ИПС играет свойство АС, заключающееся в поэтапной активизации субъектов из объектов различного уровня представления информации. Рассмотрим в таблице 3.1. иерархию уровней при загрузке операционной системы. В таблице выделен термин «сектор» для обозначения представления объекта аппаратно-программного уровня. Он обозначает непрерывную последовательность элементов хранения (байт) на материальном носителе, характеризуемую местом расположения. Термин «файл» обозначает абстрактный объект, построенный по списочной структуре из объектов «сектор». Объекты типа «файл» и «сектор» выделены исключительно исходя из типовой архитектуры объектов АС. Таблица 3.1. Иерархия уровней при загрузке ОС Уровен ь Субъект Локализация Представление информации Через какие функции реализуются потоки 0 Субъект аппаратно- программного уровня ПЗУ сектора через микропрограммы ПЗУ 1 Субъект уровня первичной загрузки Загрузчик ОС сектора через Bios или первичный загрузчик 2 Субъект уровня вторичного загрузчика (драйвер) драйверы ОС сектора через Bios или первичный загрузчик 3 Субъект уровня ОС ядро ОС файлы через драйверы 4 Субъект пользовательского уровня Прикладные приложения файлы через ядро ОС В общем случае можно говорить о рекурсивной структуре объектов некоторого уровня, вмещающей объекты предыдущего уровня. На нулевом уровне первичный объект (элементарная структура нижнего уровня) в таблице 3.1. соответствует термину «сектор». С учетом иерархической структуры представления объектов можно говорить о том, что в начальные этапы активизации АС декомпозиция на субъекты и объекты динамически изменяется. Следовательно, основная теорема ИПС может быть применима только на отдельных интервалах времени, когда уровень представления объектов постоянен и декомпозиция фиксирована. Можно утверждать, что ИПС, действующую от момента активизации до момента окончания работы АС, невозможно сформировать в начальный момент активизации АС. 55 Пусть в АС выделяется конечное число уровней представления объектов U={0, ..., R}, R - максимальный уровень представления объекта. С точки зрения выполнения условий утверждения 3 имело бы смысл говорить о некотором "стационарном" состоянии АС, когда в отображениях Stream и Create участвуют только объекты уровня R. Тогда реализация МБС может быть значительно упрощена (в том смысле, что все аргументы-объекты операции Create имеют тот же уровень). Необходимо обратить внимание на то, что такое требование, с одной стороны, может накладывать ограничительные условия на свойства прикладного ПО (невозможность инициирования потоков, включающих объекты уровня менее R, прикладными программами), а с другой стороны, быть следствием проектировочных решений реализации субъекта, локализованного в ядре операционной системы (примером является ОС Windows NT 4.0, запрещающая операции ниже уровня "файл" со стороны субъектов прикладного уровня). Практическая реализация всех операционных систем позволяет выделить две фазы их работы: активизация субъектов с ростом уровня представления объектов (фаза загрузки или начальная фаза) и фаза стационарного состояния (когда уровень представления объектов не увеличивается). Конечно, необходимо сделать оговорку касающуюся возможности реализации потоков к объектам нижнего уровня (операционные системы типа DOS, в которых возможна операция с любым объектом нижнего уровня (сектор) из программ прикладного уровня). Тогда практическая реализация ИПС может состоять из двух этапов: предопределенное выполнение начальной фазы, включающее в себя момент активизации МБС (и МБО), и работа в стационарной фазе в режиме ИПС (возможно, с контролем неизменности объектов- источников). Введем понятие последовательности активизации компонент АС. Смысл вводимых понятий и формулируемых ниже утверждений состоит в необходимости приведения субъектов АС в одно и то же состояние после активизации первичного субъекта аппаратно - программного уровня, или, иначе говоря, в задании предопределенной последовательности активизации субъектов АС. Обозначим: ZL-последовательность пар (i, j)t (t=0, 1, 2, ...,1-l –моменты времени) длины 1, такие, что Сгеatе (Si,0j)[1]->Sm[t+1]. Обозначим также: Sz - множество всех субъектов, включенных в последовательность ZL, Oz - множество всех объектов, включенных в последовательность ZL. Для многопотоковых АС можно рассматривать несколько (возможно, зависимых друг от друга) последовательностей ZL и соответственно множеств Sz и Oz. Определение 17. Состоянием АС в момент времени t называется упорядоченная совокупность состояний субъектов. Утверждение 4 (условие одинакового состояния АС). Состояние АС в моменты времени txl и tx2 (txl и tx2 исчисляются для двух отрезков активности АС от нулевого момента активизации АС tol и to2- например, включения питания аппаратной части) одинаково, если: 1.txl=tx2, 2. тождественны субъекты Si[tol] и Si[to2], 3. неизменны все объекты из множества Оz, 4. неизменна последовательность ZL. Доказательство (по принципу математической индукции) Верность утверждения при t=1 следует из определения тождественности субъектов. Пусть утверждение верно для t==k 56 определяется: 1. По признаку невозможности управления субъектами, принадлежащими множеству Sz, со стороны пользователя (в противном случае последовательность активизации субъектов может быть изменена). 2. По признаку доступности для контроля неизменности всех объектов из множества Oz. 3. По признаку невозрастания уровня представления информации (в данном случае имеется в виду, что существует момент времени tx такой, что для любого t>tx объект- аргумент Oj операции Stream(Si, Oj) принадлежит одному уровню представления). Необходимо заметить, что последовательность ZL локализуется в некотором объекте либо совокупности объектов (например, для DOS последовательность активизации субъектов предопределена содержанием файлов AUTOEXEC.BAT и CONFIG.SYS) и неизменность последовательности ZL тождественна неизменности указанных объектов, для ОС Windows NT последовательность активизации компонент определена содержанием соответствующих ключей реестра (registry). Пусть в последовательности ZL можно выделить zi такое, что для любого Zk, k>i отображений Create и Stream используют только объекты уровня R. Другими словами, с момента времени i наступает стационарная фаза функционирования АС. В этих условиях, а также при попарной корректности субъектов и действии МБС с контролем неизменности объектов-источников на уровне R с момента времени m>k верно: Утверждение 5 (достаточное условие ИПС при ступенчатой загрузке) При условии неизменности ZL и неизменности объектов из Oz в АС с момента времени установления неизменности ZL и Oz действует изолированная программная среда. Доказательство. Необходимо заметить, что все условия утверждения 5 соответствуют утверждению 4. Уточнения касаются структуры последовательности ZL. Согласно утверждению 4 с момента временило до момента t==l действует изолированная (в рамках) Sz программная среда. Для доказательства утверждения необходимо убедиться в том, что: - МБС в момент времени t=m гарантировано активизируется, - в любой момент t>m программная среда изолирована. Первое следует из утверждения 4 (при 1=т состояние программной среды всегда будет одинаково, следовательно, всегда будет активизирован субъект МБС). Второе следует из определения МБС и условия теоремы. С момента времени t==0 до момента времени 1 программная среда изолирована, с момента времени t>m программная среда также изолирована, следовательно, АС изолирована при любом t>0. Утверждение доказано. Используя утверждения 3,4 и 5, рассмотрим процесс практического проектирования защищенного фрагмента АС. Первоначально необходимо убедиться в выполнении условий корректности или абсолютной корректности для субъектов, участвующих в порождении ИПС. Указанные субъекты в основном могут быть локализованы на уровне программно-аппаратной компоненты ЭВМ (программы ПЗУ, загрузчики операционных сред), т. е. работать на уровне, близком к взаимодействию с оборудованием АС, либо на уровне операционной среды. Доказательство корректности субъектов программно-аппаратного уровня значительно отличается от соответствующих доказательств для субъектов прикладного уровня. В связи с этим выделим проверку условий корректности субъектов в два шага. Шагом 1 назовем доказательство корректности субъектов программно-аппаратного уровня. Понятие модуль обозначает реализацию объекта- источника, а совокупность субъекта, порожденного из объекта-источника и всего множества ассоциированных с этим субъектом объектов в течение всего времени существования субъекта, называется, как правило, процессом (или задачей, заданием). 57 Далее необходимо определить состав программных средств базовой вычислительной среды, т. е. определить конкретную операционную среду, дополнительные программные средства сервиса (например, программные оболочки или средства телекоммуникации) и программные средства поддержки дополнительного оборудования (программы управления принтером и др.). После этого наступает самый трудоемкий этап (Шаг 2), на котором необходимо убедиться в корректности субъектов описанного базового набора программных средств. При этом важно заметить следующее. В составе ПО АС не должно быть целого класса возможностей -назовем их инструментальными. Прежде всего это возможность изменения состояния ассоциированных объектов со стороны субъекта (например, изменение содержимого оперативной памяти) других субъектов (изменение содержания подразумевает существование операций Stream типа запись), возможность инициирования и прекращения выполнения процессов нестандартным образом (помимо механизмов операционной среды). Кроме того, при реализации МБС и МБО на стационарной фазе функционирования АС необходимо отсутствие в любых субъектах, замкнутых в ИПС, операций порождения потоков Stream к объектам уровня k Утверждение б (требования к субъектному наполнению изолированной программной среды) Для того чтобы ИПС поддерживалась в течение всего времени активности АС, достаточно, чтобы в составе программного обеспечения, могущего быть инициированным в ИПС, не было функций порождения субъектов и прекращения их работы, кроме заранее предопределенных при реализации МБС, и не существовало возможностей влияния на среду выполнения (под средой выполнения понимается множество ассоциированных объектов) любого процесса, а также инициирования потоков к объектам логического уровня менее R. Поясним требование невозможности прекращения выполнения субъекта каким-либо иным образом, кроме предопределенного. В данном случае необходимо учитывать, что во множестве субъектов, замкнутых в ИПС, выделены два особых субъекта - МБС и МБО. Прекращение существования МБС означает нарушение условия замкнутости среды, а прекращение существования МБО означает допустимость потоков множества N, т. е. несанкционированный доступ. Шаг 3 заключается в проектировании и разработке программных или программно- аппаратных средств защиты в АС, а затем и их тестировании. Он подразумевает проектирование и реализацию в заданном множестве субъектов МБС и МБО. Шаг 4 заключается в "замыкании" всего комплекса программного обеспечения, включая и средства защиты, в изолированную программную среду. Итак, показано, что основными элементами поддержания изолированности программной среды являются контроль целостности и контроль порождения процессов. Выше мы уже сформулировали понятия МБС и порождения субъектов с контролем их неизменности. Необходимо заметить, что для достоверного контроля неизменности объекта (т. е. с вероятностью ошибки, равной 0) необходимо убедиться в полном тождестве проверяемого объекта и образца. Из этого следует, что эталон должен содержать не меньше информации, чем проверяемый объект. Из этого в свою очередь следует, что эталонный объект должен быть как минимум одинаковой длины с проверяемым. На практике такой подход может быть применен с серьезными ограничениями (например, для объектов небольшого объема типа программ ПЗУ или загрузчиков ОС). В связи с этим для контроля целостности применяют объекты, содержащие информацию, зависящую от всего содержания объекта, но тем не менее значительно меньшего объема, вычисленную при помощи класса функций типа «хэш-функций». Очевидно, что в этом случае процесс установления неизменности объекта становится 58 вероятностным. Исходя из данного факта невозможно говорить о гарантированных (детерминировано) свойствах системы (поскольку неизменность объекта гарантируется лишь с некоторой вероятностью, не равной 1). Следовательно, все условия утверждений выполняются с некоторой вероятностью, зависящей от свойств применяемых для контроля целостности хэш- функций. Для подчеркивания изменившихся условий будем говорить далее не о контроле неизменности объекта, а о контроле целостности (КЦ) объекта. Необходимо отметить также, что в процедуре контроля неизменности (которая теперь принимает вероятностный характер) участвуют как минимум два объекта: объект контроля и эталонный объект (хэш-значение), а также субъект, реализующий хэш-функцию и производящий сравнение. Поэтому для субъекта контроля целостности важным является выполнение следующих условий: - качественный алгоритм контроля целостности (термин «качественный» будет пояснен ниже); - контроль реальных данных (т. е. отображение состояния контролируемого и эталонного объемов в ассоциированные объекты-данные субъекта контроля целостности, совпадающее с тождественным). Поясним подробнее второй пункт. Контроль целостности всегда сопряжен с чтением данных (т. е. с инициированием потоков от объектов к ассоциированным объектам-данным субъекта контроля целостности, причем потоки могут соответствовать различному уровню представления информации - чтение по секторам, по файлам и т. д.). Например, встроенный в BIOS ПЭВМ субъект (практически это программная закладка - см. ниже) может навязывать при чтении вместо одного сектора другой или редактировать непосредственно буфер, в который были прочитаны данные. Аналогичный эффект может быть вызван субъектами операционной среды, например, субъектами, локализованными в первичных загрузчиках ОС. С другой стороны, даже контроль самого BIOS может происходить "под наблюдением" какой- либо дополнительной аппаратуры и не показать его изменения. Аналогичные эффекты могут возникать и при обработке файла. Цель организации режима чтения реальных данных состоит в тождественном отображении параметров чтения на АО субъекта чтения (поток от АО субъекта КЦ к АО субъекта чтения) и тождественном отображении считываемого объекта (в соответствии с параметрами, переданными субъекту чтения) к ассоциированным объектам- данным субъекта КЦ. Поясним теперь понятие качественного КЦ с точки зрения математических свойств функции КЦ. Предположим, что имеется некоторый объект F и некоторый алгоритм Н, преобразующий объект F в некоторый объект М, который представляется словом того же языка, но меньшей длины. Этот алгоритм таков, что при случайном равновероятном выборе двух объектов F1 и F2 из множества возможных соответствующие им объекты MI=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(Fi)=H(F2)/Fi не тождествен F2) не более заданной Рь. Поясним смысл этих условий. Пусть программа злоумышленника изменила объект F (статическое искажение). Тогда, вообще говоря, хэш-значение М для данного объекта 59 изменится. Если субъекту злоумышленника доступен для изменения объект М (существует соответствующий поток), то он может по известному алгоритму Н вычислить новое хэш- значение для измененного объекта и заместить им исходное. Пусть хэш-значение недоступно, тогда можно попытаться так построить измененный объект, чтобы хэш-значение его не изменилось; принципиальная возможность этого имеется, поскольку отображение, задаваемое алгоритмом хэширования Н, не биективно (неоднозначно). Таким образом, при условии недоступности хэш-значения для изменения и доступности для изменения объекта-источника трудоемкость нарушения ИПС с КЦ объектов- источников (т. е. возможность породить субъект из объекта-источника, не тождественного исходному объекту) совпадает с Tн. При однократной попытке инициировать субъект из случайно равновероятно выбранного объекта-источника вероятность нарушения ИПС (успешное порождение субъекта) не превосходит Ph. Итак, «качество» ИПС определяется свойствами хэш-функции Н, а именно: величинами Tн и Рн. Обобщим приводимые выше рассуждения в методе "безопасной загрузки", или ступенчатого контроля. Он заключается в постепенном установлении неизменности компонент программно-аппаратной среды: 1. Сначала проверяется неизменность программ ПЗУ, при положительном исходе через проверенные на целостность программы ПЗУ считывается загрузочный сектор и драйверы операционной системы (по секторам) и их неизменность также проверяется, кроме того, проверяется целостность объекта, определяющего последовательность активизации компонент; 2. Через функции чтения, проверенной ОС, инициируется процесс контроля порождения процессов (реализация МБС); 3. Инициирование процесса контроля доступа к объектам завершает проектирование гарантировано защищенной АС. Рассматривая вопросы программно-технической реализации ИПС, необходимо заметить, что мощность множества субъектов в некотором сегменте АС (выделенном по признаку принадлежности одной ЭВМ) с момента включения питания до момента запуска процессов пользователя увеличивается. Первоначально активизируются субъекты аппаратно- программного уровня (программы ПЗУ), затем указанные субъекты порождают из объектов- источников данного уровня (это, как правило, сектора внешних носителей информации) субъектов уровня операционной среды. Субъекты уровня операционной среды, как уже отмечалось, также делятся на два подуровня: нижний уровень — субъекты — первичные загрузчики ОС (работающие с информацией уровня секторов) и верхний уровень - субъекты-драйверы (порождаемые субъектами - первичными загрузчиками из объектов-секторов), работающие с объектами уровня «файл» (последовательности секторов). На этапе перехода от субъектов-загрузчиков к субъектам-драйверам происходит переход и к другой декомпозиции АС на объекты (от секторов к файлам). Указанная иерархия действует в любой известной на сегодняшний день АС и естественным образом предопределяет архитектуру, в рамках которой формируется и функционирует ИПС. Например, аппаратная архитектура ПЭВМ типа IBM PC задает следующие этапы активизации различных субъектов АС. При включении питания ПЭВМ происходит тестирование ОП, инициализация таблицы векторов прерываний и поиск расширений BIOS. При их наличии управление передается на них. После отработки расширений BIOS в память считывается первый сектор дискеты или винчестера и управление передается на него (образуется код загрузчика), затем код загрузчика считывает драйверы операционной системы, далее интерпретируются файлы конфигурации, подгружается командный интерпретатор и выполняется файл автозапуска. При реализации ИПС на нее должна быть возложена функция контроля запусков 60 программ и контроля целостности. При описании методологии проектирования ИПС упоминалась проблема контроля реальных данных. Эта проблема состоит в том, что контролируемая на целостность информация может представляться по-разному на разных уровнях. Внедренный в систему субъект может влиять на процесс чтения-записи данных на уровне файлов (или на уровне секторов) и предъявлять системе контроля некоторые другие вместо реально существующих данных. Этот механизм неоднократно реализовался в STELS- вирусах. Однако верно утверждение. Утверждение 7 (достаточное условие чтения реальных данных) Если субъект, обслуживающий процесс чтения данных (т. е. указанный субъект инициируется запрашивающим данные субъектом и участвует в потоке), содержал только функции тождественного отображения данных на ассоциированные объекты-данные любого субъекта, инициирующего поток чтения, и целостность объекта-источника для этого субъекта зафиксирована, то при его последующей неизменности чтение с использованием порожденного субъекта будет чтением реальных данных. Доказательство. Верность утверждения следует из определения тождественности субъекта и из условия утверждения, гарантирующего неизменность объекта-источника. Необходимо и здесь сделать оговорку о вероятностном характере установления неизменности и говорить, что чтение реальных данных возможно с вероятностью, определяемой алгоритмом КЦ. Метод ступенчатого контроля не противоречит утверждениям 4 и 5 и предусматривает разделение последовательности активизации компонент ZL на подпоследовательности с одинаковым уровнем представления информации. Реализация метода ступенчатого контроля целостности должна удовлетворять условиям утверждения 4. Опишем практическую реализацию сформулированных методов. Выше было сказано о том, что субъект контроля неизменности объектов, входящих в процедуры активизации АС и объектов, описывающих последовательность активизации компонент, должен быть активен уже на этапе работы субъектов аппаратно-программного уровня, но его объект-источник технически не может быть проверенна неизменность. В связи с этим подчеркнем весьма важный факт для любых реализаций ИПС. Аксиома 5. Генерация ИПС рассматривается в условиях неизменности конфигурации тех субъектов АС, которые активизируются до старта процедур контроля целостности объектов Oz и последовательности ZL. Неизменность данных субъектов обеспечивается внешними по отношению к самой АС методами и средствами. При анализе или синтезе защитных механизмов свойства указанных субъектов являются априорно заданными. При решении практических вопросов генерации ИПС можно выделить три самостоятельных направления. Первое из них связано с использованием внешних по отношению к АС субъектов (как правило, размещенных на внешнем носителе), целостность которых гарантируется методами хранения или периодического контроля. Предопределенность активизации субъектов, локализованных на внешних носителях, обеспечивается свойствами субъектов аппаратно- программного уровня (например, возможно установить такую аппаратную конфигурацию ПЭВМ, при которой будет происходить загрузка операционной системы с ГМД). Второе направление связано с локализацией ИПС в рамках территориально ограниченного рабочего места (как правило, ПЭВМ) и использует аппаратную поддержку для задания предопределенной последовательности активизации субъектов. Данное направление, как правило, включает и аппаратную поддержку аутентификации пользователей. Третье направление связано с реализацией метода доверенной загрузки операционной среды с использованием уже имеющихся в ней механизмов реализации и гарантирования ПБ. Необходимо заметить, что в различные интервалы активности АС субъектами могут 61 управлять различные пользователи, для которых множество разрешенных субъектов Е различно, в связи с этим будем говорить о множестве Ei для i-го пользователя АС. Будем также подразумевать, что перед установлением однозначного соответствия множества Ei пользователю i происходит процедура его аутентификации. Ниже будут кратко рассмотрены все способы реализации ИПС. Говоря о первом из них необходимо отметить, что в его рамках можно рассматривать конфигурацию ИПС в двух вариантах: при локализации всех объектов-источников для порождения ИПС в рамках одного или нескольких внешних носителей; при локализации части объектов-источников на внешнем носителе, а части - во внешней памяти рабочего места. Вторая конфигурация характеризуется потенциальной возможностью нарушения изолированности, состоящей в том, что активизация субъектов из объектов-источников, не принадлежащих внешнему носителю, может производиться вне рамок ИПС. В качестве примера можно рассмотреть ситуацию, когда программы запускаются в рамках операционной среды, загруженной с дискеты. С другой стороны, запуск указанных программ возможен и при загрузке ОС с другого носителя (в частности, с носителей рабочего места), и при этом возможна активизация и тех модулей, которые находятся на дискете. Следовательно, основной задачей при использовании внешнего носителя для генерации ИПС является обеспечение невозможности активизации любого субъекта из объекта-источника внешнего носителя вне рамок зафиксированной для этого носителя последовательности активизации компонент ИПС. Наиболее ранний описанный способ проектирования ИПС в рамках подхода с использованием внешнего носителя получил название «невидимой дискеты». Этот способ заключается в том, что все объекты, принадлежащие множеству Oz, и объекты, описывающие последовательность ZL, помещаются на внешний носитель, с которого может быть произведена загрузка операционной системы (обычно дискета). Неизменность объектов обеспечивается физической защитой носителя от записи. Кроме того, использование специальной технологии не позволяет использовать объекты (в том числе и обеспечить выполнение программ) без загрузки ОС именно с этой дискеты. Практически такая дискета выглядит достаточно нетривиально: будучи помещенной в дисковод ПЭВМ она выглядит как неформатированная (или, вином варианте, пустая). После загрузки с такой "пустой" дискеты пользователь сразу «погружается» в заданную программу и работает с ней, обращаясь в том числе и к данным на винчестере и запуская программы с локальных несменяемых носителей рабочего места с предварительным контролем неизменности соответствующих им объектов-источников (исполняемых файлов). Предлагаемый способ позволяет исключить использование изготовленной дискеты без загрузки с нее. Дополнив загружаемую с такой дискеты операционную среду программами проверки целостности, можно добиться соблюдения всех требований изолированности программно-аппаратной среды. Как следует из утверждения 5, одним из важнейших условий поддержания ИПС является невозможность изменения последовательности активизации компонент. В данном случае целостность объектов, содержащих последовательность активизации компонент, гарантируется физическим запретом записи на дискету, Важной проблемой является невозможность прерывания процесса активизации компонент, В ряде операционных сред для этого имеются штатные возможности, предусмотренные для обеспечения защиты от ошибок пользователя, сформировавшего некорректную последовательность активизации компонент ОС. В связи с этим должны быть приняты меры, гарантирующие пассивность органов управления в период отработки последовательности ZL (например, аппаратная блокировка клавиатуры с момента активизации модифицированного BOOT до момента окончания активизации субъектов 62 множества Sz). Описанный метод позже был реализован во внешних носителях типа CD-ROM, которые позволили значительно (на два порядка) увеличить информационную емкость носителя и загружать с него развитые операционные среды типа OS/2. Однако однократность записи существенно снижает гибкость построения ИПС таким методом. Неудобство использования загрузочной дискеты и ее быстрый износ обусловили возникновение следующего способа проектирования ИПС. Откажемся от рассмотрения загрузочной дискеты и рассмотрим ПЭВМ с загрузкой ОС с устройства локального хранения (винчестера) и дополнительным аппаратным устройством изолирования среды. Рассмотрим два этапа - этап установки ИПС и этап эксплуатации ИПС. Предположим существование N пользователей, каждый i-ный из которых характеризуется некоторой персональной информацией Кi, не известной другим пользователям и хранящейся на некотором материальном носителе (например, устройстве сенсорной памяти типа Touch Memory). Существует также администратор системы с ИПС, который знает все Ki и единолично проводит этап установки. Пользователи (владельцы Ki) же участвуют только в этапе эксплуатации. Процесс установки ИПС состоит из следующих действий: 1. В ПЭВМ устанавливается аппаратный модуль, включающий в себя устройство и программы ПЗУ данного устройства (субъекты аппаратно-программного уровня), реализующие: операции сервиса аутентифицирующего носителя пользователя Ci (как минимум его чтение); аутентификацию пользователя с номером inc введенному им Ki; 1- чтение массива данных, содержащего множество доступных для пользователя i объектов-источников (исполняемых модулей) Fil, Fi2, …,Fim, составляющих Oz, а также объект, содержащий ZL; вычисление информации Mil, Mi2, ... Mim, фиксирующей целостность объектов- источников Fil, ..., Fim каждого объекта-источника (информация Mij должна удовлетворять требованиям хэш-значений и, возможно, зависеть от Ki), Mij=H(Ki, Fj) блокирование устройств управления и предотвращение загрузки операционной среды с внешнего носителя. 2. Администратор определяет для пользователя i набор потенциально возможных для активизации субъектов Ei, Ei={Pil, ..., Pimi}, i==l, ...,N. Create (Pik, Fj)->Pij, mi - число разрешенных к запуску задач для i-го пользователя. 3. Администратор формирует (и заносит на носитель) или считывает с носителя для i- го пользователя ero Ki и вычисляет значения для последующего контроля целостности Мijr== Н(Кi, Fjr) где Н- функция КЦ (хэш-функция). 4. Администратор проделывает действия 2 и 3 для всех N пользователей. 5. Администратор устанавливает в АС МБС с объектом-источником Fипс и фиксирует его целостность. Установка модуля происходит с учетом условий утверждения 5. 6. Администратор фиксирует целостность объекта, содержащего ZL. Процесс эксплуатации состоит из следующих действий. 1. Включение питания и активизация аппаратного модуля: а) Идентификация пользователя i по Ki. При успехе выполняется п. б), при неудаче ПЭВМ блокируется. б) Проверка целостности всех установленных в ПЭВМ ПЗУ. При положительном исходе выполняется п. в), при неудаче ПЭВМ блокируется. в) Чтение по секторам файлов операционной среды и проверка их целостности. г) Чтение как файла Fипс (с помощью функций операционной среды) и проверка его целостности. Вариантом может быть чтение Fипс по секторам. д) Активизация процесса контроля Рипс. Сгeatе(Sх,Fипс)->Fипс. Активизация МБО. 63 е) Запуск избранной задачи i-го пользователя (может не выполняться). 2.РаботавИПС. Запуск каждого процесса Ps сопровождается проверками: а) Принадлежит ли Ps к множеству разрешенных для i (Еi) если да, то выполняется п. б), иначе запуск игнорируется. б) Совпадает ли G==Н(Кi, Fs,) с M=H(Ki, Fs), вычисленной администратором. в) При положительном исходе б) задача запускается, иначе запуск игнорируется. Легко видеть, что условия изолированности среды выполнены. Кроме того, в данном случае реализован механизм ступенчатого контроля, обеспечивающий чтение реальных данных. При дополнении в ИПС реализации МБО и выполнении условий, предъявленных выше, к субъектам, входящим в ИПС, сформированная программная среда будет гарантированно защищенной в рамках политики безопасности, реализованной в МБО. Используя утверждение 4, об одинаковости состояний АС после активизации проверенных на неизменность субъектов в неизменной последовательности, можно описать метод доверенной загрузки компонент операционной среды (кратко «метод доверенной загрузки»). Пусть предопределен порядок загрузки компонентов ОС (под загрузкой компонентов ОС понимается активизация различных субъектов ОС из соответствующих объектов- источников различного уровня иерархии). Процедуру загрузки ОС назовем доверенной, если: установлена неизменность компонент ОС (объектов), участвующих в загрузке (иными словами - объектов, принадлежащих множеству Oz), причем неизменность установлена до порождения первого субъекта из ZL; установлена неизменность объектов, определяющих последовательность активизации компонент ОС (с учетом нескольких уровней иерархии), неизменность обеспечена в течение заданного интервала времени; состояние указанных объектов не может быть изменено никем, кроме предопределенного пользователя (пользователей) АС (это условие соответствует неизменности последовательности ZL). Легко видеть, что процедура доверенной загрузки обеспечивает одинаковое состояние АС после выполнения загрузки (согласно утверждению 4). Основная техническая проблема при реализации доверенной загрузки состоит в доступе к объектам высшего уровня иерархии ОС (файлам) до загрузки ядра данной ОС (загружаемую ОС далее будем называть пользовательской). Однако при возможности генерации ИПС для какой-либо иной ОС (далее будем называть ее базовой) можно предложить итеративную реализацию доверенной загрузки с использованием ресурсов указанной ОС. Рассмотрим реализацию доверенной загрузки ОС на основе генерации ИПС для одной из операционных сред вычислительной системы. Предположим, что имеется базовая операционная система, для которой возможна полноценная генерация ИПС. Пусть в вычислительной Системе существуют еще операционные системы Os1, 0s2, ..., OSn. Ставится задача доверенного запуска операционной среды OSj. Пусть в базовой операционной системе имеется некоторое условно называемое "шлюзовое ПО" между базовой операционной системой и OSj. Функции шлюзового ПО заключаются в обеспечении доступа к файловой системе операционной системы OSj (т. е. объектам уровня R). Пусть также пользователь i имеет физический доступ к комплекту технических средств (рабочему месту) сети (ЭВМ) Тm, на котором установлена операционная система OSj. При использовании комплекта Тm пользователем i. 1. Происходит аутентификация пользователя i (по его индивидуальной информации). 2. Проверяются права пользователя по использованию аппаратной компоненты комплекта Тm. 3. Контролируется целостность (на основе информации пользователя Ki либо без нее) 64 всех объектов базовой ОС, размещенных на некотором носителе, локально или удаленно (через технические средства ЛВС) связанном с Тт. 4. Загружается базовая операционная система и контролируется целостность шлюзового ПО. 5. Загружается шлюзовое ПО (при этом становится доступной как минимум в режиме чтения файловая структура OSj, размещенная локально на Тm). 6. Контролируется целостность объектов уровней, меньших Rj (Rj - максимальный уровень представления объектов в OSj) для OSj (см. выше). 7. Контролируется целостность объектов уровня Rj (файлов) OSj. 8. Контролируется целостность объекта, задающего последовательность загрузки компонент. 9. Осуществляется принудительная загрузка (инициируется предопределенный в силу целостности объектов Oz и последовательности ZL порядок загрузки компонент ОС) проверенной на целостность OSj. Утверждение 8 (условия генерации ИПС при реализации метода) Пусть ядро ОС содержит МБО и МБС, инициируемые в ОС субьекты попарно корректны, их объекты-источники принадлежит множеству проверяемых на неизменность в ходе доверенной загрузки, МБО запрещает изменение любого объекта-источника и выполнена процедура доверенной загрузки ОС. Тогда после инициирования ядра ОС генерируется ИПС. Доказательство. Процедура доверенной загрузки по построению обеспечивает неизменность Oz и ZL, по условию утверждения для порождения субъектов разрешены только объекты-источники, принадлежащие 0z, неизменность объектов-источников по условию гарантируется свойствами МБО. Следовательно, выполнены условия утверждения 5 и генерируется ИПС. Утверждение доказано. |