В Windows 7-10 активно эксплуатируется 0day с удалённым исполнением кода. Патча нет
Обработка шрифтов OpenType (OTF) происходит на уровне ядра Windows
Во всех версиях Windows (7, 8.1, 10, Server 2008–2019) обнаружена критическая уязвимость, допускающая удалённое исполнение кода в полностью пропатченной системе. Microsoft вчера опубликовала предупреждение о безопасности ADV200006. Об уязвимости приходится сообщать до выпуска патча, потому что она уже активно эксплуатируется злоумышленниками. Пока её заметили только в «ограниченных целевых атаках», пишет Microsoft.
TL; DR:
- Злоумышленники могут воспользоваться уязвимостью, встроив в документ шрифт Type 1 и убедив пользователей открыть его.
- Уязвимость скрывается в библиотеке Windows Adobe Type Manager ATMFD.DLL (в последних версиях ATMLIB.DLL), которая работает на уровне ядра ещё со времён NT (далеко не первый баг в этой библиотеке).
- Отключение службы Windows WebClient блокирует то, что Microsoft считает наиболее вероятным вектором удалённой атаки, а именно атаку через клиентскую службу Web Distributed Authoring and Versioning (WebDAV).
- Локальные аутентифицированные пользователи могут запускать вредоносные программы с эксплуатацией уязвимости (эскалация привилегий).
В предупреждении Microsoft сказано, что «в поддерживаемых версиях Windows 10 успешная атака может привести только к выполнению кода в контексте песочницы AppContainer с ограниченными привилегиями и возможностями».
Microsoft не сообщает, насколько успешно работают эксплоиты в упомянутых целевых атаках и что конкретно они делают, запускают ли полезную нагрузку или просто пытаются это сделать. Часто встроенная защита в Windows не позволяет эксплоитам работать так, как задумано. В сообщении также не упоминается о количестве и географическом расположении атак.
Пока патч не вышел, Microsoft предлагает использовать один или несколько обходных путей:
- Отключить области предварительного просмотра в Проводнике Windows. В русскоязычной версии они называются «Область просмотра» и «Область сведений» (Preview Pane и Details Pane).
Это не позволит проводнику автоматически отображать шрифты Type 1. Хотя такой способ предотвратит некоторые типы атак, но не помешает локальному аутентифицированному пользователю запустить специально созданную программу с эксплоитом.
- Отключить службу WebClient (Веб-клиент). Данная служба позволяет приложениям Windows создавать, сохранять и изменять файлы, находящиеся на серверах WebDAV, и обычно её можно безболезненно отключить.
Это наиболее вероятный вектор атаки, по оценке Microsoft. Опять же, отключение службы не помешает локально запустить эксплоит.
- Переименовать ATMFD.DLL или, как вариант, исключить файл из реестра.
Скрипт по переименованию файла (измените название на ATMLIB.DLL в Windows 10):
cd "%windir%\system32"
takeown.exe /f atmfd.dll
icacls.exe atmfd.dll /save atmfd.dll.acl
icacls.exe atmfd.dll /grant Administrators:(F)
rename atmfd.dll x-atmfd.dll
cd "%windir%\syswow64"
takeown.exe /f atmfd.dll
icacls.exe atmfd.dll /save atmfd.dll.acl
icacls.exe atmfd.dll /grant Administrators:(F)
rename atmfd.dll x-atmfd.dll
Переименование ATMFD.DLL вызовет проблемы в приложениях, которые используют встроенные шрифты OpenType, так что некоторые приложения перестанут работать. Microsoft также предупреждает: ошибки при внесении изменений в реестр чреваты серьёзными проблемами, которые могут потребовать полной переустановки Windows.
Обычно фраза «ограниченные целевые атаки» означает операции по государственному заказу той или иной страны. Такие атаки зачастую ограничены не более чем десятком целей, что затрудняет их обнаружение. Но теперь после разглашения информации есть вероятность массовой эксплуатации уязвимости, так что есть смысл предусмотреть защитные меры, пока не вышел патч.
Библиотека ATMFD.DLL является частью ядра Windows со времён NT. Такое решение было принято, вероятно, для повышения производительности и улучшения стабильности по сравнению «адом библиотек» в Windows 3.11, которая постоянно вылетала с ошибками.
В Windows Vista графический стек начали постепенно выносить из ядра. Первым вынесли GDI, из-за чего в версии Windows Vista пропало аппаратное ускорение GDI. В Windows 7 аппаратное ускорение вернули, что потребовало частичного возвращения GDI в ядро. По причинам безопасности этот факт держался в секрете, но о нём стало известно после появления эксплоитов GDI.
Судя по всему, разработчики Windows понимают необходимость выноса графического стека из ядра. Процесс идёт в правильном направлении, хотя и медленно.