EvilFontTool: когда документ показывает человеку одно, а агент извлекает другое
EvilFontTool — инструмент для атак с подменой глифов (символов). В HTML и DOCX кодовые символы остаются прежними, но шрифт рисует другие; PDF-режим проекта добавляет отдельный невидимый текстовый слой поверх видимого изображения. Человек видит безопасный текст, а DOM-парсер, pdftotext, буфер обмена или LLM-пайплайн получает другую строку. Репозиторий и демо.
Для AI-агентов это даёт реалистичные сценарии:
▪️Браузерный агент. На странице базы знаний визуально показана обычная команда настройки. Агент читает DOM или копирует блок в терминал и получает изменённую команду — например, с загрузкой скрипта с внешнего адреса.
▪️Агент службы поддержки. Вложенный DOCX выглядит как инструкция по диагностике, но извлечение текста отдаёт другие аргументы или дополнительные строки. Агент с доступом к PowerShell или SSH запускает их на рабочей станции.
▪️HR агент или ИБ триажа. PDF выглядит нейтрально для человека, но невидимый слой меняет классификацию, добавляет инструкции игнорировать правила проверки или маскирует опасный контекст. Модель, читающая изображение, и модель, получающая текстовый слой, могут прийти к разным выводам.
Сам шрифт не даёт RCE: нужен агент, который доверяет непроверенному содержимому и имеет права на побочное действие. Защита должна сравнивать визуальный и извлечённый текст, считать встроенные шрифты и невидимые слои PDF сигналами риска, а запуск команд, сетевые обращения и работу с секретами оставлять за явным подтверждением. В журнале полезно сохранять обе версии: что показано пользователю и что получил агент.
Для агентных систем "прочитать документ"— недостаточная гарантия: нужно контролировать представление, которое попадает в контекст и превращается в вызов инструмента.
Я перечислил только малую часть сценариев, которые в моей голове звучали рационально и реалистично. Советую поизучать как оно описано в репе и на сайте
🌚 @poxek_ai / Чат канала
EvilFontTool — инструмент для атак с подменой глифов (символов). В HTML и DOCX кодовые символы остаются прежними, но шрифт рисует другие; PDF-режим проекта добавляет отдельный невидимый текстовый слой поверх видимого изображения. Человек видит безопасный текст, а DOM-парсер, pdftotext, буфер обмена или LLM-пайплайн получает другую строку. Репозиторий и демо.
Для AI-агентов это даёт реалистичные сценарии:
▪️Браузерный агент. На странице базы знаний визуально показана обычная команда настройки. Агент читает DOM или копирует блок в терминал и получает изменённую команду — например, с загрузкой скрипта с внешнего адреса.
▪️Агент службы поддержки. Вложенный DOCX выглядит как инструкция по диагностике, но извлечение текста отдаёт другие аргументы или дополнительные строки. Агент с доступом к PowerShell или SSH запускает их на рабочей станции.
▪️HR агент или ИБ триажа. PDF выглядит нейтрально для человека, но невидимый слой меняет классификацию, добавляет инструкции игнорировать правила проверки или маскирует опасный контекст. Модель, читающая изображение, и модель, получающая текстовый слой, могут прийти к разным выводам.
Сам шрифт не даёт RCE: нужен агент, который доверяет непроверенному содержимому и имеет права на побочное действие. Защита должна сравнивать визуальный и извлечённый текст, считать встроенные шрифты и невидимые слои PDF сигналами риска, а запуск команд, сетевые обращения и работу с секретами оставлять за явным подтверждением. В журнале полезно сохранять обе версии: что показано пользователю и что получил агент.
Для агентных систем "прочитать документ"— недостаточная гарантия: нужно контролировать представление, которое попадает в контекст и превращается в вызов инструмента.
Я перечислил только малую часть сценариев, которые в моей голове звучали рационально и реалистично. Советую поизучать как оно описано в репе и на сайте
🌚 @poxek_ai / Чат канала