Могут ли шрифты TrueType содержать вредоносный код?

Я искал информацию об этом и не мог найти что-нибудь настолько твердое. Я использовал инструмент TTX в библиотеке fonttools, чтобы декомпилировать шрифт в формат XML, но не смог ничего извлечь из файла.

Возможно ли, что TrueType Font может содержать исполняемый код, который может быть потенциально вредоносным?

3 ответа

Согласно записи в Википедии о TrueType, во время рендеринга используется язык подсказок. Этот язык подсказок обрабатывается виртуальной машиной, но он позволяет злонамеренному коду подсказок использовать уязвимости в различных реализациях этой виртуальной машины.

Обратите внимание, что некорректные невыполненные данные могут привести к переполнению буфера и разрешить выполнение кода там, где он не должен, поэтому тот факт, что формат данных не содержит какого-либо типа исполняемого или виртуально исполняемого кода, не означает, что нет уязвимости, которые могут привести к удаленному выполнению кода.

Ну... не прямо, но совершенно определенно косвенно.

Существует тип вредоносного ПО, который формирует фактические байты своего исполняемого файла с использованием файла кода, который уже присутствует в целевой системе. Этот существующий файл кода должен быть одинаковым в каждой системе, которая должна быть заражена. Единственный код в поставляемой вредоносной программе - это код, который собирает байты, зная позицию, байт на байт, кода, который будет построен.

Например, если файл кода имеет байт 0xF3 в позиции 105, а следующий байт, необходимый для сборки вредоносного кода, - 0xF3, то, что закодировано вредоносной программой сборки, - "105", и он знает, как получить фактический байт кода из файл.

Итак, какой файл одинаков в большинстве / всех системах Windows, например? Оказывается, файл шрифта Wingdings не изменился в Windows, возвращаясь к тому, что собирается иметь любая современная система.

И я не мечтал об этом - все это описано здесь, с примерами кода..

Определенно ДА. В ссылке (и связанных ссылках) говорится, что шрифты TrueType предназначены для содержания кода для виртуальной машины, что в некоторых (большинстве) версий Windows код выполнялся (виртуальной машиной) в контексте ядра. Использование виртуальной машины должно изолировать код шрифта от остальной части машины, но были выявлены уязвимости.

Моя точка зрения в целом негативная, но в качестве положительного момента я цитирую (со указанной страницы), что «Windows 10 Aniversary Update теперь анализирует шрифты в режиме USER», поэтому суперпользователь может быть в относительной безопасности, в том смысле, что если шрифты используются только пользователями без привилегий, операционная система не имеет прямого доступа к шрифту, но я не обещаю никакой безопасности :-)

Другие вопросы по тегам