- PVSM.RU - https://www.pvsm.ru -
Известный гуру внутреннего устройства Windows, Alex Ionescu [1], раскрыл новые особенности ядра Windows 10, которые появились в новом билде Windows 10 Insider Preview 14332. Ранее в нашем блоге мы неоднократно упоминали Insider Preview версии Windows 10, которые используются разработчиками программ и драйверов для тестирования. Появляющиеся в них обновления затем будут выпущены для всех пользователей Windows 10 в качестве одного большого обновления этой ОС.
На сей раз речь идет об ASLR в режиме ядра (Kernel ASLR), о котором известно не так много, в отличие от его аналога [2] для Ring3 компонентов Windows. До Windows 10 14332 Windows использовала лишь частичную реализацию KASLR только [3] для системных образов (драйверов) и начиная с Windows Vista SP1. Теперь с каждой перезагрузкой Windows будет изменять виртуальные адреса размещения не только драйверов, но и, практически, всех структур ОС и компонентов, работающих в системном виртуальном адресном пространстве.
Главная цель, которую преследует Windows (как и Apple OS X, iOS, Google Android) при реализации ASLR заключается в перемещении важных структур данных и системных образов в системной части виртуального адресного пространства по новым адресам с каждой перезагрузкой. Кроме этого, структуры данных ядра Windows, которые она, в том или ином виде, может передавать в Ring3, не должны содержать прямых или косвенных указателей на объекты ядра. Это также является требованием к реализации ASLR.
Рис. По данным Ионеску, для диспетчера виртуальной памяти Windows произойдет ранее невиданное, адреса проецирования каталогов и таблиц страниц будут динамическими. Эксплойты Local Privilege Escalation (LPE), которые опирались на фиксированные адреса в системном виртуальном адресном пространстве перестанут корректно работать. Исключение составят только используемые HAL регионы памяти, а также все еще актуальные [4] указатели в PEB.GdiSharedHandleTable. Данная лазейка все еще может быть использована для частичного обхода KASLR в эксплойтах.
Начиная с Win10 14332, Windows сможет менять виртуальные адреса базирования таких критичных структур данных диспетчера виртуальной памяти как каталог таблиц страниц (PDE), таблицы страниц (PTE), адреса системных PTE, гиперпространства, базы данных PFN и т. д. В концепциях распределения виртуального адресного пространства ядра Windows всегда подразумевался базовый стартовый адрес начала таблиц страниц и вышеперечисленных структур, адреса были зашиты еще на этапе компиляции ядра и могли различаться только в случае 32-битного или 64-битного виртуального адресного пространства, а также использования PAE-адресации.
Новая мера Microsoft существенно повысит иммунитет Windows к LPE-эксплойтам, которые опираются на фиксированные виртуальные адреса в виртуальном адресном пространстве ядра. Ранее мы писали [5] про добавленную Microsoft меру по защите от LPE-эксплойтов, которая разрешит приложениям фильтровать доступ к системным сервисам Win32k ( Win32k syscalls filtering), часто используемым эксплойтами при срабатывании уязвимостей в win32k.sys. Обе эти функции станут доступны пользователям Windows 10 в новом большом обновлении ОС.
Автор: ESET NOD32
Источник [6]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/security/119638
Ссылки в тексте:
[1] Alex Ionescu: https://twitter.com/aionescu
[2] аналога: https://habrahabr.ru/company/eset/blog/206244/
[3] только: http://www.osronline.com/showthread.cfm?link=235951
[4] актуальные: https://twitter.com/NicoEconomou/status/725772271512604676
[5] писали: https://habrahabr.ru/company/eset/blog/281481/
[6] Источник: https://habrahabr.ru/post/282744/
Нажмите здесь для печати.