Microsoft удосконалює механізми безпеки ядра Windows 10

Відомий гуру внутрішнього пристрою Windows, Alex Ionescu, розкрив нові особливості ядра Windows 10, які з'явилися у новому билде Windows 10 Insider Preview 14332. Раніше у нашому блозі ми неодноразово згадували Insider Preview версії Windows 10, які використовуються розробниками програм і драйверів для тестування. З'являються в них оновлення потім будуть випущені для всіх користувачів Windows 10 в якості одного великого оновлення цієї ОС.



Цього разу мова йде про ASLR в режимі ядра (Kernel ASLR), про який відомо не так багато, на відміну від його аналога для Ring3 компонентів Windows. До Windows 10 14332 Windows використовувала лише часткову реалізацію KASLR тільки для системних образів (драйверів) і починаючи з Windows Vista SP1. Тепер з кожною перезавантаженням Windows буде змінювати віртуальні адреси розміщення не тільки драйверів, але й, практично, всіх структур ОС і компонентів, що працюють в системному віртуальному адресному просторі.

Головна мета, яку переслідує Windows (як і Apple OS X, iOS, Google Android) при реалізації ASLR полягає в переміщенні важливих структур даних і системних образів в системній частині віртуального адресного простору за новими адресами з кожної перезавантаженням. Крім цього, структури даних ядра Windows, які вона в тому чи іншому вигляді, може передавати в Ring3, не повинні містити прямих або непрямих покажчиків на об'єкти ядра. Це також є вимогою до реалізації ASLR.


Рис. За даними Іонеску, диспетчер віртуальної пам'яті Windows станеться раніше небачене, адреси проектування каталогів і таблиць сторінок будуть динамічними. Експлойти Local Privilege Escalation (LPE), які спиралися на фіксовані адреси в системному віртуальному адресному просторі перестануть коректно працювати. Виняток становитимуть тільки використовувані HAL регіони пам'яті, а також все ще актуальні покажчики PEB.GdiSharedHandleTable. Ця лазівка все ще може бути використана для часткового обходу KASLR в эксплойтах.

Починаючи з Win10 14332, Windows зможе змінювати віртуальні адреси базування таких критичних структур даних диспетчера віртуальної пам'яті як каталог таблиць сторінок (PDE), таблиці сторінок (PTE), адреси системних PTE, гіперпростору, бази даних PFN і т. д. В концепціях розподілу віртуального адресного простору ядра Windows завжди мався на увазі базовий стартовий адресу початку таблиці сторінок і перерахованих вище структур, адреси були зашиті ще на етапі компіляції ядра і могли відрізнятися тільки у разі 32-bit або 64-бітного віртуального адресного простору, а також використання PAE-адресації.

Нова міра Microsoft істотно підвищить імунітет Windows до LPE-эксплойтам, які спираються на фіксовані віртуальні адреси у віртуальному адресному просторі ядра. Раніше ми писали про додану Microsoft міру захисту від LPE-експлойтів, яка дозволить додатками фільтрувати доступ до системних сервісів Win32k ( Win32k syscalls filtering), часто використовуваним експлойта при спрацьовуванні вразливостей в win32k.sys. Обидві ці функції стануть доступні користувачам Windows 10 у новому великому оновленні ОС.

Джерело: Хабрахабр
  • avatar
  • 0

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.