Поделиться через


Обязательный элемент управления целостностью

Обязательный элемент управления целостностью (MIC) предоставляет механизм управления доступом к защищаемым объектам. Этот механизм в дополнение к дискреционному контролю доступа и оценивает доступ перед проверкой доступа к списку управления доступом (DACL) объекта.

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

Windows определяет четыре уровня целостности: низкий, средний, высокий и системный. Стандартные пользователи получают средний, повышенный уровень пользователей получают высокий уровень. Процессы, начинаемые и создаваемые объекты, получают уровень целостности (средний или высокий) или низкий, если уровень исполняемого файла низкий; системные службы получают целостность системы. Объекты, которые не имеют метки целостности, рассматриваются как средние по операционной системе; Это предотвращает изменение неназначенных объектов с низкой целостностью. Кроме того, Windows гарантирует, что процессы, выполняемые с низким уровнем целостности, не могут получить доступ к процессу, связанному с контейнером приложения.

Метки целостности

Метки целостности указывают уровни целостности защищаемых объектов и субъектов безопасности. Метки целостности представлены идентификаторами безопасности целостности. Идентификатор безопасности целостности для защищаемого объекта хранится в списке управления доступом системы (SACL). SACL содержит SYSTEM_MANDATORY_LABEL_ACE запись управления доступом (ACE), которая, в свою очередь, содержит идентификатор безопасности целостности. Любой объект без безопасности целостности обрабатывается так, как если бы он имел среднюю целостность.

Идентификатор безопасности целостности для субъекта безопасности хранится в маркере доступа. Маркер доступа может содержать один или несколько идентификаторов безопасности целостности.

Подробные сведения о определенных идентификаторах безопасности целостности см . в известных идентификаторах SID.

Создание процесса

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

Обязательная политика

SYSTEM_MANDATORY_LABEL_ACE ACE в SACL защищаемого объекта содержит маску доступа, указывающую доступ, который субъекты с уровнями целостности ниже, чем объект. Значения, определенные для этой маски доступа, представляют собой SYSTEM_MANDATORY_LABEL_NO_WRITE_UP, SYSTEM_MANDATORY_LABEL_NO_READ_UP и SYSTEM_MANDATORY_LABEL_NO_EXECUTE_UP. По умолчанию система создает каждый объект с маской доступа SYSTEM_MANDATORY_LABEL_NO_WRITE_UP.

Каждый маркер доступа также указывает обязательную политику, которая устанавливается локальным центром безопасности (LSA) при создании маркера. Эта политика определяется структурой TOKEN_MANDATORY_POLICY, связанной с маркером. Эта структура может быть запрошена путем вызова функции GetTokenInformation со значением параметра TokenInformationClass, заданного для TokenMandatoryPolicy.