Практика показывает, что многоуровневые модели защиты находятся гораздо ближе к потребностям реальной жизни, нежели матричные модели, и представляют собой хорошую основу для построения автоматизированных систем разграничения доступа. За счет более высокого "интеллекта", содержащегося в решетчатых моделях, системы защиты с контролем доступа на уровне потоков данных во многих случаях могут без вмешательства человека принимать решения о допуске пользователей к охраняемым данным, что снижает опасность образования узких мест, связанных с деятельностью администратора защиты.
Однако в реализации многоуровневых систем разграничения доступа имеются серьезные теоретические и технические проблемы.
Одна из них – возникновение состояний избыточной конфиденциальности (секретности), связанных с необходимостью автоматической деклассификании конфиденциальных данных. Другие проблемы, связанные с трудностями реализации многоуровневых систем разграничения доступа, рассматриваются в последующем материале.
Вопрос 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, функции разграничения доступа к элементам файловой структуры интегрированы непосредственно в управляющую программу. Существенной особенностью матричных СРД для наиболее широко используемых на сегодняшний день универсальных ОС является принципиальная децентрализованность механизмов диспетчера доступа, что приводит к невозможности строгого выполнения изложенных выше Требований верифицируемости, защищенности и полноты контроля этих механизмов.
В области многоуровневых СРД доминирующей идеей, в течение последнего десятилетия определявшей основное направление исследований, является концепция разработки защищенной универсальной ОС на базе так называемого ядра безопасности. Под ядром безопасности понимают локализованную, минимизированную, четко ограниченную и надежно изолированную совокупность программно-аппаратных механизмов, доказательно правильно реализующих функции диспетчера доступа (и ряд других сопутствующих служебных функций, например доверенных процессов). Демонстрация корректности функционирования ядра безопасности проводится путем полной формальной верификации его программ и пошаговым доказательством их соответствия заданной математической модели защиты на всех стадиях разработки.
Важно отметить, что сама концепция ядра безопасности своим рождением обязана стремлению преодолеть трудности реализации средств защиты в рамках традиционных ОС. В упрощенной трактовке этот тезис выглядит следующим образом: "Если невозможно создать верифицируемую систему защиты для произвольной ОС, то необходимо создать специальную ОС (а может и специальную ЭВМ), средства защиты которой допускали бы формальную верификацию".
Создатели ядра безопасности обеспечивают выполнение требований к диспетчеру доступа за счет специфической структуры ОС и самого ядра, применения специальных методов и технологии разработки, а также при определенной архитектурной поддержке, реализуемой в аппаратных средствах ЭВМ. Стремление к снижению объема и внутренней логической сложности ядра продиктовано необходимостью выполнения требований верифицируемости.
Той же цели служит специальная технология разработки программ ядра и некоторых других компонентов ОС (использование средств формальной спецификации программ и автоматизированной проверки их корректности, применение специфических приемов программирования и специальных компиляторов и т. п.). Выполнению требования защищенности собственных механизмов СРД способствует использование специальной аппаратной поддержки и включение в состав контролируемых ядром объектов важнейших управляющих структур самой ОС. Последняя мера направлена на предотвращение возможности несанкционированного перехода пользовательских процессов в привилегированное состояние (или, как говорят, "прокола" ОС). Для традиционных универсальных ОС именно задача доказательства отсутствия таких проколов является одной из наиболее трудноразрешимых (требование полноты контроля).
К аппаратным средствам поддержки защиты и изоляции ядра безопасности относятся: