Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


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; Мы поможем в написании ваших работ!; просмотров: 3252 | Нарушение авторских прав


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

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

Своим успехом я обязана тому, что никогда не оправдывалась и не принимала оправданий от других. © Флоренс Найтингейл
==> читать все изречения...

2396 - | 2210 -


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

Ген: 0.009 с.