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


Монитор эталонной безопасности Windows Kernel-Mode

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

Монитор безопасности Windows (SRM) — это основной компонент режима ядра архитектуры безопасности Windows, который применяет политики управления доступом во всей операционной системе. Он проверяет каждый запрос на доступ к системным объектам и гарантирует, что только авторизованные сущности могут выполнять определенные операции.

Ключевые функции монитора ссылок на безопасность

SRM выполняет несколько функций для обеспечения безопасности системы:

  • Принудительное применение контроля доступа: проверяет каждый запрос на доступ к системным объектам, таким как файлы, разделы реестра и процессы.
  • Реализация политики безопасности: применяет системные политики безопасности и реализует принцип наименьшей привилегии.
  • Аудит и ведение журнала: создает события аудита безопасности и отслеживает действия, связанные с безопасностью, для соответствия требованиям и судебной экспертизы.

Компоненты архитектуры

SRM работает с несколькими ключевыми структурами данных и компонентами для применения политик безопасности.

Дескрипторы безопасности

Дескрипторы безопасности — это структуры данных, содержащие сведения о безопасности для объектов.

Сведения в дескрипторе безопасности хранятся в списке управления доступом (ACL). Windows использует списки управления доступом, чтобы определить, какие объекты имеют безопасность.

Подпрограммы мониторинга ссылок на безопасность

Система SRM предоставляет процедуры для работы драйвера с управлением доступом. Подпрограммы, предоставляющие прямой интерфейс для SRM, префиксируются буквами Se. К общим подпрограммам SRM относятся:

  • SeAccessCheck: выполняет проверку доступа к дескриптору безопасности.
  • SePrivilegeCheck: проверяет, имеет ли маркер определенные привилегии.
  • SeSinglePrivilegeCheck: проверяет наличие одной привилегии в токене доступа в контексте текущего потока.
  • SeTokenType: определяет, является ли маркер основным или маркером олицетворения.

Объявления для функций Se и связанных сущностей можно найти в различных заголовках WDK, включая ntifs.h и wdm.h.

Сценарии реализации драйвера

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

Управление доступом к устройству

Драйверы могут управлять доступом пользователей к определенным аппаратным устройствам:

  • Проверьте разрешения пользователя перед разрешением операций устройства.
  • Реализуйте различные уровни доступа для различных типов пользователей.
  • Ограничить административные операции привилегированными пользователями.

Проверка операций

Драйверы могут гарантировать, что только авторизованные процессы могут выполнять определенные операции с устройствами:

  • Проверьте контекст безопасности перед обработкой запросов ввода-вывода.
  • Проверьте наличие определенных привилегий, необходимых для конфиденциальных операций.
  • Реализуйте пользовательские политики безопасности для функций, относящихся к устройству.

Управление контекстом безопасности

Драйверы, работающие с олицетворением и различными контекстами безопасности, могут:

  • Обработать маркеры олицетворения соответствующим образом.
  • Переключение между различными контекстами безопасности по мере необходимости.
  • Поддержание границ безопасности между различными сеансами пользователей.

Принципы безопасности

SRM реализует основные принципы безопасности, необходимые для поддержания целостности системы.

Полное посредничество

Каждая попытка доступа должна пройти через монитор ссылок:

  • Отсутствуют исключения или механизмы обхода.
  • Обеспечивает согласованное применение политик безопасности во всех системных компонентах.
  • Запрещает несанкционированный доступ с помощью альтернативных путей кода.

Предоставление прав по принципу минимальных разрешений

Монитор ссылок помогает реализовать принцип наименьших привилегий:

  • У пользователей и процессов должны быть только минимальные разрешения.
  • Помогает свести к минимуму потенциальный ущерб от нарушений безопасности.
  • Реализация осуществлена посредством тщательной настройки ACL и управления привилегиями.