Главная

Категории:

ДомЗдоровьеЗоологияИнформатикаИскусствоИскусствоКомпьютерыКулинарияМаркетингМатематикаМедицинаМенеджментОбразованиеПедагогикаПитомцыПрограммированиеПроизводствоПромышленностьПсихологияРазноеРелигияСоциологияСпортСтатистикаТранспортФизикаФилософияФинансыХимияХоббиЭкологияЭкономикаЭлектроника






Развитие современных операционных систем


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

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

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

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

Другое преимущество модели клиент-сервер заключается в ее простой адаптации к использованию в распределенных системах. Если клиент общается с сервером, посылая ему сообщения, клиенту не нужно знать, обрабатывается ли его сообщение локально на его собственной машине, или оно было послано по сети серверу на удаленной машине. С точки зрения клиента происходит одно и то же в обоих случаях: запрос был послан и на него получен ответ.

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

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

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

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

30 Безопасность и администрирование. Взлом. Защитные механизмы ОС.

Кратко остановимся на основных механизмах защиты, встроенных в со­временные универсальные ОС. Сделаем это применительно к возможнос­ти реализации ими принятой нами для рассмотрения концепции защиты конфиденциальной информации.
Основные защитные механизмы ОС семейства UNIX
Защита ОС семейства UNIX в общем случае базируется на трех основ­ных механизмах:
« идентификации и аутентификация пользователя при входе в систему;
» разграничении прав доступа к файловой системе, в основе которого лежит реализация дискреционной модели доступа; аудит, то есть регистрация событий.
При этом отметим, что для различных клонов ОС семейства UNIX воз­можности механизмов защиты могут незначительно различаться, однако будем рассматривать ОС UNIX в общем случае, без учета некоторых
незначительных особенностей отдельных ОС этого семейства. Построение файловой системы и разграничение доступа к файловым
объектам имеет особенности, присущие данному семейству ОС. Рассмот­рим кратко эти особенности. Все дисковые накопители (тома) объеди­няются в единую ВИРТУАЛЬНУЮ ФАЙЛОВУЮ СИСТЕМУ путем опе­рации монтирования тома. При этом содержимое тома проецируется на выбранный каталог файловой системы. Элементами файловой системы являются также все устройства, подключаемые к защищаемому компью­теру (монтируемые к файловой системе). Поэтому разграничение досту­па к ним осуществляется через файловою систему.
Каждый файловый объект имеет индексный дескриптор (описатель), в
котором среди прочего хранится информация о разграничении доступа к данному файловому объекту. Права доступа делятся на три категории: доступ для владельца, доступ для группы и доступ для остальных пользо­вателей. В каждой категории определяются права на чтение, запись и исполнение (в случае каталога — просмотр).
Пользователь имеет уникальные символьный идентификатор (имя) и числовой идентификатор (UID). Символьный идентификатор предъявля­ется пользователем при входе в систему, числовой используется опера­ционной системой для определения прав пользователя в системе (доступ
к файлам и т.д.).
Принципиальные недостатки защитных механизмов ОС семейства UNIX
Рассмотрим в общем случае недостатки реализации системы защиты ОС семейства UNIX в части невыполнения требований к защите конфиден­циальной информации. При этом прежде всего рассмотрим принципи­альные недостатки защиты, напрямую связанные с возможностью НСД
к информации.
Для начала отметим, что в ОС семейства вследствие реализуемой
ею концепции администрирования (не централизованная), невозможно обеспечить замкнутость (или целостность) программной среды. Это связа­но с невозможностью установки атрибута «исполнение» на каталог (для каталога данный атрибут ограничивает возможность «обзора» содержи­мого каталога). Поэтому при разграничении администратором доступа пользователей к каталогам, пользователь, как «владелец» создаваемого им
файла, может занести в свой каталог исполняемый файл и, как его «вла­делец», установить на файл атрибут «исполнение», после чего запустить записанную им программу. Эта проблема непосредственно связана с ре­ализуемой в ОС концепцией защиты информации.
Не в полном объеме реализуется дискреционная модель доступа, в частности не могут разграничиваться права доступа для пользователя «root» (UID = 0). Т.е. данный субъект доступа исключается из схемы управления доступом к ресурсам. Соответственно все запускаемые им процессы имеют неограничен­ный доступ к защищаемым ресурсам. Как мы увидим позднее, с этим недо­статком системы защиты связано множество атак, в частности:
* несанкционированное получение прав root;
» запуск с правами root собственного исполняемого файла (локально
либо удаленно внедренного). При этом несанкционированная про­грамма получает полный доступ к защищаемым ресурсам и т.д. Кроме того, в ОС семейства UNIX невозможно встроенными средствами гарантированно удалять остаточную информацию. Для этого в системе аб­солютно отсутствуют соответствующие механизмы.
Необходимо также отметить, что большинство ОС данного семейства не обладают возможностью контроля целостности файловой системы, то есть не содержат соответствующих встроенных средств. В лучшем случае дополни­тельными утилитами может быть реализован контроль конфигурационных файлов ОС по расписанию, в то время, как важнейшей возможностью дан­ного механизма можно считать контроль целостности программ (приложе­ний) перед их запуском, контроль файлов данных пользователя и др.
Что касается регистрации (аудита), то в ОС семейства Unix не обеспечива­ется регистрация выдачи документов на «твердую копию», а также некото­рые другие требования к регистрации событий.
Если же трактовать требования к управлению доступом в общем случае, то при защите компьютера в составе ЛВС, необходимо управление до­ступом к хостам (распределенный пакетный фильтр). Однако встроенными средствами зашиты некоторых ОС семейства UNIX управление доступом к хостам не реализуется.
Из приведенного анализа видно, что многие механизмы, необходимые с точки зрения выполнения формализованных требований, большинством ОС семейства UNIX не реализуется в принципе, либо реализуется лишь частично.
Основные защитные механизмы ОС семейства Windows(NT/2000/XP)
Теперь кратко остановимся на основных механизмах защиты, реализован­ных в ОС семейства Windows, и проведем анализ защищенности ОС се­мейства Windows (NT/2000). Отметим, что здесь ряд объектов доступа (в частности, устройства, реестр ОС и т.д.) не являются объектами файловой системы. Поэтому возникает вопрос, как следует трактовать требование «Система защиты должна контролировать доступ наименованных субъектов (пользователей) к наименованным объектам (файлам, программам, томам и То есть, не ясно, являются ли объектами
доступа, к которым, следуя формальным требованиям, необходимо разгра­ничивать доступ пользователей, например, реестр ОС и т.д.
В отличие от семейства ОС UNIX, все задачи разграничительной
политики доступа к ресурсам решаются средствами управления доступом к объектам файловой системы, доступ в данных ОС разграничивается собственным механизмом для каждого ресурса. Другими словами, при рассмотрении механизмов защиты ОС Windows встает задача определе­ния и задания требований к полноте разграничений (это определяется тем, что считать объектом доступа).
Также, как и для семейства ОС UNIX, здесь основными механизмами
защиты являются:
» идентификация и аутентификация пользователя при входе в систему;
» разграничение прав доступа к ресурсам, в основе которого лежит реализация дискреционной модели доступа (отдельно к объектам файловой системы, к устройствам, к реестру ОС, к принтерам и др.);
» аудит, то есть регистрация событий.
Здесь явно выделяются (в лучшую сторону) возможности разграничений прав доступа к файловым объектам (для NTFS) — существенно расширены ат­рибуты доступа, устанавливаемые на различные иерархические объекты фай­ловой системы (логические диски, каталоги, файлы). В частности, атрибут
«исполнение» может устанавливаться и на каталог, тогда он наследуется
соответствующими файлами (в отличие от ОС семейства UNIX).
При этом существенно ограничены возможности управления доступом к другим защищаемым ресурсам, в частности, к устройствам ввода. Напри­мер, здесь отсутствует атрибут «исполнение», т.е. невозможно запретить запуск несанкционированной программы с устройств ввода.

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

В обязанности системного администратора обычно входит:

• управление пользователями: ведение учетных записей пользователей и групп, квотирование дискового пространства;

• управление процессами: перераспределение ресурсов с целью повышения производительности системы;

• установка и модернизация программного обеспечения;

• подключение и конфигурирование аппаратных устройств;

• настройка системы: управление общесистемными сервисами, настройка сетевых служб с точки зрения безопасности и производительности, конфигурирование ядра;

• резервное копирование и восстановление данных.

 

 


 

 



Последнее изменение этой страницы: 2016-06-09

headinsider.info. Все права принадлежат авторам данных материалов.