четверг, 13 октября 2016 г.

Win10 теперь защищена от обнуления SecurityDescriptor

В Win10 закрыли еще один вектор атаки, основанный на обнулении SecurityDescriptor'а у процесса с высокими привилегиями. Сама атака описана довольно давно в https://media.blackhat.com/bh-us-12/Briefings/Cerrudo/BH_US_12_Cerrudo_Windows_Kernel_WP.pdf.

В Win10 добавили несколько проверок, которые задействуются при доступе к securable object'ам и теперь, при обнуленном SecurityDescriptor'е, ОС будет падать в BSOD с кодом BAD_OBJECT_HEADER.

Нужно заметить, что атака описанная на BH была довольно эффективной, т.к. никакие защитные механизмы ОС типа SMEP эту самую ОС от данной атаки никак не защищали, так как никакой payload не выполнялся. Впрочем, данный тип атаки основывался на возможности записи NULL в любую область памяти ядра. Соответственно, подобную защиту можно будет обойти при возможности писать любое значение в память ядра простым обнулением DACL в SecurityDescriptor'е.