Информационная безопасность. Курс лекций.

Вопрос 3. Системы разграничения доступа.

На практике системы разграничения доступа (СРД), базирующиеся на моделях матричного типа, реализуются обычно в виде специальных компонент универсальных операционных систем (ОС) или систем управления базами данных (СУБД). Зачастую такие компоненты поставляются в виде самостоятельных программных изделий. Например, такие известные программные средства защиты, как RACF (Resource Access Control Facility) фирмы «IBM», SECURE5ЕС1ЖЕ фирмы «Boole and Baddige» и TOPSECRET фирмы «CGA Computer Ivc», предназначены для расширения функциональных возможностей широко распространенных ОС IBM System/370 MVS и VSI возможностями аутентификации пользователей и матричного разграничения доступа к томам и наборам данных на магнитных дисках, томам данных на магнитной ленте, терминалам, а также транзакциям IMS и CICS и некоторым другим объектам данных. В более современных ОС, таких, как UNIX и VAX/VMS, функции разграничения доступа к элементам файловой структуры интегрированы непосредственно в управляющую программу. Существенной особенностью матричных СРД для наиболее широко используемых на сегодняшний день универсальных ОС является принципиальная децентрализованность механизмов диспетчера доступа, что приводит к невозможности строгого выполнения изложенных выше Требований верифицируемости, защищенности и полноты контроля этих механизмов.

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

Важно отметить, что сама концепция ядра безопасности своим рождением обязана стремлению преодолеть трудности реализации средств защиты в рамках традиционных ОС. В упрощенной трактовке этот тезис выглядит следующим образом: "Если невозможно создать верифицируемую систему защиты для произвольной ОС, то необходимо создать специальную ОС (а может и специальную ЭВМ), средства защиты которой допускали бы формальную верификацию".

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

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

К аппаратным средствам поддержки защиты и изоляции ядра безопасности относятся:

– Многоуровневые, привилегированные режимы выполнения команд (с числом уровней больше двух);

– Использование ключей защиты и сегментирование памяти; – реализация механизма виртуальной памяти с разделением адресных пространств;

– Аппаратная реализация функций ОС; – хранение и распространение программ в ПЗУ; – использование новых архитектур ЭВМ (с отходом от фоннеймановской архитектуры в сторону повышения структурной сложности базовых машинных объектов – архитектуры с реализацией абстрактных типов данных, теговые архитектуры с привилегиями и т. п.).

Хорошей идеей структурной организации программных средств, Ориентированной на изоляцию управляющих механизмов и структур ОС, явилась концепция "виртуальной машины", нашедшая широкое применение в практике создания безопасных вычислительных систем.

Однако, несмотря на значительные усилия и средства, вложенные и исследования и разработку программных и аппаратных средств многоуровневой защиты, на сегодняшний день многие ведущие специалисты приходят к выводу, что существующими методами задача создания безопасной ЭВМ с операционной системой универсального применения не будет решена в ближайшее десятилетие.

В начале 80-х годов в США – появились первые специализированные ЭВМ, аттестованные Национальным центром безопасности ЭВМ, как гарантированно защищенные, что в классификации центра соответствует щенке А1. Широкую известность, в частности, приобрела система SCOMP фирмы "Honeywell", предназначенная для использования в центрах коммутации вычислительных сетей, обрабатывающих секретную «формацию. Хотя эта система разработана на базе концепции ядра безопасности, ее создателям удалось обеспечить необходимые характеристики производительности благодаря существенному ограничению функциональных возможностей данной специализированной ОС.

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

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

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

Вследствие невозможности количественной оценки защищенности неструктурированных универсальных ОС, создание средств многоуровневого разграничения доступа для них становится нецелесообразным.

Действительно, даже реализовав в распределенном диспетчере доступа! многоуровневую модель защиты, разработчики системы не смогут гарантировать отсутствие "проколов" в операционной системе, а также количественно подтвердить преимущества такой многоуровневой СРД перед простейшей матричной СРД, что естественно обесценит усилия, затраченные на ее создание. Поэтому, как уже указывалось, для большинства ОС коммерческие системы разграничения доступа реализуются на базе матричных моделей защиты.

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

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