Специалист координационного центра CERT (CERT/CC) Уилл Дорманн (Will Dormann) обнаружил, что в ряде случаев защитный механизм Address Space Layout Randomisation (ASLR) работает некорректно, причем проблема появилась еще во времена Windows 8 и сохраняется по сей день, после релиза Windows 10.
Напомню, что ASLR (Address Space Layout Randomization или рандомизация размещения адресного пространства) – это защитный механизм, поддерживаемый практически всеми современными операционными системами, включая Windows, Linux, macOS, iOS и Android. По сути, ASLR случайным образом изменяет расположение в адресном пространстве различных важных структур данных: образов исполняемых файлов, подгружаемых библиотек, хипа и так далее. Дело в том, что зачастую для успешной реализации атаки злоумышленнику необходимо знать, где именно в адресном пространстве происходит выполнение кода того или иного приложения, а ASLR призван защитить систему от таких атак.
Actually, with Windows 7 and EMET System-wide ASLR, the loaded address for eqnedt32.exe is different on every reboot. But with Windows 10 with either EMET or WDEG, the base for eqnedt32.exe is 0x10000 EVERY TIME.
— Will Dormann (@wdormann) November 15, 2017
Conclusion: Win10 cannot be enforce ASLR as well as Win7! pic.twitter.com/Jp10nqk1NQ
Исследователь CERT/CC объясняет, что начиная с релиза Windows 8 общесистемная имплементация ASLR (system-wide mandatory), так же известная как принудительный ALSR (Force ASLR), имеет нулевую энтропию, то есть, по сути, рандомизация размещения адресного пространства не производится, и релокация исполняемых файлов осуществляется по одному и тому же адресу. Напомню, что данная функция активируется через EMET, а с недавних пор, после выхода Windows 10 Fall Creators Update, она стала частью Windows Defender Exploit Guard. Force ASLR призвана осуществлять рандомизацию даже в тех случаях, когда поддержка ASLR не включена для конкретного приложения.
Специалисты Microsoft уже ответили на опубликованный Дорманном доклад, сообщив, что тот обнаружил проблему, которую вряд ли можно назвать полноценной уязвимостью. Дело в том, что, по словам инженеров Microsoft, все отнюдь не так плохо. ASLR в Windows 8 и 10 работает как должно в 11 случаях из 12, а описанные исследователем проблемы могут возникать крайне редко, исключительно в силу нюансов конфигурации. Свои слова инженеры Microsoft подкрепили наглядной иллюстрацией: в таблице ниже проблема обозначена желтым цветом.
Представители Microsoft согласились с предложенными Дорманном вариантами решения проблемы, и описывают в блоге шаги, которые могут предпринять пользователи. К примеру, пока не выйдет официальный патч, можно внести небольшие поправки в системный реестр.
The system-wide mandatory ASLR design starting with Windows 8 is surely a feature.
— Will Dormann (@wdormann) November 21, 2017
The fact that neither EMET nor Windows Defender Exploit Guard took this design change into account sounds like a bug to me.https://t.co/d0KIJiin97
Until fixed, set registry manually if you want it pic.twitter.com/eXftGhWcrZ