Intact снижает успех prompt injection в браузерных агентах с 73,1% до 12,8%
Исследователи представили Intact, защитный слой для браузерных ИИ-агентов. Он работает на немодифицированном браузере и строит представление страницы GenTree, где у каждого элемента указано происхождение и веб-семантика. Модель получает страницу по одному элементу и не видит текст остальных. На 1 091 странице с внедрёнными атаками через планировщик Intact проходят 12,8% атак, и каждая доходит максимум до запроса согласия. У обычного планировщика этот показатель равен 73,1%. Функциональность страдает в 3,7% задач. • GenTree находит в 2,3 раза больше сторонних элементов, чем браузер • Браузер ошибочно относит к первой стороне 58,7% из них • Дополнительную задержку можно в основном убрать параллельным расписанием
AI-обработка оригинала Hugging Face Daily Papers; редакция Hamidun News
Браузерные ИИ-агенты читают чужие страницы и действуют от имени пользователя, а языковую модель при этом легко убедить любым достаточно настойчивым текстом. Авторы работы с Hugging Face Daily Papers предлагают Intact, слой между агентом и вебом, который работает на немодифицированном браузере. На 1 091 странице с внедрёнными атаками через планировщик Intact проходят 12,8% атак, и каждая из них добирается максимум до запроса согласия у пользователя. Обычный планировщик пропускает 73,1%.
Где у агента ломается модель доверия
Браузер давно живёт по правилам, в которых возможности элемента зависят от того, чем он является и откуда пришёл. Скрипт со стороннего домена, поле формы и рекламный блок получают разные права, и не важно, что в них написано. Агент эти различия теряет. Он видит скриншот или плоский текст, где комментарий под статьёй, баннер и кнопка сайта выглядят одинаково. Если в таком тексте спрятана инструкция, модель может принять её за волю пользователя и использовать его полномочия для контента, у которого таких полномочий нет.
Авторы исходят из того, что LLM останется податливой. Поэтому защищать нужно сам интерфейс агента к вебу: он должен гарантировать целостность того, что агент читает, интерпретирует и делает.
Как устроен Intact
В основе лежит GenTree, специальное представление страницы, которое хранит происхождение каждого элемента и его веб-семантику. Страница уходит в модель через GenTree по одному элементу за раз. Решение по элементу модель принимает, не видя текст остальных, поэтому инъекция в одном месте не влияет на трактовку другого. Обвязка агента выполняет шаг только в пределах возможностей того элемента, к которому он относится. Прежде чем действовать на основании стороннего контента, она спрашивает пользователя.
Важная деталь касается атрибуции. Браузер считает многое первой стороной, хотя это не так. На 1 270 реальных страницах GenTree относит к третьим сторонам в 2,3 раза больше элементов, чем браузер, а браузер ошибочно приписывает первой стороне 58,7% таких элементов.
- Выборка: 1 270 реальных страниц, из них 1 091 с внедрёнными атаками
- Атрибуция: в 2,3 раза больше сторонних элементов, чем находит браузер
- Ошибка браузера: 58,7% сторонних элементов записаны как первая сторона
- Прохождение атак: 12,8% у Intact против 73,1% у обычного планировщика
- Форма прохождения: у Intact не выше запроса согласия
- Потеря функциональности: 3,7% задач
- Задержка: большую её часть, по оценке авторов, может убрать параллельное расписание
Цена защиты и что остаётся открытым
Изоляция элементов ломает задачи, где смысл складывается из нескольких фрагментов страницы. Таких случаев 3,7%. Последовательная подача элементов добавляет задержку, но авторы считают, что параллельное расписание уберёт большую часть этой надбавки. Это пока оценка, а не измерение.
Остаются и вопросы. Цифры получены на собственном наборе страниц и атак, и 12,8% не ноль. Кроме того, запрос согласия лишь переносит решение на человека. Если агент будет спрашивать слишком часто, пользователи привыкнут жать «разрешить». Это наше предположение, в статье его нет, но проверять его стоит на реальных сценариях.
Что взять в работу командам, которые делают агентов
Идея переносится и без готового Intact. Прежде чем отдавать страницу модели, стоит сохранять происхождение каждого фрагмента и не терять его при сведении DOM к тексту. Права действия лучше выводить из типа элемента и его источника, а не из того, что модель «поняла» из текста. Любое действие на основании стороннего контента нужно проводить через явное подтверждение. Наконец, имеет смысл заранее посчитать долю задач, которые ломает изоляция. По данным работы, для набора авторов она составляет 3,7%.
Делегируйте ресёрч, код и рутину автономному AI-агенту
Интеллектуальная агентная среда NomadNet Agent (agent.nomadnet.ai) выполняет многошаговые задачи: глубокий веб-ресёрч, анализ данных, написание кода и автоматизацию браузера.
Главное из мира ИИ — раз в неделю
7 ключевых событий недели, отобранных вручную. Без шума, репостов и пресс-релизов.
Готово! Проверьте почту — мы отправили подтверждение.