Защита ресурсов системы безопасности на основе виртуализации

Безопасность на основе виртуализации (VBS) использует аппаратную виртуализацию и гипервизор Windows для создания изолированной виртуальной среды, которая становится корнем доверия операционной системы, предполагающей, что ядро может быть скомпрометировано. Windows использует эту изолированную среду для размещения ряда решений безопасности, обеспечивая им значительно более высокую защиту от уязвимостей в операционной системе и предотвращая использование вредоносных эксплойтов, которые пытаются победить защиту. VBS применяет ограничения для защиты жизненно важных системных ресурсов и ресурсов операционной системы или для защиты ресурсов безопасности, таких как учетные данные пользователя, прошедшие проверку подлинности.

Дополнительные сведения о VBS см. в статье Безопасность на основе виртуализации (VBS).

VBS изменяет модель доверия

Хотя VBS значительно повышает безопасность платформы, VBS также изменяет границы доверия на компьютере с Windows. При использовании VBS гипервизор Windows управляет многими аспектами базового оборудования, которые обеспечивают основу для безопасной среды VBS. Низкоуровневая оболочка должна предполагать, что ядро Windows может быть скомпрометировано вредоносным кодом, и поэтому он должен защищать ключевые системные ресурсы от манипулирования кодом, работающим в режиме ядра, таким образом, чтобы это могло поставить под угрозу ресурсы безопасности.

Общие сведения о msr процессора

Одной из важных системных ресурсов, которые должна защищать гипервизор от вредоносного использования, являются регистры, относящиеся к модели процессора, или msr. Современные процессоры поддерживают большое количество MSR, многие из которых управляют ключевыми аспектами поведения процессора. MSR можно считывать или записывать только из кода режима ядра (то есть CPL0). Изменение параметров, контролируемых MSR, может позволить вредоносному коду в режиме ядра изменить поведение системы и позволить злоумышленнику получить контроль, нарушая безопасность. Кроме того, многие msr содержат данные о работе системы, такие как данные трассировки или диагностики, которые также могут использоваться для выявления или вычисления ресурсов безопасности. Таким образом, низкоуровневая оболочка должна выявлять и защищать от неправильного использования любых MSR, которые могут поставить под угрозу состояние безопасности VBS.

Доступ к MSR осуществляется через индекс, который является уникальным идентификатором для каждого MSR. Исторически многие MSR были созданы как архитектурные; то есть их присутствие и функции остаются архитектурны согласованными в нескольких поколениях процессоров. В этом случае для управления известным опубликованным набором возможностей можно использовать известный MSR с задокументированных индексом и определением MSR. Однако существуют также msr, которые различаются в разных процессорах, и бывают случаи, когда индексы MSR были перенацелены с течением времени, переопределив их для ссылки на новые наборы элементов управления. Это очень проблематично для программного обеспечения системного уровня, так как сложно кодировать и поддерживать знания об этих элементах управления в широко доступном коммерческом программном обеспечении.

Защита доступа к MSR

Чтобы обеспечить надежную платформу безопасности, msr должны быть защищены от неправильного использования вредоносного кода в режиме ядра. Чтобы применить это, гипервизор отслеживает и контролирует доступ ко всем MSR. Гипервизор поддерживает список известных индексов MSR и разрешает только коду режима ядра доступ к MSR или определенным битам в MSR, которые, как известно, являются разумными и безопасными. Низкоуровневая оболочка блокирует доступ к любому MSR, неизвестному низкоуровневой оболочке, или к любому MSR, известному в опубликованном определении и представляющей угрозу безопасности. В некоторых случаях может быть разрешен частичный доступ.

Если низкоуровневая оболочка заблокировала доступ к MSR, он регистрирует событие в системном журнале Windows в Просмотр событий, указав сведения о попытке доступа.

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

Просмотр событий доступа MSR

Низкоуровневая оболочка блокирует доступ к определенным MSR только при включении и запуске VBS. Чтобы определить, блокировал ли гипервизор доступ к MSR, найдите в системном журнале Windows идентификатор события 12550 из гипервизора Microsoft-Windows-Hyper-V. Сведения о записи журнала событий будут содержать следующие сведения:

Идентификатор : 12550
Описание: Hyper-V обнаружил доступ к ограниченному MSR
Сведения.

  • Msr
  • IsWrite
  • MsrValue
  • AccessStatus
  • Pc
  • ImageBase
  • ImageChecksum
  • ImageTimestamp
  • ImageName

Поддерживаемые версии Windows

VBS поддерживается во всех версиях Windows, начиная с Windows 10 и Windows Server 2016.