Операционная система Windows NT была разработана так, чтобы соответствовать уровню С2 требований безопасности Министерства обороны США – Оранжевой книги. Этот стандарт требует наличия у операционных систем определенных свойств, позволяющих относить данные системы к достаточно надежным для выполнения военных задач определенного рода. Хотя при разработке операционной системы Windows 2000 не ставилось особой цели соответствия требованиям уровня С2, она унаследовала множество свойств безопасности от NT, включая следующие.
1. Безопасная регистрация в системе с мерами предосторожности против попыток применения фальшивой программы регистрации.
2. Дискреционное управление доступом.
3. Управление привилегированным доступом.
4. Защита адресного пространства для каждого процесса.
5. Обнуление страниц перед выделением их процессу.
6. Аудит безопасности.
Рассмотрим кратко эти аспекты (ни один из них не встречается в Windows 98). Безопасная регистрация означает, что системный администратор может потребовать от всех пользователей наличия пароля для входа в систему. Программа, имитирующая регистрацию в системе, использовалась ранее на некоторых системах злоумышленниками с целью выведать пароль пользователя. Такая программа запускалась в надежде, что пользователь сядет за компьютер и введет свое имя и пароль. Имя и пароль записывались на диск, после чего пользователю сообщалось, что в регистрации ему отказано. В операционной системе Windows 2000 подобный обман пользователя невозможен, так как пользователь для входа в систему должен нажать комбинацию клавиш CTRL+ALT+DEL. Эта комбинация клавиш всегда перехватывается драйвером клавиатуры, который вызывает при этом настоящую программу регистрации. Пользовательский процесс не может сам перехватить эту комбинацию клавиш или отменить ее обработку драйвером.
Дискреционное управление доступом позволяет владельцу файла или другого объекта указать, кто может пользоваться объектом и каким образом.
Средства управления привилегированным доступом позволяют системному администратору (суперпользователю) получать доступ к объекту, несмотря на установленные его владельцем разрешения доступа.
Под защитой адресного пространства имеется в виду лишь то, что у каждого процесса есть собственное защищенное виртуальное адресное пространство, недоступное для любого неавторизованного процесса.
Обнуление страниц перед выделением их процессу означает, что при увеличении стека выделяемые для него страницы заранее обнуляются, так что процесс не может обнаружить в них информации, помещенной предыдущим владельцем страницы памяти.
Аудит безопасности следует понимать как регистрацию системой в журнале определенных событий, относящихся к безопасности. Впоследствии этот журнал может просматривать системный администратор.
Рассмотрим основные понятия безопасности операционной системы Windows 2000.
У каждого пользователя (и группы) операционной системы Windows 2000 есть идентификатор безопасности SID (Security IDentifier), по которому операционная система отличает его от других пользователей. Идентификаторы безопасности представляют собой двоичные числа с коротким заголовком, за которым следует длинный случайный компонент. Каждый SID должен быть уникален в пределах всей планеты. Когда пользователь запускает процесс, этот процесс и его потоки работают под идентификатором пользователя. Большая часть системы безопасности спроектирована так, чтобы гарантировать предоставление доступа к каждому объекту только потокам с авторизованными идентификаторами безопасности.
У каждого процесса есть маркер доступа, в котором указывается SID и другие свойства. Как правило, он назначается при регистрации в системе процедурой winlogon. Структура маркера доступа показана на рис. 5.
Рис. 5. Структура маркера доступа
Заголовок маркера содержит некоторую административную информацию. По значению поля срока действия можно определить, когда маркер перестанет быть действительным, но в настоящее время это поле не используется. Поле Groups (группы) указывает группы, к которым принадлежит процесс. Поле DACL (DACL, Discretionary Access Control List — список разграничительного контроля доступа) представляет собой список управления доступом, назначаемый объектам, созданным процессом, если не определены другие списки ACL. Идентификатор безопасности пользователя указывает пользователя, владеющего процессом. Ограниченные идентификаторы SID позволяют ненадежным процессам принимать участие в заданиях вместе с надежными процессами, но с меньшими полномочиями и меньшими возможностями причинения ущерба.
Наконец, перечисленные в маркере привилегии (если они перечислены) дают процессу особые полномочия, такие как право выключать компьютер или получать доступ к файлам, к которым в противном случае в этом доступе процессу было бы отказано. Привилегии позволяют разбить полномочия системного администратора на отдельные права, которые могут предоставляться процессам по отдельности. Таким образом, пользователю может быть предоставлена часть полномочий суперпользователя, но не все его полномочия. Итак, маркер доступа содержит информацию о том, кто владеет процессом и какие умолчания и полномочия ассоциированы с ним.
Когда пользователь регистрируется в системе, процесс winlogon назначает маркер доступа начальному процессу. Последующие процессы, как правило, наследуют этот маркер. Маркер доступа процесса изначально применяется ко всем потокам процесса. Однако поток во время исполнения может получить другой маркер доступа. В этом случае маркер доступа потока перекрывает маркер доступа процесса. В частности, клиентский поток может передать свой маркер доступа серверному потоку, чтобы сервер мог получить доступ к защищенным файлам и другим объектам клиента. Такой механизм называется перевоплощением.
Другим основным понятием является дескриптор защиты. У каждого объекта есть ассоциированный с ним дескриптор защиты, содержащий список пользователей и групп, имеющих доступ к данному объекту. Дескриптор защиты состоит из заголовка, за которым следует список DACL с одним или несколькими элементами АСЕ (Access Control Entry — элемент списка контроля доступа ACL). Два основных типа элементов списка — это разрешение и запрет доступа. Разрешающий элемент содержит SID пользователя или группы и битовый массив, определяющий набор операций, которые процессы с данным идентификатором SID могут выполнять с определенным объектом. Запрещающий элемент работает анало-гично, но совпадение идентификаторов означает, что обращающийся процесс не может выполнять перечисленные операции. Например,
у Иды есть файл, дескриптор защиты которого указывает, что у всех пользователей есть доступ для чтения этого файла, Элвису запрещен всякий доступ, а у самой Иды есть все виды доступа. Этот простой пример показан на рис. 6. Идентификатор защиты Everyone (все) соответствует множеству всех пользователей, но его действие может перекрываться любым элементом списка, в котором явно указано нечто иное.
Рис. 6. Пример дескриптора защиты для файла
Кроме списка DACL, у дескриптора защиты есть также список SACL (System Access Control List — системный список контроля доступа), который похож на DACL, только вместо пользователей и групп, имеющих доступ к объекту, в нем перечисляются операции с этим объектом, регистрируемые в специальном журнале. На рис. 6 все действия, которые Мэрилин выполнит с этим файлом, будут регистрироваться в журнале.
В операционной системе Windows 2000 также предоставляются дополнительные возможности аудита для регистрации доступа к объектам.
Реализация защиты
Защита в автономной системе Windows 2000 реализуется при помощи нескольких компонентов, большую часть которых мы уже рассмотрели.
Регистрацией в системе управляет программа winlogon, а аутентификацией занимаются lsass и msgina.dll. Результатом успешной регистрации в системе является новая оболочка с ассоциированным с ней маркером доступа. Этот процесс использует в реестре ключи SECURITY и SAM. Первый ключ определяет общую политику безопасности, а второй ключ содержит информацию о защите для индивидуальных пользователей.
Как только пользователь регистрируется в системе, выполняется операция защиты при открытии объекта. Для каждого вызова OpenХХХ требуется имя открываемого объекта и набор прав доступа к нему. Во время обработки процедуры открытия объекта менеджер безопасности проверяет наличие у вызывающего процесса соответствующих прав доступа. Для этого он просматривает все маркеры доступа вызывающего процесса, а также список DACL, ассоциированный с объектом. Он просматривает по очереди элементы списка ACL. Как только он находит запись, соответствующую идентификатору SID вызывающего процесса или одной из его групп, поиск прав доступа считается законченным. Если вызывающий процесс обладает необходимыми правами, объект открывается, в противном случае в открытии объекта отказывается.
Помимо разрешающих записей, списки DACL могут также содержать запрещающие записи. Поскольку менеджер безопасности прекращает поиск, наткнувшись на первую запись с указанным идентификатором, запрещающие записи помещаются в начало списка DACL, чтобы пользователь, которому строго запрещен доступ к какому-либо объекту, не смог получить его как член какой-либо группы, которой этот доступ предоставлен.
После того как объект открыт, дескриптор объекта возвращается вызывающему процессу. При последующих обращениях проверяется только, входит ли данная операция в число операций, разрешенных в момент открытия объекта, чтобы, например, не допустить записи в файл, открытый для чтения.
Защита в Unix-системах
Основные положения
В настоящее время операционная система UNIX (особенно ее модификации семейства Linux) широко используется в различных областях, в том числе в организациях, где безопасность информации стоит на одном из первых мест.
Средства защиты UNIX включают как базовые механизмы, так и расширения средств безопасности. Одним из самых важных моментов обеспечения безопасности UNIX является ее правильная конфигурация и настройка. Очевидно, чтобы правильно настроить систему, администратор должен четко представлять все требования, которые должны быть описаны в априорно заданной политике безопасности. Следующим аспектом обеспечения безопасности является выявление некорректно работающих программ, которые при некоторых нештатных ситуациях выполняют ряд дополнительных незапланированных действий и могут привести к нарушению безопасности.
В надежной системе административные задачи распадаются на несколько логических ролей. Каждая роль ответственна за сопровождение одного аспекта системы. Идея о специфических административных ролях и соответствующих им задачах и обязанностях является основной для построения надежной защиты в UNIX-системе. В UNIX любая логическая роль может быть назначена одному и тому же пользователю или различным членам некоторой административной группы пользователей. С каждой расширенной ролью связана своя авторизация. Эта связь позволяет администратору вести полную регистрацию административных действий.
Существуют, например, следующие администраторы:
администратор системных утилит;
администратор системных команд;
администратор системных файлов;
администратор учета пользователей и терминалов;
администратор службы аутентификации;
администратор почты;
администратор сети;
администратор печати;
администратор аудита и др.
При введении дополнительных компонент системы (СУБД, различных видов сервиса и т.д.) в системе появляются соответствующие администраторы.
Все администраторы вместе выполняют функции суперпользователя. При этом, используя предлагаемую политику безопасности, суперпользователь может вообще отсутствовать в системе (пароль суперпользователя вводится определенными лицами, и кроме них его никто не знает). Такая схема позволяет четко разделить обязанности и ответственность между людьми, которые администрируют и поддерживают работу системы.
Статьи к прочтению:
Решение проблемы \
Похожие статьи:
-
Принцип обеспечения безопасности вычислений
Обеспечение безопасности при выполнении вычислений является желаемым свойством для любой многопользовательской системы. Правила безопасности определяют…
-
Классы безопасности компьютерных систем
“Оранжевая книга” предусматривает четыре группы критериев, которые соответствуют различной степени защищенности: от минимальной (группа D) до формально…