BrokenType — это набор инструментов, предназначенных для проверки надежности и безопасности программного обеспечения для растеризации шрифтов, особенно кодовых баз, склонных к проблемам с повреждением памяти (написанных на C/C++ и подобных языках). Он состоит из следующих компонентов:
Описание и инструкции по использованию утилит можно найти в соответствующих файлах README.
Программы и скрипты были успешно использованы в 2015-2019 годах для обнаружения и сообщения о 20 уязвимостях в коде растеризации шрифтов, присутствующих в ядре Windows (драйверы win32k.sys
и atmfd.dll
), 19 уязвимостях в пользовательской библиотеке Microsoft Uniscribe, а также 9 ошибок в библиотеке FontSub.dll
и несколько проблем в DirectWrite. Усилия по фаззингу обсуждались в следующих сообщениях блога Google Project Zero:
и доклад «Обратное проектирование и использование растеризаторов шрифтов», прозвучавший в сентябре 2015 года на конференции 44CON в Лондоне. Двумя наиболее заметными проблемами, обнаруженными этим инструментом, были CVE-2015-2426 и CVE-2015-2455 — коллизия ошибки OTF с эксплойтом, обнаруженным в утечке Hacking Team, и коллизия ошибки TTF с эксплойтом KeenTeam для pwn2own 2015.
Это не официальный продукт Google.