Windows Vista. Для профессионалов
Шрифт:
Поскольку маркер содержит переменные сведения (набор привилегий и групп), его длина не является постоянной.
Начальный маркер доступа создается во время входа пользователя в систему и присваивается начальному процессу userinit.ехе. Этот процесс запускает все основные процессы пользователя, а поскольку маркер доступа родительского процесса передается и процессам, которые он создает (дочерним процессам), все процессы, создаваемые пользователем, имеют один и тот же маркер доступа.
Кроме основных маркеров доступа и маркеров олицетворения, в операционных системах семейства Windows могут использоваться
Дескрипторы защиты
Если маркер доступа выдается процессу и определяет те права, которыми обладает запущенный процесс, то дескриптор защиты выдается объектам операционной системы (файлы, каталоги) и определяет тех пользователей, которые могут получить доступ к объекту, а также права, которыми эти пользователи обладают. Дескриптор защиты состоит из следующих элементов.
• DACL (список управления избирательным доступом) – определяет пользователей, которые могут получить доступ к данному объекту, и их права. Каждый АСЕ (элемент списка DACL) содержит SID учетной записи пользователя или группы, маску доступа, а также флаги наследования (определяют, был ли данный АСЕ унаследован от DACL родительского объекта и будет ли он наследоваться DACL дочерних объектов). При этом АСЕ может быть четырех основных типов.
– Доступ разрешен (access allowed). Разрешает пользователю, определенному SID, права доступа к объекту, определенные в маске доступа.
– Доступ отклонен (access denied). Запрещает пользователю, определенному SID, права доступа к объекту, определенные в маске доступа.
– Разрешенный объект (allowed-object). Данный тип АСЕ используется в Active Directory и применяется для разрешения доступа к объектам и подобъектам каталога.
– Запрещенный объект (denied-object). Данный тип АСЕ используется в Active Directory и применяется для запрещения доступа к объектам и подобъектам каталога.
Если дескриптор защиты не содержит DACL, то любой пользователь может получить доступ к данному объекту. Если же дескриптор защиты содержит пустой DACL (не имеющий ни одной записи АСЕ), то доступ к объекту запрещен всем пользователям.
Если же DACL включает в себя множество АСЕ, определяющих доступ одному и тому же пользователю, то определить, сможет ли в результате пользователь получить доступ к объекту, бывает очень сложно. В этом случае проще воспользоваться вкладкой Действующие разрешения окна Дополнительные параметры безопасности. С ее помощью можно просуммировать все запрещающие и разрешающие АСЕ для учетной записи пользователя и групп, в которые он входит, и определить текущие разрешения для данного пользователя.
• SACL (системный список управления доступом) – определяет пользователей, для которых установлен аудит доступа, а также те операции, совершаемые пользователем над объектом, которые будут подлежать аудиту. Список SACL может содержать АСЕ двух типов: системного аудита и объекта системного аудита. Каждый АСЕ включает в себя SID учетной записи пользователя, GUID-объекта, к которому применим АСЕ, а также флаги наследования.
Если дескриптор защиты не содержит SACL, то аудит работы с объектом не ведется.
DACL и SACL являются составными частями списка управления доступом (ACL).
Привилегии и права
При описании маркеров доступа мы определили, что они могут содержать информацию о привилегиях, предоставляемых процессу. Привилегии – это права определенной учетной записи (или службы, о чем было описано в гл. 6), позволяющие ей выполнять те операции в операционной системе, которые по умолчанию выполнять запрещено.
Мы уже сталкивались с привилегиями, когда рассматривали оснастку Редактор объектов групповой политики, хотя тогда было упомянуто о них лишь мельком, даже не говорилось о том, что это привилегии.
Привилегии операционной системы
Добавлять и удалять привилегии можно как с помощью API-функций, так и с помощью оснастки Редактор объектов групповой политики. Для этого применяется подраздел оснастки Конфигурация компьютера → Конфигурация Windows → Параметры безопасности → Локальные политики → Назначение прав пользователя. Данный подраздел содержит следующие элементы (сначала указано системное название привилегии, потом ее название в оснастке и в самом конце ее описание).
• SeBackupPrivilege (архивация файлов и каталогов) – разрешает службе или учетной записи выполнять операции резервного копирования. Данная привилегия позволяет учетной записи или службе открывать файлы и каталоги независимо от того, разрешена для них эта операция с помощью DACL или нет. Привилегия позволяет обходить проверку таких разрешений, как Обзор папок/Выполнение файлов, Содержимое папки/Чтение данных, Чтение атрибутов, Чтение расширенных атрибутов, Чтение разрешений. При этом DACL обходится только в том случае, если установлен флаг FILE_FLAG_BACKUP_SEMANTIC.
Привилегия предоставлена группам: Администраторы, Операторы архива и Операторы сервера.
• SeChangeNotifyPriviLege (обход перекрестной проверки) – разрешает службе или учетной записи не проходить все проверки прав доступа пользователя при проходе многоуровневых каталогов (проверки прав доступа к вложенным каталогам). Она не предоставляет прав на просмотр содержимого каталога, если эти права вам не предоставлены DACL, однако позволяет выполнять обзор каталога.
Привилегия предоставлена группам: Администраторы, Операторы архива, Пользователи, Все, а также учетной записи локальной службы, учетной записи сетевой службы.
• SeCreateGlobalPrivilege (создание глобальных объектов) – позволяет процессу создание разделов и символьных ссылок во время сеанса службы терминалов.
Привилегия предоставлена: группе Администраторы, учетной записи локальной службы, учетной записи сетевой службы.
• SeCreatePagefilePrivilege (создание файла подкачки) – разрешает службе или учетной записи создание файла подкачки с помощью специальных API-функций.
Привилегия предоставлена группе Администраторы.
• SeCreateSymbolicLinkPrivilege (создание символических ссылок) – позволяет пользователю создавать символические ссылки. Определить, какие виды символьных ссылок доступны в операционной системе, можно с помощью команды программы командной строки fsutil behavior set.