Злоумышленники могут понизить уровень компонентов ядра Windows, чтобы обойти такие функции безопасности, как Driver Signature Enforcement, и развернуть руткиты на полностью исправленных системах.
Это возможно, если взять под контроль процесс обновления Windows и внедрить устаревшие, уязвимые программные компоненты на обновленную машину без изменения статуса полностью исправленной операционной системы.
Понижение версии Windows
Исследователь безопасности SafeBreach Алон Левиев сообщил о проблеме захвата обновлений, но Microsoft отвергла ее, заявив, что она не пересекает определенную границу безопасности, хотя и возможна путем получения права на выполнение кода ядра от имени администратора.
В этом году на конференциях по безопасности BlackHat и DEFCON Леваев продемонстрировал, что атака осуществима, но проблема не до конца устранена, что оставляет открытой дверь для атак на понижение/откат версий.
Исследователь опубликовал инструмент под названием Windows Downdate, который позволяет создавать пользовательские даунгрейды и подвергать, казалось бы, полностью обновленную целевую систему уже исправленным уязвимостям через устаревшие компоненты, такие как DLL, драйверы и ядро NT.
«Я смог сделать полностью пропатченную машину Windows восприимчивой к прошлым уязвимостям, превратить исправленные уязвимости в неисправленные и сделать термин «полностью пропатченная» бессмысленным на любой машине Windows в мире», - Алон Левиев.
Несмотря на то, что за прошедшие годы безопасность ядра значительно улучшилась, Леваеву удалось обойти функцию Driver Signature Enforcement (DSE), показав, как злоумышленник может загрузить неподписанные драйверы ядра, чтобы развернуть вредоносное ПО rootkit, которое отключает средства контроля безопасности и скрывает действия, которые могли бы привести к обнаружению компрометации.
«В последние годы были внесены значительные усовершенствования для усиления безопасности ядра, даже если предположить, что оно может быть скомпрометировано с правами администратора», - говорит Левиев.
Хотя новые средства защиты усложняют компрометацию ядра, «возможность понижения уровня компонентов, находящихся в ядре, значительно упрощает задачу злоумышленников», - поясняет исследователь.
Левиев называет свой метод обхода DSE «ItsNotASecurityBoundary», поскольку он является понижением эксплойта ItsNotASecurityBoundary, использующего ложные дефекты файловой неизменяемости, новый класс уязвимостей в Windows, выявленный Габриэлем Ландау из Elastic как способ выполнения произвольного кода с привилегиями ядра.
Нацеливание на ядро
В новом исследовании, опубликованном сегодня, Левиев показывает, как злоумышленник с правами администратора на целевой машине может использовать процесс Windows Update для обхода защиты DSE путем понижения уровня исправленного компонента даже на полностью обновленных системах Windows 11.
Атака возможна путем замены 'ci.dll, файла, отвечающего за применение DSE, на непропатченную версию, которая игнорирует подписи драйверов, что позволяет обойти защитные проверки Windows.

Как только компонент понижается до уязвимой версии, машина должна быть перезагружена, как и во время легитимного процесса обновления.
На видео ниже исследователь демонстрирует, как он вернул патч DSE с помощью атаки на понижение версии, а затем использовал компонент на полностью пропатченной машине с Windows 11 23H2.
Левиев также описывает методы отключения или обхода системы Microsoft Virtualization-based Security (VBS), которая создает изолированную среду для Windows, чтобы защитить важные ресурсы и средства безопасности, такие как механизм целостности кода ядра (skci.dll) и аутентифицированные учетные данные пользователя.
VBS обычно полагается на такие средства защиты, как блокировки UEFI и конфигурации реестра, чтобы предотвратить несанкционированные изменения, но ее можно отключить, если не настроена максимальная безопасность (флаг «Обязательно»), выполнив целевую модификацию ключей реестра.
При частичной активации ключевые файлы VBS, такие как 'SecureKernel.exe', могут быть заменены поврежденными версиями, которые нарушают работу VBS и открывают путь для обхода «ItsNotASecurityBoundary», а также для замены 'ci.dll'.

Работа Леваева показывает, что атаки на понижение уровня все еще возможны по нескольким путям, даже если они иногда требуют значительных привилегий.
Готовится исправление
В то время как уязвимости, использованные для атаки на понижение статуса, были представлены на BlackHat и DEFCON (т. е. CVE-2024-21302 и CVE-2024-38202), Microsoft все еще предстоит решить проблему захвата Windows Update.
«[...] Захват Windows Update, о котором также сообщили в Microsoft, так и остался неисправленным, поскольку он не пересекал определенную границу безопасности. Получение возможности выполнения кода ядра от имени администратора не считается пересечением границы безопасности (не является уязвимостью)», - отмечает Левиев.
Пока Microsoft не исправит проблему, исследователь подчеркивает, что решения безопасности должны отслеживать и обнаруживать атаки на понижение версии, поскольку они по-прежнему представляют значительный риск для организаций.
В заявлении для BleepingComputer представитель Microsoft сообщил, что компания «активно разрабатывает меры по защите от этих рисков».
Однако этот процесс включает в себя «тщательное расследование, разработку обновлений для всех затронутых версий и тестирование совместимости», чтобы обеспечить защиту клиентов и свести к минимуму сбои в работе.
Компания разрабатывает обновление системы безопасности, которое устраняет проблему путем отзыва устаревших, не обновленных системных файлов VBS. Пока неясно, когда обновление станет доступным, поскольку проблема сложная и требует всестороннего тестирования, чтобы избежать сбоев в интеграции или регрессий.