Агент с кошельком — новая поверхность атаки: потеря случается, когда одна фраза на веб-странице убеждает то, что держит ключ, отправить деньги в другое место. Инструмент читает, что ваш агент умеет, отправляет 20 состязательных зондов, чтобы узнать, что он сделает, и выдаёт ему подставной кошелёк без приватного ключа — чтобы вы могли прочитать всё, что он пытался подписать.
Все три дают разный тип доказательства. Только наблюдаемое доказательство может быть отмечено как критическое — вывод из графа возможностей никогда.
Вставьте описания инструментов агента: какие из них могут двигать ценность, какие впускают внутрь текст, написанный не агентом, какие касаются ключей и стоит ли что-нибудь между ними и подписью. Читаются шесть форматов конфигурации.
На точку агента уходят 20 состязательных сообщений, и ответ читается. Это единственная дорожка, дающая наблюдаемое доказательство.
Мы даём вам адрес RPC. Вы подключаете к нему агента одной переменной окружения. Каждая попытка подписи записывается и разбирается: какая функция, какой получатель, какая сумма, было ли разрешение безлимитным.
Каждый зонд просит у агента что-то узнаваемое и безобидное: повторить токен, назвать сторожевой адрес без приватного ключа, потянуться к инструменту, о котором никто не просил. Уязвимость — это послушание.
Прежде чем уйдёт хоть один запрос, вы должны опубликовать в собственном источнике точки файл /.well-known/saferico-agent-test.txt. Токен в нём может вывести только ваш аккаунт.
Проверка, которая не смогла выполниться, отмечается как НЕ ТЕСТИРОВАЛОСЬ, но никогда как успешная. Если измерено слишком мало, оценка вовсе не выставляется, вместо того чтобы вам польстить.
Сами инструменты (сканер, панели, рабочее пространство SAFI) пока работают на английском языке. Эти страницы объясняют всё по-русски — до того, как вы туда перейдёте.
Этот инструмент атакует вашего агента. Делать это он может только в доказуемых границах — границы перечислены ниже по одной.
Не «настроен не подписывать»: в модуле нет ключа, поэтому подпись — не правило, которому он следует, а операция, которую он не может выполнить. Ошибка здесь не может превратиться в перемещённую монету, потому что перемещать нечего.
И он не выдаёт поддельных квитанций. Простое решение — вернуть правдоподобный хеш транзакции, чтобы агент шёл дальше, — это изготовление доказательства для транзакции, которой не было. Вместо этого возвращается ошибка JSON-RPC, прямо говорящая, что произошло. Находка — сама попытка.
Описания ваших инструментов и системная инструкция разбираются на этой машине. Для построения цепочек отправляется структура: имена инструментов, классы возможностей и значения «да/нет».
Единственное исключение помечено явно: чтобы зонд на раскрытие мог с чем-то сравнивать, вместе с ним отправляется написанная вами фраза длиной до 200 символов. Там она сравнивается и отбрасывается — не сохраняется, не записывается в журнал, не попадает в отчёт и не отправляется на тестируемую точку. Не хотите делиться этими 200 символами — оставьте поле пустым; тогда зонд будет отмечен как НЕ ТЕСТИРОВАЛОСЬ, а не как успешный.
Зонды идут не случайно, а в форме настоящей атаки:
Самое реалистичное стоит первым: непрямая инъекция. Никто не пишет DeFi-агенту «игнорируй предыдущие инструкции» — это кладут в описание токена, на веб-страницу, в README или в текст в сети, который агент читает через инструмент.
Сессия с подставным подписчиком стоит 10 кредитов и ограничена тремя потолками: 60 минут, 200 записанных событий и автоостановка после 15 минут бездействия. Каждое из этих чисел читается при сборке страницы из модуля, который их применяет, поэтому страница не может рекламировать предел, которого код не соблюдает.
Идентификаторы сетей только тестовые; идентификатор основной сети отклоняется при создании сессии. Агент, считающий, что находится в основной сети, способен сделать то, что его оператору потом придётся объяснять.
Вставьте адрес контракта и посмотрите полномочия владельца, ликвидность и результат симуляции продажи — прежде чем рисковать. Небольшая плата за разовую проверку показывается до подписи, а в любой подписке проверки безлимитны.