Тимофеев 2018 / ОС 2 лаб
.docxМИНОБРНАУКИ РОССИИ
Санкт-Петербургский государственный
электротехнический университет
«ЛЭТИ» им. В.И. Ульянова (Ленина)
Кафедра вычислительной техники
отчет
по лабораторной работе №2
по дисциплине «Операционные системы»
Тема: «Безопасность в Windows»
Студент гр. 6307 |
|
Лазарев С. О. |
Преподаватель |
|
Тимофеев А. В. |
Санкт-Петербург
2018
Цель работы: исследовать структуры данных Windows, используемые для обеспечения безопасности.
Задание 2.1: Определить идентификатор защиты SID текущего пользователя
Рис. 1 – информация о выбранном процессе и его объектах
Рис. 2 – получение информации о маркере процесса
Рис. 3 – получение имени учетной записи и SID
Вывод: процесс имеет такие же права, как и пользователь, который его запустил
Задание 2.2: исследовать маркер доступа (Access token)
Был выбран процесс ConsoleApplication2.exe с pid 998010 = 26FC16
Рис. 4 – получение маркера доступа процесса
Модификатор доступа (Access Token):
Рис. 5 – изучение структуры _TOKEN
Чтение атрибутов процесса:
Рис. 6 – изучение структуры SID_AND_ATTRIBUTES
Чтение SID процесса:
Рис. 7 – получение SID
Вывод: Значение SID хранящееся в памяти совпадает с тем, что показал process explorer. В поле UserAndGroups объекта типа Token хранится адрес, указывающий на структуру _SID_AND_ATTRIBUTES, в первом поле которой хранится адрес SID.
Задание 2.3: исследовать дескриптор защиты
Выведем краткую и полную информацию о ConsoleApplication2.exe
Рис. 8 – получение краткой информации о процессе
Рис. 9 – получение подробной информации о процессе
Определим заголовок объекта и читаем его
Рис. 10 – определение заголовка объекта
Рис. 11 – чтение структуры dt _OBJECT_HEADER
Просмотрим дескриптор безопасности
Рис. 12 – просмотр дескриптора безопасности объекта
Дескриптор защиты содержит 3 элемента АСЕ «доступ разрешен» со следующими масками:
0х001fffff = 0000.0000.0001.1111.1111.1111.1111.1111
0x00121411 = 0000.0000.0001.0010.0001.0100.0001.0001
А также один элемент SACL, используемый для аудита доступа к объекту со следующей маской:
0000000316 = 0000.0000.0000.0000.0000.0000.0000.00112
ACCESS_ALLOWED_ACE – структура, определяющая access control entry(точку входа) для discretionary access control list(список, контролируемый хозяином объекта и определяющий какие юзеры и группы операционной системы имеют к нему доступ)ю
Typedef struct _ACCESS_ALLOWED_ACE {
ACE_HEADER Header;
ACCESS_MASK Mask;
DWORD SidStart
} ACCESS_ALLOWED_ACE, *PACCESS_ALLOWED_ACE;
Mask – имеет в качестве типа структуру под названием ACCESS_MASK, которая определяет права доступа, предоставленные ACE.
Примечание:
Позиция битов |
Значение |
0-15 |
Специфичные права, определяемые объектом, связанным с маской |
16-23 |
Стандартные права. Определяют стандартные права доступа объекта |
24 |
Access system security (ACCESS_SYSTEM_SECURITY) Используется для определения наличия доступа к system access control list (SACL) |
25 |
Максимально возможные привилегии объекта (MAXIMUM ALLOWED) |
26-27 |
Reserved |
28 |
Общие права (GENERIC_ALL) |
29 |
Общее исполнение GENERIC_EXECUTE |
30 |
Общая запись (GENERIC_WRITE) |
31 |
Общее чтение (GENERIC_READ) |
Таблица 1
Позиция бита |
Флаг |
Значение |
16 |
DELETE |
Право удаления |
17 |
READ_CONTROL |
Право чтения владельца и DACL |
18 |
WRITE_DAC |
Право записи для DACL |
19 |
WRITE_OWNER |
Право записи для владельца |
20 |
SYNCHRONIZE |
Право синхронизации |
Таблица 2
Таким образом, в моем примере первые два элемента ACE судя по их маскам имеют все стандартные права, описанные в таблице 2, также все специфичные права объекта.
Третий элемент ACE имеет из стандартных прав только право синхронизации и чтения, а также некоторые специфичные для объекта права.
Вывод: в ходе выполнения данной работы были получены знания о безопасности в Windows, с помощью утилит Process Explorer, PsGetSid и LiveKD был получен SID учетной записи, исследованы права доступа. Дескриптор защиты имеет сложную структуру, с помощью которой производится тонкая настройка прав доступа.