Защита информации в Windows. Архитектура безопасности

реклама
К.В. Звонарев
Программно-аппаратные
средства обеспечения
информационной безопасности
ТЕМА ЛЕКЦИИ
Защита информации в Windows.
Архитектура безопасности.
Защита информации в Windows.
Архитектура безопасности.
Защита информации в Windows.
Архитектура безопасности.
•Монитор состояния защиты (Security Reference
Monitor, SRM). Компонент ядра Ntoskrnl.exe, отвечает
за проверку прав доступа к объектам,
манипулирование привилегиями и генерацию
сообщений аудита безопасности.
•Подсистема локальной аутентификации (Local
Security Authentication Subsystem, LSASS) отвечает за
политику безопасности в локальной системе
(например, круг пользователей имеющих право на
вход в систему, политики паролей, параметры аудита
и т.п.), а также за аутентификацию пользователей и
передачу сообщений аудита в EventLog.
Защита информации в Windows.
Архитектура безопасности.
•База данных политики LSASS содержит параметры
политики безопасности локальной системы (хранится
HKLM\SECURITY).
•Диспетчер учетных записей безопасности (Security
Accounts Manager, SAM) поддерживает базу данных
SAM.
•База данных SAM содержит информацию о
локальных пользователях и группах, содержит также
хэши паролей (хранится в HKLM\SAM).
•Служба каталога (Active Directory, AD) содержит базу
данных объектов домена (если компьютер является
контроллером домена).
Защита информации в Windows.
Архитектура безопасности.
•Пакеты аутентификации, например, Msv1_0.dll, Kerberos.dll
− DLL-модули, выполняющиеся в контексте LSASS и
реализующие различные протоколы аутентификации.
•Процесс входа (Winlogon) управляет входом-выходом
пользователей в систему, сменой паролей, блокировкой рабочей
станции и т.п.
•GINA (Graphical Identification and Authentication) DLL выполняется
в процессе Winlogon и представляет графическую оболочку для
ввода имени пользователя и пароля. Сторонние разработчики
могут использовать свои собственные библиотеки для
аутентификации пользователей, например, с помощью
пластиковых карточек или отпечатков пальцев.
•Служба сетевого входа (Netlogon) устанавливает соединение с
контроллером домена для передачи данных аутентификации.
Защита информации в Windows.
Архитектура безопасности.
Ядром подсистемы безопасности является локальная
служба безопасности (Local Security Authority, LSA),
размещающаяся в файле lsass.exe.
После загрузки операционной системы автоматически
запускается процесс входа (winlogon.exe), который
остается активным до перезагрузки операционной
системы или выключения питания компьютера, а его
аварийное завершение приводит к аварийному
завершению всей операционной системы.
Этим обеспечивается практическая невозможность
подмены процесса входа при функционировании
системы.
Защита информации в Windows.
Архитектура безопасности.
После нажатия пользователем комбинации клавиш
Ctrl+Alt+Delete процесс входа обращается к
провайдеру аутентификации (динамически
компонуемой библиотеке функций, DLL) для приема от
пользователя его логического имени (ID) и
аутентифицирующей информации.
Стандартный провайдер аутентификации
размещается в файле msgina.dll и в качестве
аутентифицирующей информации использует пароли
пользователей.
Возможно использование других провайдеров
аутентификации (например, считывающих ключевую
информацию со смарт-карт).
Защита информации в Windows.
Архитектура безопасности.
Путь к используемому процессом входа в систему
провайдеру аутентификации должен быть записан в
разделе реестра HKEY_LOCAL_MACHINE\
Software\Microsoft\WindowsNT\CurrentVersion
\WinLogon как значение параметра GinaDLL.
Введенные пользователем логическое имя и пароль
передаются процессом входа в службу LSA, которая
обращается к пакету аутентификации (библиотеке
функций) для подтверждения подлинности
пользователя.
Защита информации в Windows.
Архитектура безопасности.
Если пользователь зарегистрирован на локальном
компьютере, то пакет аутентификации вычисляет хэш
пароля и обращается к диспетчеру учетных записей
(Security Account Manager, SAM) для проверки
правильности введенного пароля и возможности для
пользователя с введенным логическим именем начать
работу в системе (не истек ли срок действия пароля, не
заблокирована ли учетная запись пользователя и т. п.).
Пакет аутентификации также является заменяемым
компонентом подсистемы безопасности (стандартный
пакет аутентификации размещается в файле
msvl_0.dll).
Защита информации в Windows.
Архитектура безопасности.
Диспетчер учетных записей обращается к базе данных
учетных записей (базе данных SAM) для извлечения
информации из учетной записи пользователя с
введенным логическим именем.
База данных учетных записей содержится в разделе
реестра HKEY_LOCAL_MACHINE\SAM (а также в файле
Windows\System32\Config\SAM).
К базе данных SAM не может быть получен доступ для
чтения или изменения с помощью штатных средств
операционной системы даже администратором.
Защита информации в Windows.
Архитектура безопасности.
Пароль пользователя в базе данных SAM хранится в
виде двух хэш значений, каждое из которых имеет
длину 128 бит.
Первое хэш значение пароля пользователя
вычисляется по алгоритму Windows NT (NT-хэш), а
второе − по алгоритму LAN Manager (LM-хэш).
Последний достался ей в наследство от OS/2, был
интегрирован в DOS и Windows 3.1 и остался для
обеспечения совместимости с этими системами.
Защита информации в Windows.
Архитектура безопасности.
Защита информации в Windows.
Архитектура безопасности.
Исходный пароль преобразуется в 14-байтовую ASCIIстроку (более длинные пароли усекаются, более
короткие дополняются нулями).
Все символы приводятся к верхнему регистру.
Далее строка разбивается на две семисимвольные
половинки.
Каждой половинкой зашифровывается постоянная
константа AAD3B435B5140EE по алгоритму DES.
Получившиеся две восьмибайтных строки
«склеиваются» вместе, образуя шестнадцати байтный
хэш.
Защита информации в Windows.
Архитектура безопасности.
Основные недостатки данного алгоритма:
1) все символы приводятся к верхнему регистру, существенно
сокращая число возможных паролей,
2) нет индивидуальной привязки − два пользователя с
одинаковыми паролями будут иметь одинаковые хэши. Можно
заранее составить таблицу хэшей и проводить поиск в ней.
3) независимое хэширование половинок пароля в 1015 раз
уменьшает количество попыток, необходимых для его перебора,
а не в два раза, как может показаться вначале. Таким образом,
пароли длиной более семи символов не сильнее
семисимвольных паролей.
4) пароли меньше семи символов легко распознать, т.к. вторая
половинка хэша будет одной и той же константой (шифрование
фиксированной константы выполняется с помощью ключа из
семи нулей).
Поскольку алгоритм DES не требует громоздких вычислений, то
LM-хэш может быть взломан за короткое время.
Защита информации в Windows.
Архитектура безопасности.
NT-хэш вычисляется следующим образом:
1) пароль преобразуется к четырнадцати символьной
unicode-строке с различием регистров,
2) вычисляется шестнадцати байтный хэш по алгоритму
MD4.
В данном алгоритме большинство недостатков LM-хэша
устранено, хотя индивидуальной привязки все равно
нет.
Защита информации в Windows.
Архитектура безопасности.
В ОС Windows NT 4.0, 2000, XP, 2003 и LM-, и NT-хэши
хранятся в системе.
Это означает, что можно вначале взломать слабый LMхэш, а затем подобрать регистр букв NT-хэша.
В силу рассмотренных выше недостатков алгоритма
получения LM-хэша смысла создавать пароль
длиннее, чем семь символов нет, а полный перебор
семисимвольного пароля выполняется за 3.5 часа
(буквы и цифры) или 3.5 дня (любые набираемые с
клавиатуры символы) на обычном офисном
компьютере.
В ОС Windows Vista Microsoft наконец то отказалась от
поддержки совместимости с древними ОС, поэтому
LM-хэши более не вычисляются и не хранятся в
системе.
Защита информации в Windows.
Архитектура безопасности.
Если хэш значение введенного пользователем пароля
не совпадает с эталоном, извлеченным из базы
данных учетных записей, или работа пользователя в
системе невозможна (пользователь с такой учетной
записью не зарегистрирован, учетная запись
пользователя заблокирована или отключена), то пакет
аутентификации возвращает LSA код ошибки, который
локальная служба безопасности передает процессу
входа для выдачи пользователю сообщения.
Если проверка подтвердила подлинность
пользователя и отсутствие препятствий для начала его
работы с ОС, то пакет аутентификации получает от
SAM уникальный идентификатор безопасности
пользователя SID (security identifier), который затем
передается в LSA.
Защита информации в Windows.
Архитектура безопасности.
Для идентификации субъектов ОС использует не
имена, которые могут быть не уникальными, а 48битные числа − идентификаторы безопасности (SID).
Идентификатор безопасности представляет собой
структуру переменной длины, которая однозначно
определяет пользователя или группу и сохраняется в
регистрационной базе данных.
Типичный идентификатор безопасности (SID)
пользователя выглядит как S-1-5-21-16837710671221355100-624655392-1001.
Формат идентификатора безопасности соответствует
такому шаблону: S-R-IA-SA-SA-RID.
Защита информации в Windows.
Архитектура безопасности.
•S − идентификатор SID. Этот идентификатор служит
признаком того, что следующее число является
идентификатором безопасности, а не простым
большим и загадочным числом.
•R − номер редакции (revision). Все идентификаторы
безопасности, сгенерированные операционной
системой Windows, используют номер редакции 1.
•IA − источник выдачи (issuing authority). Практически
все идентификаторы безопасности в операционной
системе Windows указывают NT Authority номер 5.
Исключением являются широко известные группы и
учетные записи.
Защита информации в Windows.
Архитектура безопасности.
•SA − уполномоченный центр (sub-authority). Этот идентификатор
определяет специальные группы и функции. Например, число 21
указывает, что идентификатор безопасности был выдан
контроллером домена или изолированным компьютером.
•Большое число, 1683771067-1221355100-624655392,
указывает на домен или компьютер, выдавший идентификатор
(фактически это SID компьютера или домена).
•RID − относительный идентификатор (Relative Identifier). Это
уникальное порядковое число, присвоенное участнику системы
безопасности (например, пользователю, компьютеру или группе)
уполномоченным центром (SA).
Относительные идентификаторы назначаются пользователям,
группам и компьютерам начиная с номера 1000. RID с 500 по 999
выделяются предопределенным учетным записям и компьютерам:
Защита информации в Windows.
Архитектура безопасности.
500 − учетная запись Administrator,
501 − учетная запись Guest,
512 − администраторы домена,
513 − пользователи домена,
515 − компьютеры домена,
516 − контроллеры домена и др.
Существует также ряд предопределенных
идентификаторов безопасности, например:
S-1-1-0 − Everyone,
S-1-2-0 − Local,
S-1-3-0 − Creator Owner,
S-1-3-1 − Creator Group и др.
Переименование учетной записи меняет только ее имя, не
затрагивая SID.
Защита информации в Windows.
Архитектура безопасности.
Получив идентификатор безопасности пользователя,
локальная служба безопасности LSA создает для него
маркер доступа AT (access token), который
идентифицирует пользователя во всех его действиях с
объектами ОС.
Маркер доступа содержит SID пользователя, SID групп,
в которые входит пользователь, и привилегии
пользователя.
Просмотреть содержимое маркера доступа текущего
пользователя можно командой whoami /all
Защита информации в Windows.
Архитектура безопасности.
Привилегии пользователя и группы представляют
собой права субъектов на выполнение действий,
относящихся к системе в целом, а не к отдельным ее
объектам.
Каждой привилегии соответствует уникальный
идентификатор, например,
SeSystemtimePrivilege).
Для отображения пользователю содержания
конкретной привилегии с ней также связывается
текстовая строка (например, «Изменение
системного времени» или «Change the system
time»).
Защита информации в Windows.
Архитектура безопасности.
Наиболее важные привилегии, которые могут быть
назначены пользователям и группам:
•завершение работы системы
(SeShutdownPrivilege);
•изменение системного времени
(SeSystemtimePrivilege);
•отладка программ (SeDebugPrivilege);
•архивирование файлов и каталогов
(SeBackupPrivilege);
•восстановление файлов и каталогов
(SeRestorePrivilege);
•управление аудитом и журналом безопасности
(SeSecurityPrivilege);
Защита информации в Windows.
Архитектура безопасности.
•создание журналов безопасности
(SeAuditPrivilege);
•смена владельцев файлов или иных объектов
(SeTakeOwnershipPrivilege);
•принудительное удаленное завершение работы
(SeRemoteShutdownPrivilege);
•работа в режиме операционной системы
(SeTcbPrivilege);
•создание маркерного объекта
(SeCreateTokenPrivilege);
•изменение параметров среды оборудования
(SeSystemEnvironmentPrivilege);
•загрузка и выгрузка драйверов устройств
(SeLoadDriverPrivilege) и др.
Защита информации в Windows.
Архитектура безопасности.
Ряд привилегий относится к так называемым
суперпривилегиям, которые позволяют получить
полный контроль над системой и требуют особого
внимания:
SeDebugPrivilege − пользователь может открыть
любой процесс в системе не зависимо от его
дескрипторов защиты. Можно открыть процесс
LSAS, скопировать в него свой код и запустить его
на выполнение функцией CreateRemoteThread.
Этот код может выдавать пользователю
дополнительные привилегии и расширять его
членство в группах.
Защита информации в Windows.
Архитектура безопасности.
SeTakeOwnershipPrivilege − пользователь
может сменить владельца любого защищенного
объекта просто вписав свой SID в поле владельца в
дескрипторе защиты. Владелец же объекта может
назначить себе любые права доступа. В результате
можно увидеть конфиденциальные данные или
подменить системные файлы своими программами,
которые расширят привилегии пользователей.
SeRestorePrivilege − пользователь может
заменить любой файл в системе независимо от
разрешений.
Защита информации в Windows.
Архитектура безопасности.
SeLoadDriverPrivilege − пользователь может
установить собственный драйвер, который будет
обладать неограниченными возможностями в
системе, работая в нулевом кольце защиты.
Некорректно написанный драйвер может привести к
полному разрушению ОС, файловой системы NTFS
и потере всех данных на жестком диске.
SeCreateTokenPrivilege − позволяет создавать
маркеры доступа, представляющие произвольные
учетные записи с членством в любых группах и
любыми привилегиями.
SeTcbPrivilege − можно установить доверенные
отношения с LSASS, создать новый сеанс входа, а в
маркер доступа добавить дополнительные группы.
Защита информации в Windows.
Архитектура безопасности.
Созданный LSA маркер доступа AT передается
процессу входа, который с помощью провайдера
аутентификации завершает процесс авторизации
пользователя в системе, запуская процесс
инициализации (userinit.exe) и передавая ему AT.
Процесс инициализации на основе содержащегося в AT
идентификатора безопасности пользователя загружает
из реестра Windows его профиль и загружает
программную оболочку − проводник Windows
(explorer.exe), передавая ему маркер доступа
пользователя.
После этого процесс инициализации завершает свою
работу.
Защита информации в Windows.
Архитектура безопасности.
Для разграничения доступа субъектов к объектам
системы в защищенных версиях операционной
системы Windows используется дискреционное
управление доступом.
Защищаемыми объектами ОС являются файлы,
устройства, разделы реестра, принтеры, объекты
Active Directory, сетевые ресурсы, сервисы, каналы
(pipes), процессы, потоки, события, мьютексы,
семафоры и др.
Информация о защите объекта, т.е. информация,
указывающая кому и какие действия разрешено
выполнять над объектом, содержится в структуре
данных называемой дескриптором защиты объекта
(SD, Security Descriptor).
Защита информации в Windows.
Архитектура безопасности.
Дескриптор защиты включает следующие атрибуты:
•Номер версии модели защиты.
•Флаги. Например, флаг SE_DACL_PROTECTED
запрещает наследование дескриптором параметров
защиты от другого объекта.
•DACL (Discretionary Access Control List) − список
управления избирательным доступом. Определяет,
кто может получить доступ к объекту и какие виды
доступа.
•SACL (System Access Control List) − системный список
управления доступом. Указывает, какие операции и
каких пользователей должны регистрироваться в
журнале аудита безопасности.
Защита информации в Windows.
Архитектура безопасности.
ACE могут быть двух типов: «доступ разрешен» и «доступ
запрещен».
ACE также содержат SID и маску доступа.
За счет аккумуляции прав доступа различных ACE формируется
набор прав, предоставляемых ACL.
Если в дескрипторе защиты отсутствует DACL (DACL = null), то
любой пользователь получает полный доступ к объекту.
Если же DACL присутствует, но является пустым (нету ни одной
ACE), то никто не получает доступа к объекту.
Защита информации в Windows.
Архитектура безопасности.
Маркер доступа субъекта, обращающегося к
некоторому объекту ОС, поступает в локальную службу
безопасности LSA.
От LSA маркер доступа поступает к монитору
безопасных ссылок (security reference monitor, SRM),
который просматривает DACL из дескриптора
безопасности SD соответствующего объекта и
принимает решение о предоставлении доступа
субъекту или отказе в доступе.
Получив от SRM результат, LSA передает его субъекту,
запросившему доступ к объекту.
Защита информации в Windows.
Архитектура безопасности.
Монитор безопасных ссылок использует следующий
алгоритм проверки запрошенных субъектом прав
доступа к объекту:
• В отсутствии DACL (DACL = null) объект является
незащищенным и доступ к нему разрешается.
• Если у субъекта есть привилегия на захват объекта
во владение (take ownership privilege), то
предоставляется право для записи до анализа DACL.
• Если субъект является владельцем объекта, то ему
предоставляется доступ на чтение к объекту и доступ
на запись к DACL.
Защита информации в Windows.
Архитектура безопасности.
• Просматриваются все ACE от первой до последней
на предмет совпадения SID в маркере доступа и SID
в ACE. Порядок расположения ACE важен. Элементы
для запрещения субъектам использования
определенных прав доступа должны размещаться в
«голове» списка, до первого из элементов,
разрешающих использование субъектом тех или
иных прав доступа (средства графического
редактирования помещают запрещающие ACE перед
разрешающими).
Так как владелец объекта всегда получает право на
запись в DACL, то это означает, пользователям
нельзя запретить доступ к принадлежащим им
объектам. Если DACL пуст (доступ запрещен всем),
владелец все равно сможет открыть объект с правом
записи DACL и назначить необходимые права
Защита информации в Windows.
Архитектура безопасности.
Скачать