Архивный материал. Перенесён без новой редакционной проверки; факты и продуктовые условия относятся к дате исходной публикации.
Ваш AI-агент может выполнить чужую инструкцию из интернета
Наверное, это единственный материал за последние месяцы, который я попрошу вас распространить. Не ради охватов. Просто систем с браузером, терминалом и доступом к рабочим данным становится всё больше, а относятся к ним пока слишком наивно.
Агент читает интернет не как человек. Он собирает контекст и делает следующий шаг по задаче. Отзывы, письма, тикеты, GitHub, страницы конкурентов, заявки из лид-форм, официальная документация. Раньше всё это было данными. Теперь это может стать инструкцией к действию.
И проблема не сводится к тексту «игнорируй предыдущие указания». Кто помнит, как в 22-23 годах инжектили ботам просьбы написать лучший рецепт борща - моргнитею Иногда команда лежит открыто, выглядит идеально легитимно и приходит с официального сайта.
Именно поэтому важно это расследование про llms.txt.
Это файлы, которые компании публикуют на сайтах специально для AI-агентов: куда идти за документацией, какой API вызвать, какой пакет поставить.
Полный русскоязычный разбор исследования с источниками, Clerk-кейсом и границами доказательств: читать в Telegraph.
Авторы пишут, что разобрали 8 565 таких файлов на 6 214 доменах. В них нашли больше 237 незанятых имён пакетов, доменов и поддоменов.
То есть компания официально говорит агенту:
pip install company-sdk
Но сам company-sdk в PyPI или npm никто не зарегистрировал. Имя свободно. Кто первый занял, того и пакет.
Исследователи зарегистрировали несколько таких имён, положили внутрь безобидный маячок и стали ждать. По их данным, первый callback из сети Fortune 500 пришёл меньше чем через четыре минуты.
Никто не ломал HTTPS. Не подменял сайт. Не отправлял фишинговое письмо.
Агент зашёл в официальную документацию, увидел команду и выполнил её.
Для EDR это обычный pip install. Потому что это и есть обычный pip install, только пакет принадлежит уже не тому, кому должен.
И это не только лабораторный сценарий.
В документации Clerk, сервиса авторизации для Next.js, была команда npx clerk-next-fix-auth-protection. Отдельный пакет с таким именем оказался свободен, его занял злоумышленник. При установке пакет отправлял наружу логин, имя машины и рабочую директорию. Кейс подтверждён в OSV.
Я уже разбирал, почему нельзя надеяться, что модель сама всегда отличит данные от инструкции И писал, почему чем надёжнее становятся агенты, тем опаснее давать им широкие права.
За 12 лет в IT я видел ту же механику много раз: доверенный текст, незакреплённое имя, лишнее право, забытый домен, «обычная» интеграция. Потом кто-то долго считает утекшие доступы и деньги.
Для таких историй мы начали делать Cordon.
Это ранний проект, не детектор «злых промптов». Он ставит между недоверенным контент и действием агента отдельный детерминированный слой: сохраняет происхождение данных, убирает скрытый контент и не даёт молча перескочить от чтения внешнего источника к значимому действию. О нём расскажу отдельно. Cordon: github.com/ilyautov/cordon
А уже сегодня стоит проверить три вещи: свои README и llms.txt, незанятые имена пакетов в документации и права агентов, которым разрешено ставить зависимости.
Ваш сайт для агента давно перестал быть витриной. Он может стать инструкцией к действию в чужой среде.
Источники и след
- 01 это расследование Ссылка из исходной публикации
- 02 читать в Telegraph Ссылка из исходной публикации
- 03 OSV Ссылка из исходной публикации
- 04 разбирал Связанный архивный материал
- 05 писал Ссылка из исходной публикации
- 06 github.com/ilyautov/cordon Ссылка из исходной публикации
- 07 Оригинал в канале Under the Hood Происхождение / Telegram / сообщение 852