Одним из способов атаки на Windows машины, который получает все более широкое распространение, является эксплуатация уязвимостей в драйвере шрифтов Windows через загрузку и выполнение пользователем специально сформированного файла шрифта. Чтобы реализовать такую атаку – злоумышленнику достаточно вынудить пользователя открыть специально сконструированный документ, веб-страницу или запустить специальное приложение (безопасное само по себе), которое загружает шрифт с вредоносным кодом из внешнего источника. В Windows 10 появилась встроенная возможность запретить загрузку и выполнение «сторонних» шрифтов, т.е. тех, которые не уставлены в системе и не располагаются в каталоге %WINDIR%\Fonts.
Для управления загрузкой сторонних шрифтов в Windows 10 появился отдельный параметр групповой политики, который находится в разделе консоли gpedit.msc: Computer Configuration -> Administrative Templates -> System -> Mitigation Options . Параметр называется Untrusted Font Blocking. Доступны 3 режима работы данной политики:
- Block untrusted fonts and log events – полностью запретить приложениям загружать сторонние шрифты из любой папки, кроме %windir%Fonts и записывать всю информацию в журнал
- Do not block untrusted fonts – сторонние шрифты не блокируются (значение по умолчанию)
- Log events without blocking untrusted fonts – так называемый режим аудита, когда загрузка и установка сторонних шрифтов не блокируется, но информация о шрифте и установившем его приложении записывается в журнал
В домашних версиях Windows 10 Home (в которых отсутствует редактор групповых политик), управление этой защитной функцией возможно только через реестр. Для этого в ветке реестре HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Kernel\ нужно создать параметр типа QWORD (64-bit) с именем MitigationOptions. Параметру нужно задать одно из следующих значений:
- Блокировка шрифтов включена – 1000000000000
- Отключен – 2000000000000
- Режим аудита – 3000000000000
После внесения изменений нужно перезагрузить систему.
Если нужно, чтобы политика запрета загрузки шрифтов не действовала на конкретное приложение, его можно добавить в исключения. К примеру, чтобы Outlook корректно отображал письма со встроенными шрифтами, нужно в ветке реестра HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options создать подключ с именем исполняемого файла приложения. В нашем случае это будет outlook.exe.
При включении политики аудита, все связанные события находится в разделе системного журнала приложения Application-> Service Logs -> Microsoft -> Windows -> Win32k ->Operational. Нас интересуют события с EventID 260
Функцией блокировка сторонних шрифтов также можно управлять через Microsoft EMET 5.5. Для этого в интерфейсе EMET нужно включить опцию Block Untrusted Fonts.