Безопасность в Windows 2000
Структура операционной системы Windows 2000. Идентификаторы безопасности SID. Понятие дескриптора защиты для файла, его состав и управление. Основные функции Win32 API для управления защитой. Работа менеджера КЭШа в Windows 2000: сущность и свойства.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | реферат |
Язык | русский |
Дата добавления | 05.02.2009 |
Размер файла | 753,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Безопасность в Windows 2000
Познакомившись с шифрованием в файловой системе, рассмотрим теперь систему безопасности в Windows 2000 в целом. Операционная система NT была разработана так, чтобы соответствовать уровню С2 требований безопасности Министерства обороны США (DoD 5200.28-STD), Оранжевой книги. Этот стандарт требует наличия у операционных систем определенных свойств, позволяющих относить данные системы к достаточно надежным для выполнения военных задач определенного рода. Хотя при разработке операционной системы Windows 2000 не ставилось особой цели соответствия требованиям уровня С2, она унаследовала множество свойств безопасности от NT, включая следующие:
1. Безопасная регистрация в системе с мерами предосторожности против попыток применения фальшивой программы регистрации.
2. Дискреционное управление доступом.
3. Управление привилегированным доступом.
4. Защита адресного пространства для каждого процесса.
5. Обнуление страниц перед выделением их процессу.
6. Аудитбезопасности. Рассмотрим кратко эти аспекты (ни один из них не встречается в Windows 98).
Безопасная регистрация означает, что системный администратор может потребовать ото всех пользователей наличия пароля для входа в систему. Программа, имитирующая регистрацию в системе, использовалась ранее на некоторых системах злоумышленниками с целью выведать пароль пользователя. Такая программа запускалась в надежде, что пользователь сядет за компьютер и введет свое имя и пароль. Имя и пароль записывались на диск, после чего пользователю сообщалось, что в регистрации ему отказано. В операционной системе Windows 2000 подобный обман пользователя невозможен, так как пользователь для входа в систему должен нажать комбинацию клавиш CTRL+ALT+DEL. Эта комбинация клавиш всегда перехватывается драйвером клавиатуры, который вызывает при этом настоящую программу регистрации. Пользовательский процесс не может сам перехватить эту комбинацию клавиш или отменить ее обработку драйвером.
Дискреционное управление доступом позволяет владельцу файла или другого объекта указать, кто может пользоваться объектом и каким образом. Средства управления привилегированным доступом позволяют системному администратору получать доступ к объекту, несмотря на установленные его владельцем разрешения доступа. Под защитой адресного пространства имеется в виду лишь то, что у каждого процесса есть собственное защищенное виртуальное адресное пространство, недоступное для любого неавторизованного процесса. Следующий пункт означает, что при увеличении стека выделяемые для него страницы заранее обнуляются, так что процесс не может обнаружить в них информации, помещенной предыдущим владельцем страницы памяти (страницы подаются процессам из списка обнуленных страниц, показанного на рис. 11.14). Наконец, аудит безопасности следует понимать как регистрацию системой в журнале определенных событий, относящихся к безопасности. Впоследствии этот журнал может просматривать системный администратор.
Основные понятия
У каждого пользователя (и группы) операционной системы Windows 2000 есть идентификатор безопасности SID (Security IDentifier), по которому операционная система отличает его от других пользователей. Идентификаторы безопасности представляют собой двоичные числа с коротким заголовком, за которым следует длинный случайный компонент. Каждый SID должен быть уникален в пределах всей планеты. Когда пользователь запускает процесс, этот процесс и его потоки работают под идентификатором пользователя. Большая часть системы безопасности спроектирована так, чтобы гарантировать предоставление доступа к каждому объекту только потокам с авторизованными идентификаторами безопасности.
У каждого процесса есть маркер доступа, в котором указывается SID и другие свойства. Как правило, он назначается при регистрации в системе процедурой winlogon. Структура маркера доступа показана на рис. 11.24. Чтобы получить эту информацию, процесс должен вызвать функцию GetTokenInformation, так как она может измениться со временем. Заголовок маркера содержит некоторую административную информацию. По значению поля срока действия можно определить, когда маркер перестанет быть действительным, но в настоящее время это поле не используется. Поле Groups (группы) указывает группы, к которым принадлежит процесс. Это поле необходимо для соответствия требованиям стандарта POSIX. Поле Default DACL (DACL по умолчанию, Discretionary Access Control List -список разграничительного контроля доступа) представляет собой список управления доступом, назначаемый объектам, созданным процессом, если не определены другие списки ACL. Идентификатор безопасности пользователя указывает пользователя, владеющего процессом. Ограниченные идентификаторы SID позволяют ненадежным процессам принимать участие в заданиях вместе с надежными процессами, но с меньшими полномочиями и меньшими возможностями причинения ущерба.
Рис. 11.24. Структура маркера доступа
Наконец, перечисленные в маркере привилегии (если они перечислены) дают процессу особые полномочия, такие как право выключать компьютер или получать доступ к файлам, к которым в противном случае в этом доступе процессу было бы отказано. Привилегии позволяют разбить полномочия системного администратора на отдельные права, которые могут предоставляться процессам по отдельности. Таким образом, пользователю может быть предоставлена часть полномочий суперпользователя, но не все его полномочия. Итак, маркер доступа содержит информацию о том, кто владеет процессом и какие умолчания и полномочия ассоциированы с ним.
Когда пользователь регистрируется в системе, процесс winlogon назначает маркер доступа начальному процессу. Последующие процессы, как правило, наследуют этот маркер. Маркер доступа процесса изначально применяется ко всем потокам процесса. Однако поток во время исполнения может получить другой маркер доступа. В этом случае маркер доступа потока перекрывает маркер доступа процесса. В частности, клиентский поток может передать свой маркер доступа серверному потоку, чтобы сервер мог получить доступ к защищенным файлам и другим объектам клиента. Такой механизм называется перевоплощением.
Другим основным понятием является дескриптор защиты. У каждого объекта есть ассоциированный с ним дескриптор защиты, содержащий список пользователей и групп, имеющих доступ к данному объекту. Дескриптор защиты состоит из заголовка, за которым следует список DACL с одним или несколькими элементами АСЕ (Access Control Entry -- элемент списка контроля доступа ACL). Два основных типа элементов списка -- это разрешение и запрет доступа. Разрешающий элемент содержит SID пользователя или группы и битовый массив, определяющий набор операций, которые процессы с данным идентификатором SID могут выполнять с определенным объектом. Запрещающий элемент работает аналогично, но совпадение идентификаторов означает, что обращающийся процесс не может выполнять перечисленные операции. Например, у Иды есть файл, дескриптор защиты которого указывает, что у всех пользователей есть доступ для чтения этого файла, Элвису запрещен всякий доступ, а у самой Иды есть все виды доступа. Этот простой пример показан на рис. 11.25. Идентификатор защиты Everyone (все) соответствует множеству всех пользователей, но его действие может перекрываться любым элементом списка, в котором явно указано нечто иное.
Рис. 11.25. Пример дескриптора защиты для файла
Кроме списка DACL у дескриптора защиты есть также список SACL (System Access Control List -- системный список контроля доступа), который похож на DACL, только вместо пользователей и групп, имеющих доступ к объекту, в нем перечисляются операции с этим объектом, регистрируемые в специальном журнале. На рис. 11.25 все действия, которые Мэрилин выполнит с этим файлом, будут регистрироваться в журнале. В операционной системе Windows 2000 также предоставляются дополнительные возможности аудита для регистрации доступа к объектам.
Вызовы API защиты
В основе большей части механизмов управления доступом в Windows 2000 лежат дескрипторы защиты. Как правило, когда процесс создает объект, он передает функции CreateProcess, CreateFile или другой функции в качестве одного из параметров дескриптор защиты. Этот дескриптор защиты затем становится дескриптором защиты, присоединенным к объекту (см. рис. 11.25). Если при создании объекта не предоставляется дескриптора защиты, используется дескриптор защиты вызывающего процесса по умолчанию (см. рис. 11.24).
Для управления дескрипторами защиты существует множество вызовов Win32 API. Наиболее важные вызовы перечислены в табл. 11.18. Чтобы создать дескриптор защиты, для него сначала выделяется место хранения, после чего он инициализируется с помощью вызова InitializeSecurityDescriptor. Этот вызов заполняет заголовок. Если SID владельца неизвестен, он может быть найден по имени при помощи вызова LookupAccountSid. Затем он может быть вставлен в дескриптор защиты. То же самое справедливо для SID группы, если группа существует. Как правило, используется SID вызывающего процесса, а также SID одной из групп вызывающего процесса, но системный администратор может записать в дескриптор защиты любой SID.
Список DACL или SACL дескриптора защиты может быть проинициализирован при помощи функции InitializeAcl. Элементы списка ACL могут быть добавлены с помощью функций AddAccessAllowedAce и AddAccessDeniedAce. К этим вызовам можно обращаться многократно, чтобы добавить столько записей АСЕ, сколько необходимо. Удаление записи происходит при помощи функции DeleteAce. Когда список ACL готов, его можно присоединить к дескриптору защиты с помощью функции SetSecurityDescriptorDacl. Наконец, когда объект создан, к нему можно присоединить новенький дескриптор защиты.
Таблица11.18.
ОсновныефункцииWin32 API для управления защитой
Функция |
Описание |
|
InitializeSecurityDescriptor LookupAccountSid SetSecurityDescriptorOwner SetSecurityDescriptorGroup InitializeAcl AddAccessAllowedAce AddAccessDeniedAce DeleteAce SetSecurityDescriptorDacl |
Подготовить новый дескриптор защиты Найти SID по заданному имени пользователя Ввести SID владельца в дескриптор защиты Ввести SID группы в дескриптор защиты ИнициализироватьDACL или SACL Добавить к DACL или SACL новый АСЕ с разрешением доступа Добавить к DACL или SACL новый АСЕ с запретом доступа Удалить АСЕ из DACL или SACL Добавить DACL к дескриптору защиты |
Реализация защиты
Защита в автономной системе Windows 2000 реализуется при помощи нескольких компонентов, большую часть которых мы уже рассмотрели (вопросы сетевой безопасности представляют собой совсем другую историю и выходит за рамки данного курса). Регистрацией в системе управляет программа winlogon, а аутентификацией занимаются Lsass и msgina.dll. Результатом успешной регистрации в системе является новая оболочка с ассоциированным с ней маркером доступа. Этот процесс использует в реестре ключи SECURITY и SAM. Первый ключ определяет общую политику безопасности, а второй ключ содержит информацию о защите для индивидуальных пользователей.
Как только пользователь регистрируется в системе, выполняется операция защиты при открытии объекта. Для каждого вызова ОреnХХХ требуется имя открываемого объекта и набор прав доступа к нему. Во время обработки процедуры открытия объекта менеджер безопасности (см. рис, 11.2) проверяет наличие у вызывающего процесса соответствующих прав доступа. Для этого он просматривает все маркеры доступа вызывающего процесса, а также список DACL, ассоциированный с объектом. Он просматривает по очереди элементы списка ACL. Как только он находит запись, соответствующую идентификатору SID вызывающего процесса или одной из его групп, поиск прав доступа считается законченным. Если вызывающий процесс обладает необходимыми правами, объект открывается, в противном случае в открытии объекта отказывается.
Помимо разрешающих записей, списки DACL могут также содержать запрещающие записи. Поскольку менеджер безопасности прекращает поиск, наткнувшись на первую запись с указанным идентификатором, запрещающие записи помещаются в начало списка DACL, чтобы пользователь, которому строго запрещен доступ к какому-либо объекту, не смог получить его как член какой-либо группы, которой этот доступ предоставлен.
После того как объект открыт, дескриптор объекта возвращается вызывающему процессу. При последующих обращениях проверяется только, входит ли данная операция в число операций, разрешенных в момент открытия объекта, чтобы, например, не допустить записи в файл, открытый для чтения.
Кэширование в Windows 2000
В операционной системе Windows 2000, как и в других операционных системах, кэш используется для повышения производительности. Однако устройство менеджера кэша обладает некоторыми необычными свойствами, которые стоит кратко рассмотреть.
Работа менеджера кэша заключается в том, чтобы хранить в памяти недавно использовавшиеся блоки файловой системы и тем самым сокращать время доступа при последующих обращениях к ним. В Windows 2000 есть единый интегрированный кэш, обслуживающий все используемые файловые системы, включая NTFS, FAT-32, FAT-16 и даже файловую систему для CD-ROM. Это означает, что файловые системы не должны управлять собственными кэшами.
В результате менеджер кэша оказывается расположенным в системе в несколько необычном месте (см. рис. 11.2). Он не является частью файловой системы, так как существует несколько независимых файловых систем, у которых может не быть ничего общего. Вместо этого он работает на более высоком уровне, чем файловые системы, формально представляющие собой драйверы, управляемые менеджером ввода-вывода.
В основе организации кэша Windows 2000 лежат не физические блоки, а виртуальные блоки. Чтобы понять, что это означает, вспомним, что традиционные файловые кэши отслеживают блоки с помощью адресов, состоящих из двух частей (раздел, блок), где первое число означает устройство и раздел, а второе число представляет собой номер блока в пределах этого дискового раздела. Менеджер кэша в операционной системе Windows 2000 этого не делает. Вместо этого при обращении к блоку он использует пару (файл, смещение). (Формально кэшируются не файлы, а потоки данных, но мы проигнорируем эту деталь.)
Причина такого неортодоксального устройства заключается в том, что при поступлении запроса к менеджеру кэша в нем указывается пара (файл, смешение), так как это вся информация, доступная вызывающему процессу. Если бы блоки в кэше помечались как (раздел, блок), у менеджера кэша не было бы способа определить, какой блок, заданный парой (файл, смещение), какой паре (раздел, блок) соответствует, так как подобным преобразованием занимается файловая система.
Рассмотрим, как работает менеджер кэша. Когда происходит обращение к файлу, менеджер кэша отображает файл на 256-килобайтный фрагмент виртуального адресного пространства ядра. Если размер файла больше 256 Кбайт, тогда отображается только часть файла. Общий размер виртуального адресного пространства, которое может использовать менеджер кэша, определяется в момент загрузки операционной системы и зависит от объема оперативной памяти. Если менеджеру кэша не хватает 256 Кбайт виртуального адресного пространства, он должен, прежде чем отображать на память новый файл, прекратить отображение на адресное пространство памяти предыдущего файла.
Как только файл отображен на память, менеджер кэша может удовлетворить запросы к его блокам, просто копируя фрагменты памяти из виртуального адресного пространства ядра в буфер пользователя. Если копируемый блок не находится в физической памяти, происходит страничное прерывание, в результате которого менеджер памяти удовлетворяет страничное прерывание обычным способом. Менеджеру кэша даже не известно, был блок в кэше или нет. Операция копирования всегда завершается успешно.
Работа менеджера кэша для случая файловой системы NTFS на диске SCSI и файловой системы FAT-32 на диске IDE проиллюстрирована на рис. 11.26. Когда процесс читает файл, запрос направляется менеджеру кэша. Если требуемый блок оказывается в кэше, он немедленно копируется пользователю. Если блока в кэше нет, при попытке копирования блока происходит страничное прерывание. После обработки страничного прерывания блок копируется вызывавшему процессу.
Рис. 11.26. Путь сквозь кэш к аппаратуре
В результате применения такой схемы менеджер кэша не знает, сколько из отображаемыхимстраницнаходятсявфизическойпамятиидаженаскольковеликкэш. Только менеджер памяти обладает точной информацией. Такой подход позволяет менеджеру памяти динамически менять размер кэша, увеличивая и уменьшая тем самым количество страниц, выделяемых пользовательским процессам. Если обращений к файлам немного, но в памяти компьютера находится много активных процессов, менеджер памяти может отвести большую часть физической памяти под страницы процессов. С другой стороны, если процессов мало, а активность файловой системы высокая, больше физической памяти может быть выделено для кэша.
Другое свойство менеджера КЭШа состоит в том, что он следит за соответствием файлов, отображенных на память, файлам, открытым для чтения и записи. Рассмотрим, например, ситуацию, в которой один процесс открывает какой-либо файл для чтения и записи, а второй процесс отображает этот же файл на свое адресное пространство. Что произойдет, если второй процесс напрямую запишет данные в этот файл, непосредственно перед тем, как первый процесс прочитает только что измененный блок? Получит ли он устаревшие данные?
В обоих случаях -- как для открытых файлов, так и для файлов, отображенных на память, -- менеджер кэша отображает на файл 256-килобайтный участок своего виртуального адресного пространства. Файл отображается на память только один раз, независимо от того, сколько процессов откроют его или отобразят на свое адресное пространство. Когда от пользовательского процесса поступает запрос, менеджер кэша просто копирует страницу из памяти в буфер пользовательского процесса. Поэтому копируемая страница всегда отражает текущее состояние файла, так как менеджер кэша использует те же страницы, что и процесс, отображающий файл на память.
Выводы
Структура операционной системы Windows 2000 включает в себя уровень аппаратных абстракций HAL, ядро, исполняющую систему и тонкий уровень системных служб, перехватывающий входящие системные вызовы. Кроме того, операционная система содержит множество драйверов устройств, включая файловую систему и интерфейс графических устройств GDI. Уровень HAL скрывает от верхних уровней определенные различия в аппаратуре. Ядро пытается скрыть от исполняющей системы остальные различия, чтобы сделать ее почти полностью машинно-независимой.
В основе исполняющей системы лежат объекты памяти. Пользовательские процессы создают их и получают дескрипторы, позволяющие управлять этими объектами. Компоненты исполняющей системы также могут создавать объекты. Менеджер объектов управляет пространством имен, в которое могут добавляться объекты для возможности их поиска по имени.
Операционная система Windows 2000 поддерживает процессы, задания, потоки и волокна. У процессов есть виртуальные адресные пространства, кроме того, процессы являются контейнерами ресурсов. Потоки представляют собой единицы исполнения и планируются операционной системой. Волокна являются упрощенными потоками, планируемыми полностью в пространстве пользователя. Задания представляют собой наборы процессов и используются для выделения квот ресурсов. При планировании используется приоритетный алгоритм, в котором управление получает готовый поток с максимальным приоритетом.
Операционной системой Windows 2000 поддерживается виртуальная память с подкачкой по требованию. Алгоритм подкачки основан на понятии рабочего набора. Система управляет несколькими списками свободных страниц, так что когда происходит страничное прерывание, как правило, у системы уже есть доступная страница. Списки свободных страниц получают страницы, отнимаемые у рабочих наборов при помощи сложных алгоритмов, пытающихся изымать в первую очередь давно не использовавшиеся страницы.
Ввод-вывод осуществляется драйверами устройств, согласующимися с моделью Windows Driver Model. При запуске каждого драйвера инициализируется объект драйвера, содержащий адреса процедур, к которым может обращаться операционная система, чтобы добавить новое устройство или выполнить операцию ввода-вывода. Драйверы могут собираться в стеки или действовать как фильтры.
В основе файловой системы NTFS лежит главная файловая таблица МFТ, в которой содержится по одной записи для каждого файла или каталога. У каждого файла есть множество атрибутов, которые могут храниться в записи таблицы MFT или вне ее, на диске. Среди прочих возможностей файловая система NTFS поддерживает сжатие и шифрование.
Защита основывается на списках управления доступом ACL. У каждого процесса есть маркер управления доступом, идентифицирующий процесс, а также указывающий, какими особыми привилегиями он обладает. С каждым объектом ассоциирован дескриптор защиты. Дескриптор защиты указывает на список разграничительного управления доступом DACL, содержащий записи списка ACL, разрешающие или запрещающие доступ к этому объекту отдельным пользователям или группам.
Наконец, операционная система Windows 2000 управляет единым для всех файловых систем кэшем, представляющим собой скорее виртуальный кэш, нежели физический. Запросы к дисковым блокам сначала поступают в кэш. Если нужных блоков там нет, тогда вызывается соответствующая файловая система.
Подобные документы
Семейство ОС Windows 2000. Windows 2000 Server. Windows 2000 Advanced Server. Windows 2000 Datacenter Server. ОС Windows Server 2003. Организация сети на основе Windows 2000. Службы каталогов, DHCP, DNS, WINS. Конфигурирование сервера.
курсовая работа [307,1 K], добавлен 06.10.2006Прикладные программы и утилиты. Простейшие функции операционной системы. История разработки корпорацией Microsoft Corporation графической операционной оболочки Windows. Версия семейства сетевых ОС Windows NT (Millennium Edition, 2000, XP, Vista, Seven)
презентация [965,2 K], добавлен 12.10.2013Windows как посредник пользователя и операционной системы, облегчая процесс общения между ними, история становления и развития ее первых версий. Функциональные особенности и отличия Windows 95/98/ME и Windows NT/2000/XP/Vista/7, их архитектурные решения.
презентация [12,7 K], добавлен 23.10.2013Администрирование дисков в WINDOWS 2000. Новые концепции в Windows 2000. Использование возможностей Disk Management. Двойная загрузка. Приложения в системе с двойной загрузкой. Усложненная процедура установки.
реферат [15,7 K], добавлен 14.06.2007Управление службами SQL Server 2000. Настройка данного приложения. Использование SQL Server Enterprise Manager для запуска и остановки служб. Применение инструментов Windows. Учетные записи служб SQL Server 2000, консоль, интерфейс и утилиты Osql.
презентация [200,9 K], добавлен 10.11.2013Применение персональных компьютеров различных классов. Работа со встроенными программами Windows. Характеристика распространенных операционных систем (Windows 3.Х, 9Х, NT, 2000, XP, Windows7, Vista). Виды антивирусных программ и защита данных от вирусов.
контрольная работа [32,3 K], добавлен 23.01.2011Характеристика операционной системы. История развития Windows. Сравнительная характеристика версий Windows. Элементы и инструменты Windows XP. Прикладные программы в Windows XP. Работа настольных и портативных компьютеров под управлением Windows.
доклад [19,1 K], добавлен 16.10.2011Особенности проектирования корпоративных сетей. Информационные потоки в ЛВС предприятия. Обзор операционных систем: Nowell NetWare, семейство Windows 2000. Сетевая архитектура и ресурсы. Логическая структура Active Directory. Защита информации в сети.
дипломная работа [1,2 M], добавлен 31.10.2013Vista: понятие, методика проектирования. Зараженность персональных компьютеров с различными версиями операционных систем Windows. Оснастка "Брандмауэр Windows в режиме повышенной безопасности". Режим работы IE 7.0, возможности, безопасные соединения.
лекция [2,3 M], добавлен 20.12.2013Установка операционной системы Windows 2000/XP/2003. Компоненты служб удаленной установки. Автоматическая (unattended) установка ОС из общего каталога на сервере. Установка ОС и приложений из образа, созданного при помощи ПО сторонних производителей.
реферат [22,4 K], добавлен 03.04.2010