Лекции.Орг


Поиск:




A.2. Разграничение доступа к объектам в ОС Windows.

Лекция 9A. Средства защиты информации в операционных системах

A.1 Архитектура подсистемы безопасности операционной системы Windows.

Основные компоненты подсистемы безопасности операци­онной системы Microsoft Windows представлены на рис. 9.1.

Рис.9.1. Подсистема безопасности ОС Windows

(ID и Р — имя и аутентификатор пользователя, Н — функция хеши­рования, SID — идентификатор безопасности учетной записи пользователя, AT— маркер безопасности, SD — дескриптор безо­пасности объекта доступа, R — результат проверки прав доступа процесса пользователя к объекту).

Ядром подсистемы безопасности является локальная служба безопасности (Local Security Authority — LSA), размещающаяся в файле lsass.exe. После загрузки операционной системы автомати­чески запускается процесс входа (winlogon.exe), который остает­ся активным до перезагрузки операционной системы или вы­ключения питания компьютера.

После нажатия пользователем комбинации клавиш Ctrl+Alt+ +Delete процесс входа обращается к провайдеру аутентификации (динамически компонуемой библиотеке функций — DLL) для приема от пользователя его логического имени (ID ) и аутентифицирующей информации (Р). Стандартный провайдер аутентифи­кации размещается в файле msgina.dll (Graphical Identification and Authentication dynamic-link library — динамически компонуемая библиотека GINA) и в качестве аутентифицирующей информа­ции использует пароли пользователей, введенные с клавиатуры или считанные со смарт-карты.

Путь к используемому процессом вхо­да в систему провайдеру аутентификации записан в разделе реестра

HKEY_LOCAL_MACHINE\Software\Microsoft\ WindowsNT\CurrentVersion \WinLogon как значение параметра GinaDLL.

Владельцем всех рабочих столов в операционной системе Windows (Graphic User Interface — GUI) является про­цесс входа. Сам процесс входа выполняется на отдельном рабочем столе, активизируемом после нажатия пользователем клавиш Ctrl+Alt+ +Delete.

Сообщение о нажатии Ctrl+Alt+Delete посылается только процессу входа, который остается активным до за­вершения работы операционной системы.

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

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

Для аутентификации локальной учетной записи используется пакет аутентифика­ции MSV10 (из файла msvl_0.dll).

Пакет аутентификации вычисляет хеш-значе­ние пароля Н(Р) и обращается к диспетчеру учетных записей (Security Account Manager — SAM) для проверки правильности введенного пароля.

SAM обращается к базе данных учет­ных записей (базе данных SAM) для извлечения информации из учетной записи пользователя.

База данных учетных записей содержится в разделе реестра HKEY_LOCAL_MACHINE\SAM (в файле Windows\System32\ Config\SAM).

К базе данных SAM не может быть получен до­ступ для чтения или изменения даже администратором (файл с базой данных открывается ядром операционной системы во время ее загрузки в монопольном режиме). Для редактирования базы данных SAM предназначены специальные функции из набора Windows API и специальное системное программное обеспече­ние (оснастки «Управление компьютером» и «Локальная поли­тика безопасности»).

Пароль пользователя в базе данных SAM хранится в виде двух хеш-значений, каждое из которых имеет длину 128 бит. Первое из этих хеш-значений формируется по алгоритму Windows NT:

1. Строка символов пароля Р усекается до 14 знаков (при не­обходимости) и преобразуется в кодировку Unicode, в которой каждый символ представляется двумя байтами.

2. Вычисляется хеш-значение преобразованного пароля Н{Р) длиной 128 бит (используется функция хеширования MD4).

3. Полученное хеш-значение зашифровывается по алгоритму DES с помощью ключа, выводимого из относительного номера учетной записи пользователя, ERW(H{P)).

4. Результат шифрования записывается в базу данных учетных записей SAM.

Второе хеш-значение пароля пользователя вычисляется по алгоритму LAN Manager:

1. Все буквенные символы (латинского алфавита) строки па­роля Р преобразуются к верхнему регистру.

2. Строка символов пароля дополняется нулями, если она короче 14 байтов, и делится на две семибайтовые половины Р1 и Р2.

3. Каждое из значений Р1 и Р2 используется в качестве ключа для шифрования по алгоритму DES магической строки М= «KGS!@#$%», в результате которого получаются два значения из 64 бит каждое:

Н 1 = ЕР1(М) и Н 2 = Е Р2 (М).

4. Выполняется шифрование по алгоритму DES на ключе, равном относительному номеру учетной записи, результата сце­пления Н 1 и Н 2:

ERID ( Н 1 || Н 2).

5. Результат шифрования помещается в базу данных учетных данных SAM.

Алгоритм получения хеш-значения LAN Manager является значительно менее стойким (разделение пароля на две половинки облегчает его подбор в том случае, если длина пароля не превышает семи знаков, так как результат шифрования магической строки на нулевом ключе заранее известен нарушителю). Относительный номер учетной за­писи может быть получен нарушителем (встро­енная учетная запись администратора всегда имеет относительный номер 500).

Доступ к базе данных SAM с помощью штатных средств Windows практически невозмо­жен, тем не менее можно скопировать содержа­щий ее файл на подготовленный носитель после загрузки на компьютере другой операционной системы с заранее подготов­ленного съемного диска.

Администратор безопасности Windows может дополнительно зашифровать хеш-значения паролей пользователей в базе данных SAM с помощью системной программы syskey. Программа syskey обеспечит шиф­рование хеш-значений паролей с помощью первичного ключа длиной 128 бит, хранящегося в реестре также в зашифрованном на системном ключе виде.

После запуска программы syskey администратор должен вы­брать способ хранения системного ключа длиной также 128 бит, который будет использован для шифрования первичного ключа:

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

- в файле startup.key (длиной 16 байт) в корневом каталоге специальной дискеты (в этом случае придется отдельно по­заботиться о защищенном хранении этой дискеты и ее ре­зервной копии);

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

Если пользователь пытается войти в систему под именем глобальной учетной записи, зарегистрированной в домене (объ­единении компьютеров, разделяющих общую политику безопас­ности и информацию об учетных записях пользователей), то па­кет аутентификации MSV1_0 отправляет логическое имя и хеш-значение пароля пользователя сервису NetLogon для аутен­тификации пользователя на контроллере домена (сервере аутен­тификации). Далее выпол-няется аутентификация пользователя по протоколам LM, NTLM и NTLM v2.

Но основным пакетом аутентификации при входе пользова­теля под именем глобальной учетной записи в современных вер­сиях ОС Windows является пакет аутентификации Kerberos SSP/AP (Security Support Provider/Authentication Packages, провайдер поддержки безопасности/пакет аутентификации), ис­пользующий более защищенный протокол непрямой аутентифи­кации Kerberos.

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

При подтверждении подлинности пользователя пакет аутен­тификации получает идентификатор безопасности пользователя SID (security identifier), который затем передается b LSA.

Идентификатор безопасности представляет собой структуру переменной длины, которая однозначно определяет пользовате­ля или группу и сохраняется в его учетной записи в регистраци­онной базе данных.

В SID содержится следующая информация:

- идентификатор авторизации (48 бит), состоящий из иден­тификатора домена КС и относительного номера учетной записи (RID) в его регистрационной базе данных (32 бита);

- уровень пересмотра;

- переменное количество идентификаторов субавторизации.
Для записи SID применяется специальная нотация:

S-R-I-S-S... (первая S определяет эту запись как SID, R задает уровень пересмотра, I — идентификатор авторизации, вторая и последующие буквы Sидентификаторы субавторизации). Некоторые значения SID являются предо­пределенными в системе,:

S-1-0-0 (группа без пользова­телей-членов), S-1-1-0 (группа, включающая всех пользователей), S-1-2-0 (группа, включающая пользователей, которые входят локально), S-1-5-2 (группа, включаю­щая пользователей, осуществляющих доступ по сети), S-1-5-18 (операционная система).

Получив идентификатор безопасности пользователя, локаль­ная служба безопасности LSA создает для него маркер доступа AT (access token), который идентифицирует пользователя во всех его действиях с объектами КС.

В маркере доступа содержится следующая информация:

- SID пользователя;

- идентификаторы безопасности его групп;

- права (привилегии) пользователя в системе;

- идентификаторы безопасности пользователя и его первич­ной группы, которые будут использованы при создании пользователем новых объектов в КС;

- дискреционный список контроля доступа по умолчанию для вновь создаваемого объекта;

- источник выдачи маркера доступа;

- тип маркера доступа — первичный (созданный при входе пользователя в КС) или используемый для олицетворения (impersonation);

- текущий уровень олицетворения.

В маркер доступа не помещаются сведения о правах входа пользователей в КС, которые проверяются пакетом аутентифи­кации на этапе их авторизации в системе:

- локальный вход в систему;

- доступ к компьютеру из сети;

- вход в качестве пакетного задания;

- вход в качестве службы;

- вход в систему через службу терминалов.

Созданный LSA маркер доступа AT передается процессу вхо­да, который с помощью провайдера аутентификации завершает процесс авторизации пользователя, запуская процесс его инициализации (userinit.exe) и передавая ему AT. Процесс ини­циализации на основе содержащегося в AT идентификатора безопасности пользователя загружает из реестра Windows его ло­кальный профиль или из службы активного каталога на контроллере домена его перемещаемый профиль и загружает про­граммную оболочкупроводник Windows (explorer.exe), переда­вая ему маркер доступа и профиль пользователя. Процесс инициализации завершает свою работу.

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

Для запуска приложения с правами другого пользователя, если известны его имя и пароль, предназначена команда контекстного меню файла приложения «Запуск от име­ни». Эту возможность следует использовать для сокращения времени работы в системе с правами привилегированного поль­зователя.

В операционной системе Windows Vista любое приложение по умолчанию запускается с правами непривилегированного пользователя. Для запуска программы с административными полномочиями следует использовать соответствующую команду контекстного меню файла приложения.

A.2. Разграничение доступа к объектам в ОС Windows.

Для разграничения доступа субъектов к объектам КС в защи­щенных версиях операционной системы Windows используется дискреционное управление доступом. С каждым объектом разграничения доступа связывается дескриптор безо­пасности SD (security descriptor), содержащий следующую ин­формацию:

- идентификатор безопасности (SID) владельца объекта;

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

- дискреционный список контроля доступа (discretionary access control list — DACL);

- системный список контроля доступа (system access control list - SACL).

Список SACL управляется администратором системы.

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

Каждый элемент списка DACL (access control entry — АСЕ) определяет права доступа к объекту одного пользователя или группы.

АСЕ содержит следующую информацию:

- идентификатор безопасности SID субъекта, для которого определяются права доступа;

- маску доступа (access mask — AM), которая специфицирует контролируемые данным АСЕ права доступа;

- тип АСЕ;

- признак наследования прав доступа к объекту, определен­ных для родительского объекта.

Элементы списка DACL могут быть двух типов:

- элементы, разрешающие специфицированные в них права доступа (Access-allowed АСЕ);

- элементы, запрещающие определенные в них права доступа (Access-denied АСЕ).

Элементы для запрещения субъектам использования определенных прав доступа должны размещаться в «голове» списка, до первого из элементов, разре­шающих использование субъектом тех или иных прав доступа.

Право доступа субъекта к объекту означает возможность об­ращения субъекта к объекту с помощью определенного метода (типа) доступа. В операционной системе Windows различаются:

- специальные права доступа к объектам;

- стандартные права доступа к объектам(общие);

- родовые (generic) права доступа к объектам.

Специальные права доступа определяют возможность обращения к объекту по свойственному только данной категории объектов методу — чтение данных из объекта, запись данных в объект, чтение атрибутов объекта, выполнение программного файла.

Стандартные права доступа опреде­ляют возможность доступа к объекту по методу, применимому к любому объекту, — изменение владельца объекта, изменение списка DACL объекта, удаление объекта.

Родовые права доступа представляет собой комби­нацию специальных и стандартных прав и предоставляет воз­можность обращения к объекту с помощью некоторого набора методов доступа.

Маска доступа, содержащаяся в элементе DACL, представля­ет собой значение длиной 32 бита. Первые 16 битов определяют специальные права доступа, биты с 16 до 23стандартные права доступа, бит 24 - право ACCESS_SYSTEM_SECURITY, бит 25 - право MAXIMUM_ALLOWED, биты 26 и 27 зарезервированы для дальнейшего использования и биты с 28 по 31 определяют родовые права доступа, отображаемые в специ­альные и стандартные права при попытке доступа к объекту.

Маркер доступа субъекта, обращающегося к некоторому объ­екту КС, поступает в локальную службу безопасности LSA. От LSA маркер доступа поступает к монитору безопас­ных ссылок (security reference monitor — SRM), который просмат­ривает DACL из дескриптора безопасности SD соответствующего объекта и принимает решение R о предоставлении доступа субъ­екту или отказе в доступе. Получив от SRM резуль­тат R, LSA передает его субъекту, запросившему доступ к объекту.

При проверке прав доступа субъекта к объекту монитором безопасных ссылок строятся две маскитребуемых и разре­шенных прав доступа (desired access mask и granted access mask).

В первой маске установлены биты, соответствующие запраши­ваемым субъектом видам доступа. Во второй маске все биты первоначально сброшены.

Монитор безопасных ссылок использует специальный алго­ритм проверки запрошенных субъектом прав доступа к объекту:

1. Если в дескрипторе безопасности объекта нет DACL, то биты в маске разрешенных прав доступа устанавливаются в со­ответствии с маской требуемых прав и проверка завершается. Субъект получает все запрошенные им права доступа.

2. Если маска требуемых прав пуста, то проверка завершает­ся, а попытка доступа субъекта отклоняется.

Из приведенного алгоритма ясно, что если DACL объекта пуст, то любой доступ к нему запрещен всем субъектам, за ис­ключением владельца объекта. Если требуется получить действительно необходимый доступ к данно­му объекту его владелец сможет снова внести изменения в DACL этого объекта.

Если у объекта КС нет дескриптора безопасности (у папок и файлов, размещенных на дисках под управлением файловой системы FAT), то любые пользователи и группы могут получить любые права доступа к данному объекту.

Назначение дескрипторов безопасности вновь создаваемым объектам в защищенных версиях операционной системы Win­dows производится по следующим правилам:

1. на основе явно заданного субъектом и корректного по форме дескриптора безопасности (при вызове систем­ных функций CreateFile или CreateDirectory при создании файлов или папок, при вызове системной функции RegCreateKeyEx при создании раздела реестра);

2. на основе механизма наследования (если при создании объекта дескриптор безопасности не задается);

3. из маркера доступа субъекта, создающего объект (если на­следование невозможно).

В Windows возможно разграничение доступа к следующим объектам:

- файлам и папкам на дисках под управлением файловой системы NTFS;

- разделам реестра;

- принтерам;

- процессам и потокам (нитям, threads);

- маркерам доступа;

- службам (services);

- рабочим столам.

Способы аппаратной защиты иницииро­ванных субъектами процессов в операционной системе Windows. Ядро и драйверы устройств выполняются в нулевом кольце за­щиты, а весь остальной системный код и приложения пользова­телей — в третьем кольце защиты. Первое.и второе кольца защи­ты не используются. Каждый процесс получает адресное про­странство размером 4 гигабайта, рассматриваемое как шесть совпадающих друг с другом сегментов - код, данные и стек для третьего кольца защиты, код, данные и стек для нулевого кольца защиты.

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



<== предыдущая лекция | следующая лекция ==>
Объектно-ориентированное программирование | Типы электрических схем ЭС
Поделиться с друзьями:


Дата добавления: 2016-11-12; Мы поможем в написании ваших работ!; просмотров: 3124 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Чтобы получился студенческий борщ, его нужно варить также как и домашний, только без мяса и развести водой 1:10 © Неизвестно
==> читать все изречения...

962 - | 933 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.01 с.