Шрифты в документах могут врать искусственному интеллекту. Команда LegalQuants вместе с исследователями разработала «lexploit» под названием Noroboto. Это вредоносный шрифт, встроенный в DOCX или PDF, который врёт о своём Unicode-отображении. Идея простая: шрифт заменяет настоящие коды символов на значения из Private Use Areas (PUA) Unicode. Человек видит осмысленный текст, а AI при чтении документа видит «тофу» или мусор. TrueType-шрифт внутри документа содержит таблицу cmap, которая связывает Unicode с глифами. В Noroboto эти связи подменены.
Атаку сделали за несколько часов с помощью ChatGPT 5.4. Первая версия использовала простое 1:1-отображение — и ChatGPT 5.5 в Codex вскрыл её как моноалфавитный шифр за два шага. Сначала просто вычислил замену, а потом заметил, что в определении глифа осталось оригинальное имя символа. Исследователи исправили это: убрали поле name и перешли на полиалфавитный шифр с 4:1-отображением, при котором один видимый символ случайно маппится на один из четырёх PUA-кодов. Глифы при этом чуть-чуть искажаются, чтобы их нельзя было схлопнуть обратно. Но и это не помогло: самые умные модели с включённым «thinking» просто отрендерили документ и распознали текст через OCR.
Тогда команда переключилась на частичную обфускацию и замену. В частичной обфускации видимый текст не меняется целиком — меняется только критический фрагмент. Например, в тестовом NDA скрыли, что обязательства конфиденциальности распространяются на «successors and assigns». Некоторые дешёвые платформы этого не заметили. Но самый эффективный — это replacement. Вместо PUA шрифт подменяет символы на другие осмысленные Unicode-значения. Человек видит «Maryland», а AI читает «Delaware». Все протестированные платформы попались на эту удочку.
Защиту от Noroboto написали на Rust в проекте Tritium. Идея — «доверяй, но проверяй». Берут все ASCII-символы из шрифта, рендерят их в атлас и прогоняют через встроенный OCR. Сравнивают распознанный текст с эталоном через расстояние Левенштейна. Если точность меньше 1.0 — шрифт подозрительный. Прототип уже работает: тест с честным шрифтом Noto проходит, тест с Noroboto падает. Команда обещает выложить открытую реализацию в ближайшее время. Они также снимают эмбарго, ссылаясь на более раннюю работу от 22 мая 2025 года (arXiv:2505.16957).