Статус материала

Архивный материал. Перенесён без новой редакционной проверки; факты и продуктовые условия относятся к дате исходной публикации.

Ваш 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, незанятые имена пакетов в документации и права агентов, которым разрешено ставить зависимости.

Ваш сайт для агента давно перестал быть витриной. Он может стать инструкцией к действию в чужой среде.

Источники и след

  1. 01 это расследование Ссылка из исходной публикации
  2. 02 читать в Telegraph Ссылка из исходной публикации
  3. 03 OSV Ссылка из исходной публикации
  4. 04 разбирал Связанный архивный материал
  5. 05 писал Ссылка из исходной публикации
  6. 06 github.com/ilyautov/cordon Ссылка из исходной публикации
  7. 07 Оригинал в канале Under the Hood Происхождение / Telegram / сообщение 852