Петров А.А. Комп без-ть
.pdfЗащита локальной рабочей станции |
221 |
3.2.4. Штатные средства защиты современных операционных систем на примере Шпйомз Л/Т
Некоторые вопросы защиты Л Р С от возможных атак потенциального на рушителя могут быть решены с использованием штатных средств, входя щих в состав современных операционных систем (в качестве конкретной ОС рассматривается ^ тб о ч у з О Т 4.0).
На сегодняшний день данная система является одной из самых распро страненных ОС, кроме того, ей присущи следующие положительные ка чества:
•защищенность. Национальное агентство безопасности правительства
СШ А в августе 1995 года сертифицировало соответствие автономно го варианта О С \ЭДпс1о\у5 N1" ^огкз^аНоп 3.51 ЗРЗ спецификациям уровня защиты С2. В то же время стоит отметить, что текущая вер
сия 4.0 ЗРЗ не имеет подобного сертификата, кроме того, сертифика
ции подвергался автономный вариант О С \Утс1о\У5 ОТ" \Уогкз1аНоп;
•развитая сетевая поддержка. О С ^тсЬ\У5 О Т имеет в своем составе развитые сетевые средства и позволяет осуществлять информацион ный обмен по протоколам ТСР/1Р, 1РХ/5РХ, ОТЙюш и Арр1еТа1к, а так же поддерживает маршрутизацию протоколов ТСР/1Р и 1РХ/5РХ. Компанией М ш гозоЛ разработаны средства, позволяющие осуще ствлять клиентам сети прозрачный доступ к ресурсам сетевых ОС ОТ1:\Уаге и ЗЫА, а также эмулировать сервер Ые1:\Уаге для клиентов одноименной сети; при этом централизованное административное уп равление и контроль за всей сетью сохраняются. Клиентам сети пред ставляется также возможность удаленного доступа к ресурсам серве ра АУтбо'мз О Т через глобальные сети по линиям связи 13БЫ, 1гаше ге1ау, Х.25 и асинхронным коммутируемым каналам. Обеспечивается также одновременное функционирование в сети архитектуры «клиентсервер» Щ шЗо^з О Т нескольких одноранговых подсетей "М псЬ луз 1ог "\Уогк§гоирз. Таким образом, \\йпс1о\У5 О Т позволяет организовывать гетерогенные сетевые конфигурации, объединяющие различные аппа ратные и программные платформы единой политикой безопасности, равными возможностями клиентов и централизованным администри рованием;
•поддержка нескольких аппаратных платформ и симметричная мульти процессорная обработка. ЧУшсЬлуз О Т Зегуег может работать как на 1п1е1-совместимых компьютерах с процессорами 386,486 и РепНиш, так
ина компьютерах со следующими типами ШЗС-процессоров: Ро\уегРС, М1Р5 К4000 и Б Е С А1рЬа. Возможность использования аппаратных
222 Компьютерная безопасность и практическое применение криптографии
платформ с несколькими процессорными элементами поднимает в ряде задач производительность \Ут<1от О Т на уровень компьютеров клас сов мини-ЭВМ и таш1гате. Совместно с поддержкой Р051Х-прило- жений указанная характеристика позволяет утверждать о переносимо сти \Утс1о\У5 ЫТ;
•приоритетная вытесняющая многозадачность и многопоточность. И с пользуемая в Ш тс Ь ^ з О Т система приоритетов позволяет наиболее оптимально распределить между задачами процессорное время, гаран тируя при этом своевременное выполнение критических участков кода и корректную обработку исключений. Разработанные особым образом приложения могут запускать во время своего выполнения несколько собственных потоков, распределяя выделенные приложению вычисли тельные ресурсы оптимальным образом;
•виртуальная память. \У1пбош5 ОТ, являясь многозадачной и много пользовательской оперативной системой, предоставляет надежные механизмы защиты ядра ОС от прикладных процессов и задач, реша емых пользователями друг с другом. Своппинг (з\уаррт§) на жесткий диск позволяет выделить активной задаче практически все доступные вычислительные ресурсы компьютера;
•поддержка нескольких файловых систем. Помимо возможности вы полнения приложений, написанных для других операционных систем (БОЗ, 16-разрядные приложения "\Ушс1о\у5, 16-разрядные текстовые приложения 0 3 / 2 , Р051Х-приложения), "\Утс1о\У5 О Т поддерживает несколько файловых систем: стандартную РАТ и собственную ОТТ5;
•многоцелевые функциональные возможности. Сервер У/тсЬшз О Т под держивает следующие типы услуг:
-файл-сервер;
-сервер печати;
-сервер приложений;
-сервер удаленного доступа;
-тИапе^-сервер;
-сервер архивирования.
Основная задача подсистемы безопасности ^ шсЬ чуз О Т состоит в от слеживании и управлении порядком доступа к тому или иному объекту, а также фиксации и контроле попыток несанкционированной эксплуата ции пользователями системных объектов (файлов, каталогов, разделяемых принтеров, баз данных реестра и т.д.). Подсистема безопасности хранит определенную информацию о каждом пользователе, группе пользователей и каждом защищенном объекте, а также идентифицирующую информацию
Защита локальной рабочей станции |
223 |
о каждом пользователе и каждой группе пользователей. На ее основе про веряются права пользователя на доступ к объекту, и, если таковые отсут ствуют, подсистема защиты отказывает ему в разрешении.
В целом подсистема безопасности О С \ У ш с 1о \ у з N 7 состоит из следую щих компонентов (рис. 3.3):
•процессы входа в систему (1о§оп-процессы), принимающие запросы на вход от пользователей. Они включают интерактивный (локальный) 1о§оп, показывающий окно для ввода пароля, а также удаленный 1о^оп, который позволяет получать доступ удаленным пользователям к про цессам сервера "\Утс1о\уз ИТ;
•компонент локальной авторизации (Ьоса1 Зесигйу АиЙюгку), который определяет, имеет ли пользователь право доступа к системе. Этот ком понент является центральным в подсистеме безопасности ^Ушс1о\у5
N 7 Он генерирует маркер доступа, управляет локальной политикой безопасности и предоставляет интерактивный сервис администратору. Локальная авторизация также управляет регистрацией событий и за писывает в журнал регистрации события аудита, генерируемые дис петчером доступа;
•менеджер управления счетами пользователей (ЗесигИу Ассоип1: Мапа§ег, ЗАМ ), который строит базу данных счетов пользователей. Эта база данных содержит информацию обо всех счетах пользователей и группах пользователей. Менеджер ЗАМ предоставляет сервис по их полномочиям, используемый компонентом локальной авторизации;
•диспетчер доступа. В его функции входит проверка права пользовате ля на доступ к объекту для выполнения затребованных им операций. Этот компонент реализует политику управления доступом и следит за выполнением требований по регистрации, определенных подсистемой локальной авторизации. Он предоставляет сервисное обслуживание как в пользовательском режиме, так и в режиме ядра при попытках пользователей и процессов получить доступ к объекту. Этот компонент также генерирует соответствующие сообщения регистрации.
Организация управления доступом
В основе этой подсистемы лежит избирательная политика управления доступом, в соответствии с которой регламентируется доступ субъектов к объектам. Защищенные объекты М^пбомсз N 7 подразделяются на:
•файлы и каталоги на И7Р5-разделах;
•объекты пользователя (окна, ресурсы приложений и т.д.);
224Компьютерная безопасность и практическое применение криптографии
•объекты ядра ОС;
•объекты реестра;
•частные (рпчаЪе) объекты. Частные объекты создаются и обрабатыва
ются прикладными программами (С У Б Д , электронными таблицами и т.д.) и служат для реализации в прикладных программах собствен ного механизма разграничения доступа. Частными объектами являют ся, например, защищенные поля таблиц М кгозоК Ассезз.
С каждым объектом системы связаны возможные выполняемые опера ции и типы доступа к экземплярам объекта, а также атрибуты безопаснос ти объекта.
Атрибуты безопасности каждого защищаемого объекта задаются в спе циальной структуре - так называемом дескрипторе безопасности (зесигку скзспр{;ог). Он связан с объектом и содержит информацию о владельце и группе владельцев объекта, а также списки управления доступом к дан ному объекту (Ассезз Соп1:го1 1лз1;, АСЬ).
Дескриптор безопасности включает в себя всю информацию о владель це объекта и правах доступа пользователей к объекту. Он может содержать
идентификатор безопасности (ЕГО, см. ниже) владельца объекта, иденти фикатор безопасности его первичной группы и список управления досту пом (АСБ), разъясняющий права различных пользователей и групп пользо вателей по доступу к данному защищаемому объекту.
Список управления доступом к объекту состоит из элементов управле ния доступом (Ассезз СопЫо1 ЕШгу, АСЕ). Каждый защищенный объект может иметь два списка управления доступом: пользовательский и сис темный.
Пользовательский список управляется владельцем объекта и определя ет права доступа конкретных пользователей и групп к объекту. Когда этот список имеется у объекта, но не содержит ни одного элемента управления доступом, считается, что доступ к объекту запрещен. Однако если изби рательный список у объекта отсутствует, это означает отсутствие защи ты у объекта (доступ к объекту разрешен в любой форме).
С объектом может быть также связан и системный список управления доступом, контролируемый исключительно администратором. Системный список управления доступом предназначен для указания на необходимость регистрации любых попыток получения пользователями доступа к защи щаемому объекту.
Администратор или владелец объекта может назначать полномочия, раз решающие или запрещающие определенным пользователям и группам по лучать требуемый тип доступа к конкретным объектам.
Защита локальной рабочей станции |
225 |
В \\йпс1ошз К Т пользователи и группы идентифицируются так называе мыми идентификаторами безопасности (зесигйу ИепНЯегз, 5 Ш ). Иденти фикатор безопасности - это структура переменной длины, уникально иден тифицирующая пользователя или группу. Эти идентификаторы хранятся в базе данных системы защиты, и любое приложение может их использо вать посредством функций \\йп32 АР1. Идентификаторы безопасности ис пользуются для указания:
•владельца объекта и группы в дескрипторе защиты объекта;
•получателя разрешений на доступ в элементах (А С Е ) списка управле ния доступом (А С Ь ) к объекту;
•пользователя и всех групп, в которые ои входит, в так называемом
маркере доступа (ассезз 1юкеп) процесса (пользователя). (Описание маркера доступа см. ниже.)
Для выполнения некоторых операций пользователю могут быть присво ены специальные привилегии. Содержащаяся в маркере доступа дополни тельная информация о привилегиях пользователя (процесса) используется для усиления избирательного (реализованного на основе АСЕ) контроля доступа. Диспетчер доступа использует значения привилегий процессов для управления их доступом к системным ресурсам, таким как системное время, признак активизации отладочного режима, признак принадлежно сти к ядру системы защиты (йгизЪеё сотриЪег базе) и т.п.
При входе в систему каждый пользователь проходит процедуры иден тификации и аутентификации. В случае успешного прохождения проце дуры аутентификации каждому пользователю присваивается специальная метка - маркер доступа, содержащий идентификатор этого пользователя, идентификаторы всех групп, в которые входит данный пользователь, а так же иную информацию.
Поскольку ОС ^Ушйоауз О Т поддерживает работу в режиме «клиентсервер», то в архитектуре ее подсистемы защиты имеется два класса субъ ектов:
•простой субъект. Это процесс, которому присвоен контекст безопасно сти при входе соответствующего пользователя в систему по 1о§оп. Та кой процесс не реализует функции защищенного сервера, который может иметь других субъектов в качестве своих клиентов;
•серверный субъект. Это процесс, запущенный как защищенный сервер (как подсистема \Д/1п32) и обслуживающий других субъектов в каче стве клиентов. В связи с этим серверный субъект обычно имеет кон текст безопасности того клиента, от имени которого он действует.
8 - 3
226 Компьютерная безопасность и практическое применение криптографии
Рис. 3.3. Компоненты подсистемы безопасности
^УшсЬ ауз И Т позволяет одному потоку получать атрибуты безопасности другого процесса при помощи механизма представления (трегзопайоп). Например, рабочий поток сервера обычно представляет процесс клиента (использует маркер доступа клиента) для получения разрешений на дос туп к объектам, к которым начальный (управляющий) поток сервера дос тупа не имеет.
Хотя ОС этого типа имеет достаточно развитую систему обеспечения информационной безопасности, все равно существуют потенциальные уяз вимости, приводящие к успешному проведению атак на Ш тбодуз ИТ.
Имеет смысл в рамках документированных возможностей системы про вести детальный анализ стратегий нападения, которые мог бы реализовать
Защита локальной рабочей станции |
22 7 |
потенциальный нарушитель, являющийся к тому же зарегистрированным пользователем в ОС. В этом случае злоумышленник в состоянии запустить любой процесс, заставить стартовать любой драйвер или редактировать базу реестра только на правах непривилегированного пользователя систе мы 'У'/тбо^з N4".
Для определения потенциальных возможностей нарушителя рассмот рим механизмы \Ут32 АР1 для 'М псЬ хуз ИТ, позволяющие реализовать НСД. Хотя приложения в О С \Утс1оу/5 ЫТ имеют свое виртуальное про странство памяти, доступ в которое ограничен со стороны других приклад ных процессов, тем не менее в существующей версии \^1п32 АР1 имеется целый ряд механизмов* позволяющих одному процессу получить доступ
ввиртуальную память, используемую другим процессом. Итак, к этим возможностям относятся:
•наличие функций, позволяющих получать доступ на чтение и запись в па мять другого процесса (УУгйюРгосеззМешогу и КеабРгосеззМетогу);
•наличие функций, получающих контекст выполнения какого-либо пользовательского процесса (Се1;Т11геас1Соп1;ех1: и Зе1;ТЪгеас1Соп1;ех1;), что позволяет одному процессу получить значения системных регис тров другого, в том числе и регистра указателя стека; подобная осо бенность может позволить модифицировать стек процесса другим процессом;
•наличие механизма ловушек (Ьоок), при помощи которых один про цесс может реализовать перехват сообщений другого процесса;
•существует также способ запуска внешней процедуры в адресном про странстве другого процесса и использование процедуры удаленного за пуска потока (Сгеа1:еК.ето^:еТЬгеаб) с последующей модификацией
области стека и загрузки необходимой Б IX ;
•программа нарушителя обладает способностью передавать в драйвер режима ядра команды вызова процедур. Драйвер верхнего уровня, как правило, выполняется в контексте вызываемого процесса, поэто му прикладному процессу для работы в режиме ядра достаточно пере дать вызываемому драйверу просто адрес вызываемой процедуры. Та ким образом обеспечивается доступ из прикладного процесса ко всем ресурсам системы;
•особенностью ОС Ш псЬ'ууз ЫТ является отсутствие механизмов предот вращения выхода за пределы локального стека потока, что может при вести к проведению атак типа «переполнение буфера» (ЬиТег оуегйо^).
Использование тех или иных документированных возможностей АР1
\Утбо\У5 И Т для «взлома» штатных средств защиты данной О С зависит от
228 Компьютерная безопасность и практическое применение криптографии
уровня привилегий, полученных пользовательским процессом при регис
трации. Можно выделить следующие группы привилегий (по убыванию
уровня):
•права администратора, включающие полный контроль операционной системы;
•право перезапуска операционной системы и совокупность прав для установки драйвера режима ядра;
•право редактирования базы реестра;
•право запуска прикладной программы.
На сегодняшний день для пользователей, склонных к неправомерным
поступкам, существует ряд потенциальных возможностей получать допол
нительные привилегии, например:
•программа нарушителя обнаруживает адрес функции ДУт32 АР1 ОрепРгосезз, изменяет ее код так, чтобы результат выполнения был все гда положительным. Затем с помощью функции ОеЪи&АсИуеРгосезз один из системных процессов, работающих от имени ОС, в режиме от ладки создает в его рамках поток, который вносит текущего поль зователя в группу АбпптзШЪог;
•использование ошибки в процедуре Ые1:АббА1:от (Щозкгп1.ехе) или функции 4346 (ш1п32к.зуз). Указанные ошибки позволяют изменить переменные или код ядра ОС и получить рядовому пользователю пра ва администратора системы;
•перехват трафика внутри сети и использование того факта, что после аутентификации пользователя в домене \Ушс1о\у5 ЫТ в пакете ЫеС1ю§оп5ат1ю^оп, передаваемом контроллером домена компьютеру, све дения о группах, членом которых является пользователь, передаются в открытом виде. Установив в сети ргоху-сервер, злоумышленник мо жет заменить 5ГО некоторой глобальной группы на ЗГО группы ЭотатАбпппз, после чего на локальном компьютере получит права чле на группы Э о т а т А б т т з .
Таким образом, потенциальный нарушитель может получать практичес ки неограниченные полномочия в ОС. Это позволит ему запускать не толь ко прикладные программы в контексте лю бого зарегистрированного пользователя системы, реализующие вышеперечисленные стратегии исполь зования особенностей \Уш32 АР1, но также устанавливать фильтр драйве ра хранения ключей или фильтр файловой системы. Такие фильтры позво ляют перехватывать или ключи, или открытую информацию.
Защита локальной рабочей станции |
229 |
Например, получая привилегии редактирования базы реестра можно включить нежелательную динамически подключаемую библиотеку (Б И .) в список Арр1п11:_БЬЬз. Он содержит множество БЬИ, которые отобража ются при старте О С на адресное пространство каждого процесса, использу ющего библиотеку 11зег32.БЬЬ, то есть фактически для каждой запускаемой программы, представляющей собой СШ -приложение.
Кроме документированных возможностей, предоставляемых нарушите лю интерфейсом \\йп32 АР1, существует целый ряд уязвимостей, которые подразделяются на следующие категории:
• вызванные ошибками или недоработками в ПО \\йпс1о\У5 ИТ;
•вызванные особенностью функционирования \Утс1о'^5 N7;
•вызванные некорректной настройкой \Утс1ош8 N7.
Таким образом, кроме корректной настройки О С 'УУтсЬ^з N 7 и исполь зования З е т с е Раск для устранения ошибок при работе данной ОС, необ ходимо применение дополнительных средств защиты.
3.2.5. Аудит
Аудит связан с действиями (событиями), так или иначе затрагивающими безопасность системы. К их числу относятся:
•вход в систему (успешный или нет);
•выход из системы;
•обращение к удаленной системе;
•операции с файлами (открыть, закрыть, переименовать, удалить);
•смена привилегий или иных атрибутов безопасности (режима досту па, уровня благонадежности пользователя и т.п.).
Можно назвать и другие события, например смену набора регистрируе мых действий. Полный перечень событий, потенциально подлежащих ре гистрации, зависит от избранной политики безопасности и от общей спе цифики системы.
Если фиксировать все совершаемые операции, объем регистрационной информации, скорее всего, будет расти слишком быстро, а эффективно про анализировать ее будет невозможно. Д ля обеспечения гибкости построения системы аудита должно быть предусмотрено наличие средств выборочно го протоколирования, способных «следить» не только за пользователями (особенно за подозрительными), но и за совершаемыми событиями.
С помощью этого метода можно держать под контролем пользователей, имеющих специфическую репутацию, и реконструировать прошедшие
230 Компьютерная безопасность и практическое применение криптографии
события. «Слеж ка» важна, в первую очередь, как профилактическое сред ство. М ожно надеяться, что многие злоумышленники воздержатся от нарушений режима безопасности, поскольку знают, что их действия фиксируются. Реконструкция событий позволяет проанализировать слу чаи нарушений, понять, почему они произошли, оценить размеры ущер ба и принять меры по недопущению подобных нарушений в будущем.
При протоколировании события необходимо, по крайней мере, записы вать информацию такого рода:
•дату и время события;
•уникальный идентификатор;
•отмечать пользователя, являющегося инициатором действия;
•тип события;
•результат действия (успех или неудача);
•источник запроса (например, имя терминала);
•имена затронутых объектов (например, открываемых или удаляемых файлов).
•описание изменений, внесенных в базы данных защиты (например, новая метка безопасности объекта);
•метки безопасности субъектов и объектов события.
При такой организации система аудита может фиксировать все события, связанные с функционированием прикладного и системного ПО. Анализ ре
ализации подсистем аудита в современных ОС |
|
|
показывает, что ядро системы (являющееся до |
Интерфейс системных |
|
веренным) взаимодействует с прикладным ПО |
вызовов. На данном |
|
уровне и располагается |
||
(работа которого подлежит аудиту) через ин |
||
система аудита |
||
терфейс обращений к данному сервису ОС |
|
|
и является наиболее удобным местом для осу |
|
|
ществления мониторинга и аудита (рис. 3.4). |
|
|
Ядро ОС при обращении к нему прикладного |
|
|
ПО фиксирует события, подлежащие аудиту, |
|
|
а подсистема аудита заносит их в журнал собы |
|
|
тий, хранящийся на жестком диске. |
|
|
Генерировать события аудита может и при |
|
|
кладное ПО, но, в отличие от ядра ОС, дан |
|
|
ные действия не заносятся напрямую в жур |
|
|
нал событий, а передаются в ядро системы, |
|
|
которое отправляет их в буфер (отведенный |
Рис. 3.4. Местоположение |
|
под запись событий) и впоследствии зано |
подсистемы аудита |
|
сит в журнал событий. Примером событий, |
в архитектуре ОС |