В прошлых публикациях, посвященных улучшениям безопасности Windows 10 [1,2,3,4], я неоднократно хвалил Microsoft за эти полезные нововведения. Новые механизмы безопасности помогают более эффективно бороться с эксплойтами. Пока очевидно, что Microsoft все больше делает ставку на новые технологии защиты от эксплойтов, основанные на виртуализации Virtualization Based Security, при этом добавляя более современные метрики безопасности и вынося выполнение критических по безопасности операций в отдельные виртуальные машины с высоким уровнем привилегий.
На сей раз речь пойдет о безопасности прошивок UEFI. Известный гуру внутреннего устройства Windows Alex Ionescu опубликовал у себя в твиттере скриншот дополнительных требований безопасности UEFI, которые должны поддерживаться прошивками начиная с Windows 10 1703. Как известно, эта версия Windows 10 и может получить название очередного существенного обновления Redstone 2.
Не секрет, что сама прошивка, ее компоненты и драйверы в современных ПК являются почти мини-ОС, которая получает управление еще до передачи упropравления загрузчику Windows. Столь стремительное распространение UEFI подталкивает security-ресерчеров к детальному поиску уязвимостей в прошивках и их драйверах, а производителей BIOS/UEFI к пересмотру механизмов их защиты. Злоумышленнику достаточно воспользоваться уязвимостью только в одном компоненте прошивки, чтобы скомпрометировать такие продвинутые VBS- технологии защиты Windows 10 как Device Guard, Credential Guard, Windows Defender Application Guard.
Одним из подобных эксплойтов, который способен компрометировать все указанные выше технологии защиты Windows 10, основанные на виртуализации (VBS) является ThinkPwn, о котором я писал здесь. ThinkPwn использует уязвимость в драйвере прошивки для того, чтобы исполнить свой код на самом привилегированном уровне — SMM.
Рис. Абстрактные уровни привилегий исполнения кода. Высший относится к Intel ME, далее SMM и гипервизор. Компрометация UEFI-прошивки позволяет компрометировать гипервизор и основанные на нем механизмы защиты (Device Guard, Credential Guard, Windows Defender Application Guard).
Очевидно, что Microsoft учла вышеприведенные причины и добавила новые требования безопасности к прошивкам UEFI. Первое требование относится к фактической реализации DEP для прошивки. Т. е. страницы памяти с данными прошивки будут помечаться как NX (non-executable), что позволит исключить исполнение кода из ненадлежащих регионов памяти.
VBS will enable No-Execute (NX) protection on UEFI runtime service code and data memory regions. UEFI runtime service code must support read-only page protections, and UEFI runtime service data must not be executable.
Вторая функция безопасности относится к защите от эксплуатации уязвимостей, связанных с системной таблицей ACPI и драйверов (сервисов) UEFI. Для этого используется новая системная структура данных под названием Windows SMM Security Mitigations Table (WSMT).
The Windows SMM Security Mitigations Table (WSMT) specification contains details of an Advanced Configuration and Power Interface (ACPI) table that was created for use with Windows operating systems that support Windows virtualization-based security (VBS) features.
Отметим, что в обоих случаях Microsoft подчеркивает, тот факт, что введенные методы безопасности обезопасят VBS от компрометации через уязвимости в прошивке.
Reduces the attack surface to VBS from system firmware
Автор: