Отрицательное обновление: В Windows можно вернуть любые уязвимости
Эксперт по безопасности продемонстрировал, как с помощью Windows Update подменять ключевые компоненты операционной системы на устаревшие и уязвимые. В Microsoft поначалу попытались отмахнуться, но потом передумали.
Microsoft не видит проблемы
Даже полностью обновленную систему Windows 11 можно скомпрометировать на самом глубоком уровне и установить руткиты на уровне ядра, если злоумышленник получает доступ к процессу обновлений системы: как выяснилось, если подменить отдельные программные компоненты их более старыми и уязвимыми вариантами, Windows все равно будет считать себя полностью обновленной.
Возможность такой атаки обнаружил и описал эксперт компании SafeBreach Алон Левиев (Alon Leviev). По его утверждению, злоумышленник в конечном итоге может получить возможность запускать код на уровне ядра с административными полномочиями.
В Microsoft, однако, отнеслись к открытию Левиева без должного внимания, заявив, что сценарий «не выходит за рамки безопасности».
Левиев продемонстрировал свои выкладки на конференциях BlackHat и DEFCON, а также представил инструмент специально для «даунгрейда» Windows – то есть отката отдельных компонентов до небезопасных версий и восстановления уже исправленных уязвимостей. Все это осуществляется с помощью DLL-библиотек, драйверов и самого ядра NT.
В последние годы Microsoft существенно улучшила безопасность ядра, однако, Левиев продемонстрировал, как можно обойти, например, систему проверки подписей драйверов (Driver Signature Enforcement – DSE). Это открывает возможность для установки неподписанных драйверов ядра и установки руткитов, отключающих защиту и скрывающих следы любой подозрительной активности.
Для реализации атаки, однако, нужны административные привилегии в системе. При их наличии, как показал опыт Левиева, злоумышленник может заменить файл ci.dll, который отвечает за реализацию защитных функций DSE, на неисправную версию, которая будет игнорировать цифровые подписи драйверов.
После «даунгрейда» машину потребуется перезагрузить, как при обычной установке обновлений.
Незаменимого нет
Кроме того, Левиев описал возможность обходить специализированные средства защитной виртуализации (Virtualization-based Security), которые создают изолированную среду для обеспечения безопасности ключевых ресурсов операционной системы, в том числе механизм проверки целостности ядра (skci.dll) и реквизитов авторизованного пользователя.
VBS обычно полагается на другие защитные механизмы, такие как UEFI и ключи реестра, которые предотвращают несанкционированные изменения. Но их можно отключить через тот же реестр, если администратор не выставил максимальный (Mandatory) уровень защиты. Если такой отметки не стоит, ключевые файлы VBS, например, SecureKernel.exe, также можно подменить скомпрометированной версией, которая нарушит нормальное функционирование VBS и откроет возможность для подмены и ci.dll.
Пока Microsoft не исправит проблему, считает исследователь, подобные атаки должны отслеживать антивирусы и другие защитные инструменты.
«По существу, возможность подменять ключевые компоненты без сопротивления со стороны операционной системы делает практически бессмысленными любые защитные инструменты в ней, – указывает Анастасия Мельникова, директор по информационной безопасности компании SEQ. – Обнадеживает лишь то, что необходимо соблюдение ряда условий, одно из которых – административные права; но комбинирование уязвимостей никто не отменял».
Microsoft увидела проблему
После выхода материала об этом в издании Bleeping Computer, пресс-служба Microsoft заявила, что в компании все-таки «активно прорабатывают варианты решения проблемы», однако это еще потребует «глубокого расследования, изменения подходов к разработке всех затронутых версий и тестирования на совместимость», чтобы минимизировать негативное воздействие на пользователей.
Когда исправление выйдет, пока не известно, но очевидно, что это случится не в ближайшие дни.