Устранение уязвимости обхода ASLR в Windows
Добрый день! Уважаемые читатели и гости IT блога Pyatilistnik. В ранних публикациях я вас знакомил с Dell PERC H330 Adapter на серверах PowerEdge R740/750, а так же подробным образом разобрал шаги по созданию на нем RAID групп несколькими методами. Двигаемся далее и сегодня я хочу с вами поделиться опытом по устранению одной уязвимости CVE-2015-6161 связанную со всеми современными операционными системами Windows, которая позволяет делать обход функции безопасности ASLR в браузерах Internet Explorer и MS Edge.
Что такое ASLR и в чем проблема CVE-2015-6161
ASLR (Address Space Layout Randomization) — это технология безопасности, используемая в операционных системах и приложениях, включая браузеры, такие как Microsoft Edge. Она предназначена для затруднения эксплуатации уязвимостей в программном обеспечении.
ASLR работает, случайным образом располагая важные компоненты программы, такие как библиотеки, стек и кучи, в разных местах памяти при каждом запуске приложения. Это делает сложнее для злоумышленников предсказать адреса, по которым находятся эти компоненты, что снижает вероятность успешной атаки, например, через переполнение буфера.
CVE-2015-6161 — это уязвимость в Windows, связанная с обработкой объектов в памяти. Она может позволить удалённому злоумышленнику выполнить произвольный код на целевой системе, если пользователь откроет специально подготовленный файл или посетит вредоносный веб-сайт. Уязвимость возникает из-за неправильной обработки объектов в памяти, что может привести к повреждению памяти и выполнению произвольного кода. Это может быть использовано для установки программного обеспечения, просмотра, изменения или удаления данных, а также для создания новых учетных записей с полными правами.
Сам обход технологии Address Space Layout Randomization не позволяет злоумышленникам выполнить некий произвольный код, но если это совместить с другой уязвимость, которая позволяет выполнять удаленный код, то в такой химере система будет поражена. Ждя того, что злоумышленник мог применить данную дыру, от пользователя необходим интеративный или удаленный RDP вход, в его рамках запустить уязвимую версию Microsoft Edge и перейти на вредоносный сайт
Как устранить уязвимость ASLR
Хоть Microsoft и выпустила обновление безопасности (Например, в Windows 10 KB3116869), их все же недостаточно, чтобы гарантировать 100% защиту, вам необходимо сделать дополнительные действия. Если у вас доменная инфраструктура Active Directory, то у вас для централизованного решения должна использоваться групповая политика на уровне домена, работающая по умолчанию, как вариант SCCM при его наличии.
Устранение CVE-2015-6161 с помощью групповой политики
Запустите редактор групповой политики, выберите нужную OU, кликните по ней правым кликом и выберите создать новую политику.
Совет: Всегда тестируйте новые политики на пилотной группе. Если политика планируется на весь домен, то ее можно создать в самом верху, единственное поменять там при создании фильтрацию, удалив там группу прошедшие проверку и заменив на свою, в которую вы наполните нужные объекты
Задайте нужно имя для вашей политики исходя из ваших шаблонов, в моем примере это GPO_ROOT_ASLR_CVE-2015-6161
Перейдите к ее редактированию.
Нам необходимо создать два ключа реестра, что включить функцию защиты обработчика исключений User32. Перейдите в раздел:
Конфигурация компьютера - Настройка - Конфигурация Windows - Реестр (Computer Configuration - Preferences - Windows Settings - Registry)
Щелкаем правым кликом по пустой области и выбираем создать новый объект "New - Registry Item".
- Action - Create (Нам нужно создать ключ и раздел)
- Hive - HKEY_LOCAL_MACHINE (Туту задается нужный куст)
- Key Path - SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_ALLOW_USER32_EXCEPTION_HANDLER_HARDENING
- Value Name - iexplore.exe (Имя конечного ключа)
- Value Type - REG_DWORD
- Value data - 1
Полный путь будет такой в реестре - HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_ALLOW_USER32_EXCEPTION_HANDLER_HARDENING\iexplore.exe
Далее создадим второй ключ:
- Action - Create (Нам нужно создать ключ и раздел)
- Hive - HKEY_LOCAL_MACHINE (Туту задается нужный куст)
- Key Path - SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_ALLOW_USER32_EXCEPTION_HANDLER_HARDENING
- Value Name - iexplore.exe (Имя конечного ключа)
- Value Type - REG_DWORD
- Value data - 1
Полный путь будет такой в реестре - HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_ALLOW_USER32_EXCEPTION_HANDLER_HARDENING\iexplore.exe
Далее вам необходимо дождаться фонового обновления групповых политик или же выполнить принудительное обновление. Выборочно проверьте, что в реестре Windows появились нужные ключи. Если политика не отработала, то изучайте почему не применилась GPO.
Устранение CVE-2015-6161 с помощью PowerShell
Если вам необходимо точечно создать данные ключи. то лучше всего воспользоваться PowerShell. Откройте ISE в режиме администратора и введите команды:
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_ALLOW_USER32_EXCEPTION_HANDLER_HARDENING" -Name "iexplore.exe" -Value 1 -ErrorAction SilentlyContinue
Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_ALLOW_USER32_EXCEPTION_HANDLER_HARDENING" -Name "iexplore.exe" -Value 1 -ErrorAction SilentlyContinue
Используя эти команды. вы можете создать PowerShell скрипт, который можно запускать через SCCM.
Дополнительные ссылки
- https://docs.microsoft.com/en-us/security-updates/securitybulletins/2015/ms15-124
- https://docs.microsoft.com/en-us/security-updates/securitybulletins/2015/ms15-125
- https://support.microsoft.com/kb/3125869