На правах рекламы:
ISSN 0236-235X (P)
ISSN 2311-2735 (E)

Авторитетность издания

ВАК - К1
RSCI, ядро РИНЦ

Добавить в закладки

Следующий номер на сайте

2
Ожидается:
16 Июня 2024

Исследование проектов верхнего и нижнего уровней политики безопасности ОС Windows

Статья опубликована в выпуске журнала № 4 за 2007 год.
Аннотация:
Abstract:
Авторы: Моляков А.С. () - , Грушо А.А. () -
Ключевое слово:
Ключевое слово:
Количество просмотров: 11663
Версия для печати
Выпуск в формате PDF (2.00Мб)

Размер шрифта:       Шрифт:

Применяемые в системах обработки информации организационные меры защиты не могут обеспечить необходимую степень безопасности заинтересованных субъектов информационных отношений. Достаточно сказать, что наиболее популярная MS DOS является полностью открытой системой и не имеет никаких механизмов защиты. Защитные функции среды Windows 3.X, Windows 95 (далее Windows) весьма ограничены. Наиболее широко распространенная сетевая операционная система (ОС) Novell Netware, хотя и имеет богатый арсенал механизмов защиты, но все они предназначены для защиты данных, хранимых на сетевых дисках (на файловых серверах). Именно поэтому исследование формальных моделей безопасности становится определяющей задачей.

 

Цель работы – выявить неопределенности (коллизии) в формальном описании политики безопасности (ПБ) Windows NT и продемонстрировать несоответствие ее требованиям полноты и непротиворечивости. Рассмотрим общие положения исследования проектов верхнего и нижнего уровней ОС класса NT.

Описание исследования формальной модели ПБ Windows NT 5.1

Групповые ПБ (Group Policy – GP) представляют собой основной метод обеспечения централизованного управления конфигурацией безопасности в Windows XP и Windows 2003. Они могут применяться на уровне сайта, домена и OU, а также могут применяться к пользователям и компьютерам (Users and Computers) в Aсtive Directory. GP используются для выполнения следующих действий: блокировка рабочих столов пользователей; применение параметров безопасности; ограничение доступа к приложениям; установка разрешения реестра и файловой системы.

Область настройки пользователя User Configu­ration содержит такие элементы, как параметры рабочего стола, параметры безопасности и сценарии входа и выхода их системы. Эти элементы определены под деревом User Configuration и применяются при входе в систему или обновлении GP. Computer Configuration используется для настройки работающей системной среды (а не пользовательской оболочки), включая параметры служб, параметры безопасности и сценарии загрузки/отключения. Эти элементы определены в дереве Computer Configuration и применяются при загрузке и обновлении GP. По умолчанию GP применяются в зависимости от расположения настраиваемого объекта. Пользовательские GP зависят от того, в каком сайте, домене и организационной единице находится объект "пользователь". То же самое относится и к компьютеру. GP применяются к компьютерам в зависимости от расположения объекта "компьютер" (сайт, домен и организационная единица, в которой находится компьютер). Это означает, что если GP применяется к объекту User (пользователь), то используется конфигурация пользователя, а конфигурация компьютера GP игнорируется. И наоборот, если GP применяется к объекту Computer (компьютер), используется конфигурация компьютера, а конфигурация пользователя игнорируется. Имеются две GP, установленные по умолчанию, используемые при создании домена: Default Domain Policy (политика домена по умолчанию) и Default Domain Controller Policy (политика контроллера домена). Приведем общее описание спецификаций проектов верхнего и нижнего уровней.

Верхний уровень спецификации включает в себя модули защиты контроллера (ActiveDirectory), менеджера сессии, исполнительной подсистемы клиентских динамических библиотек сrss.exe, исполнительной подсистемы Win32, менеджера файловой системы. Идентификаторы системы безопасности на HLP (High Level Project) с реализацией шаблонов GP включают в себя описание объектов и субъектов доступа.

Объекты Windows.

Session Objects – метка доступа (Security Token). Реализованы функции аутентификации-идентификации и поддержки контекста безопасности процессов (потоков) Security Policy Manager (идентификатор sid).

File Objects – идентификатор процесса, создаваемого при загрузке файла в оперативную память (в режиме исполнения, чтения или записи) Pid (Process Id). Данный уровень реализует функции защиты менеджера виртуальной памяти и файлового менеджера, работу с идентификаторами пользователей и группы пользователей (uid и guid).

Symbol Link – ссылки на девайс-устройства в пространстве пользовательских процессов, логические диски пользователей в глобальной сессии или определенная для конкретного локального окружения безопасности ссылка на ресурс {Sym Link ?? \\ путь к устройству}.

На данном уровне реализованы функции диспетчера объектов Windows.

Кодирование прав доступа к объектам Windows описывается в виде RWE-структуры, где R – право на чтение, W – право на запись, E – право на исполнение. В ОС класса NT cуществуют четыре группы безопасности: группа администраторов, пользователи, гости и специальная учетная запись для владельца System_Authority. Все субъекты, входящие в группу администраторов, получают права Admin. В заданной GP явного присвоения значений полю учетной записи владельца System_Authority не происходит. Все необходимые данные для монитора безопасности при инициализации прав доступа по умолчанию наследуются от группы администраторов.

Неопределенность настройки шаблонов безопасности, совмещение прав Admin и System_ Authority создает угрозу неконтролируемого повышения полномочий приложения на уровне супервизора системы. По умолчанию все настройки для группы администраторов наследуются для создаваемых экземпляров системных объектов, отсутствует контроль явной инициализации бита s (бит системности), его заменяет поле control структуры SE_Privilеge.

Промежуточный уровень спецификации включает модули защиты менеджера ввода-выво­да нижнего уровня и верхнего слоя исполнительной среды ядра. На данном этапе реализованы функции контроля исполнения кодов на уровне вызова Runtime-библиотек загрузчика Windows, обработка исключений, взаимодействие клиентских приложений с системным обработчиком дескрипторных таблиц ядра NT. Мы оперируем со структурой атрибутов доступа и используем расширение представления примитивов безопасности (проверку привилегий на нижнем уровне операций ввода-вывода). Главный признак – проверка полномочий на запуск.

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

Подпись:   
Неоднозначность связей в схеме «субъет-объект доступа»
(CPL – текущий уровень привилегий пользователей (субъектов); 
DPL – уровень привилегий на доступ к данным (ресурсам-объектам); 
RPL – запрашиваемый уровень привилегий (делегирование полномочий))
Нижний уровень спецификации включает модули защиты HAL-среды, уровень драйверов физических, логических и виртуальных устройств, диспетчера ввода-вывода системных запросов. На данном уровне идет работа с циклом обработки IRP-пакетов, вместо прав владельца используется файл конфигурации для устройств с расширением INF (где указывается владелец, время и дата создания, текущие настройки). На этом уровне уже не действуют механизмы защиты монитора безопасности. Загрузка кода идет в системное пространство путем прямого вызова системной функции диспетчера Driver _Entry. Диспетчер объектов памяти считывает значения раздела \\Service, UNICODE – строку имени устройства \\DEVICE, получает указатель на объект драйвера, создает линк (привязку) к конкретному устройству с CLSID в корневом разделе реестра. Более того, загрузка драйвера и его идентификация в памяти осуществляются путем разыменования указателя на область памяти и чтения PE-заголовка загруженного образа модуля sys (создается имя объекта DDO – Driver Definition Object, которое и используется для аллокации объектов в оперативной памяти). На уровне драйвера отсутствует эффективный механизм защиты. Примитивы монитора безопасности не реализованы на уровне HAL-диспетчера. Не разработан метод инкапсулированной обработки процессов-потоков при взаимодействии с объектами ядра на уровне драйверов. Ссылки и описатели на устройства в пространстве пользователей отличаются от ссылок на ресурсы ядра (\\SymLink и \\Device ), то есть существует неопределенность описания состояний в заданной ПБ. Кроме того, на уровне микроядра право на запуск представляется двухбитным полем – битом подчиненности, который определяет родительский или дочерний процесс (поток) и создается в системе, и значением ContextId, которое идентифицирует запущенный процесс (поток) в списке внутренних таблиц процессора.

В ходе исследования формальной модели безопасности ОС Windows NT 5.1 были получены следующие научные результаты.

Существует понятие противоречивости правил безопасности ОС Windows, позволяющее получать несанкционированный доступ или вызывать сбои функционирования, изменять, модифицировать и нарушать правила действующей ПБ.

Иерархическое описание ссылок (дескрипторов) при следовании сверху-вниз от проекта верхнего уровня до проекта нижнего уровня модифицируется, дополняется новыми дескриптивными атрибутами модели ПБ, благодаря чему допускается ее неоднозначное толкование.

Неполнота правил ПБ, неоднозначность трактовки заданных формальных шаблонов ПБ приводит к возникновению уязвимостей – условий, нарушающих стабильность и реентрантность работы ОС в целом. Угроза нарушения доступа к конфиденциальной информации обусловливает необходимость разработки новых методов поиска скрытых процессов ядра Windows NT 5.1.

Задание ПБ на верхнем уровне не соответствует требованиям безопасности на нижнем уровне, что подтверждает несостоятельность и неполноту ПБ. Формальное задание ПБ не является полным и непротиворечивым.

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


Постоянный адрес статьи:
http://swsys.ru/index.php?page=article&id=299&lang=
Версия для печати
Выпуск в формате PDF (2.00Мб)
Статья опубликована в выпуске журнала № 4 за 2007 год.

Возможно, Вас заинтересуют следующие статьи схожих тематик: