Антихрупкость моделей и иллюзия безопасности: как Anthropic похоронила промпт-инъекции, но забыла про агентов
Команда Anthropic заявила, что новая модель Claude Opus 5 стала практически невосприимчива к промпт-инъекциям, опираясь на результаты независимых тестов. Однако исследователи сообществом выявили новый класс угроз, эксплуатирующий нюансы работы агентов, а не простые текстовые подсказки. Эксперт Никита Беляевский разбирает разрыв между маркетинговыми заявлениями вендора и реальностью эксплуатации.
# Когда «мы больше не можем взломать» не соответствует действительности
В конце июля 2024 года в сообществе AI-безопасности прогремели сообщения об успешном переходе модели Claude Opus 5 к новой ступени защиты. Создатель Claude Code Борис Черный сообщил о радикальном изменении поведения системы: модели стало «очень трудно успешно провести промпт-инъекцию» (prompt injection). Позже, на мероприятии YC Startup School, формулировки ужесточились до того, что команда больше не может продемонстрировать успешную атаку. Эти заявления звучали как окончательная победа в битве за безопасность больших языковых моделей (LLM).
Однако реальность оказалась сложнее. Появление нового вектора атаки от исследователя Йоханна Рехбергера (WonderWuzzi) показало, что проблема не исчезла, а трансформировалась. Теперь мы говорим не столько о классических инъекциях, сколько о специфике работы автономных агентов, где безопасность зависит от среды исполнения, а не только от текста промпта.
От статических тестов к адаптивным угрозам
Заявления Anthropic о неуязвимости модели подкреплялись данными сторонней лаборатории Trajectory Labs. Исследователи прогнали бенчмарк из 72 сценариев на 10 повторений для моделей Fable, Opus и Sonnet в режиме Auto Mode. Результат был впечатляющим: ни одна атака не сработала. При этом важно отметить методологию: атакующий не мог заранее знать тестовые сценарии, а успешная атака должна была привести к необратимому ущербу (утечка данных, кража учетных записей).
Тем не менее, статический тест против динамической среды — это фундаментальная ошибка в оценке рисков. Как отмечают в самой документации Anthropic, reliance на known datasets (известные наборы данных) может создавать ложное чувство безопасности. Модель может отлично противостоять известным паттернам, оставаясь уязвимой для нового подхода, который еще не был зашит в защитные механизмы. Это напоминает ситуацию, когда мы проверяем систему взлома на старые ключи, но злоумышленник нашел новый способ проникновения.
Термин для понимания: *Промпт-инъекция (Prompt Injection).* Это техника манипулирования языковой моделью путем внедрения специальных команд в текст запроса, чтобы заставить модель игнорировать первоначальные инструкции и выполнить вредоносное действие. Классический пример: сообщение от имени администратора в чате, которое просит бота раскрыть секретные данные.
Параллакс-атака: когда безопасность блокирует спасение
26 августа исследователь Йоханн Рехбергер представил цепочку атак (attack chain), которая оказалась эффективной против режима Auto Mode. В основе атаки лежит не прямое принуждение модели, а использование особенностей файловой системы и механизма импорта библиотек Python.
Сценарий развертывания атаки выглядит следующим образом: 1. Пользователь просит агента проанализировать архив. 2. Агент скачивает и распаковывает архив, обнаруживая подозрительный бинарный файл. Защитный классификатор Auto Mode блокирует запуск этого файла. 3. Чтобы выполнить задачу, агент пишет и запускает собственный декодер из стандартной библиотеки Python. 4. Злоумышленник заранее разместил в архиве вредоносный файл struct.py, который импортируется модулем base64. 5. Поскольку декодер запускается из папки с архивом, Python начинает использовать локальный struct.py вместо стандартного модуля. Это приводит к запуску вредоносного кода.
Интересен и парадоксальный момент в работе защитных механизмов. Когда агент обнаруживал компрометацию и пытался остановить процесс, система Auto Mode иногда блокировала и команду по устранению угрозы. Защитник, не давая выполнить вредоносное действие, мешал безопасному завершению процедуры. Это подтверждает, что автоматическое определение опасности в сложных, многошаговых сценариях остается крайне неточным.
Саймон Уиллисон (Django), эксперт по безопасности, классифицировал этот инцидент не как промпт-инъекцию в традиционном смысле, а как «атаку на запутанную среду» (confused environment attack). Здесь вредоносный эффект достигается не за счет одной команды в тексте, а за счет последовательности безопасных действий, которые в сумме создают уязвимость.
Факты против маркетинговых обещаний
Разрыв между заявлениями компании и результатами независимого тестирования очевиден. Антропик указал на то, что режим Auto Mode удобен для снижения «усталости от одобрения» (approval fatigue), но не является гарантией безопасности. Настоящая защита строится на уровне изоляции операционной системы и контроле сетевого трафика, а не только на нейросетевом фильтре.
Заявление о том, что модель «больше не является подверженной промпт-инъекциям», является преувеличением. Компания проверила конкретный набор сценариев и не нашла в них уязвимостей, но это не математическое доказательство отсутствия уязвимостей в целом. Пространство возможных атак шире, чем любой статический бенчмарк.
Важно понимать: когда говорят о том, что модель «не может быть взломана», часто имеют в виду, что она не поддастся простым трюкам с текстом. Однако современные агенты — это сложные системы, взаимодействующие с файловой системой, сетью и внешними сервисами. Их безопасность требует гораздо более глубокого анализа, чем просто проверка на промпт-инъекции.
Термин для понимания: *Подмена модуля (Model Shadowing).* Это техника атаки, при которой вредоносный код имитирует стандартные библиотеки или модули языков программирования, заставляя их использовать локальные копии с вредоносным кодом. В данном случае, локальный файл struct.py перехватывал работу стандартного модуля, что приводило к запуску вредоносной логики.Что делать, если агент ошибается?
История с атакой Rerhberger (WonderWuzzi) и реакция на нее подчеркивают главную мысль: агенты могут ошибаться, и эти ошибки могут иметь катастрофические последствия. Даже если модель не поддается прямым инструкциям, контекст окружения может спровоцировать ее на выполнение опасных действий.
Для защиты от таких угроз недостаточно полагаться только на встроенные механизмы безопасности. Необходимо реализовать многоуровневую стратегию:
1. Ограничение прав (Principle of Least Privilege): Агент должен иметь доступ только к необходимым ресурсам. Если он не нужен для доступа к домашнему каталогу, такие права должны быть отключены. Аналогично — ограничить доступ к SSH, секретами и другим чувствительным данным. 2. Изоляция среды (Sandboxing): Запуск агентов в изолированных контейнерах или виртуальных машинах предотвращает распространение последствий ошибки на всю систему. 3. Контроль исходящего трафика: Даже если агент выполнит вредоносный код, отсутствие свободного доступа в интернет ограничит его возможности для распространения или сбора данных. 4. Мониторинг действий: Важна возможность отслеживать, какие команды выполняет агент, к каким файлам обращается и какие сетевые соединения устанавливает. Подозрительное поведение должно быть легко обнаруживаемым. 5. Механизм восстановления: Система должна уметь автоматически или полуавтоматически восстанавливать состояние после инцидента. В случае атаки Rerhberger агент даже сам обнаружил свою ошибку, но не смог эффективно устранить её из-за блокировок защитных механизмов.
Термин для понимания: *Принцип наименьших привилегий (PoLP).* Это подход к безопасности, при котором система или пользователь получают только те права доступа, которые необходимы для выполнения конкретных задач, и не более того. Это минимизирует ущерб при возможных компромиссах системы.
Итоги: путь к устойчивой безопасности
Заключение исследования показывает, что борьба с промпт-инъекциями и обеспечение безопасности агентов — это долгий процесс, требующий постоянного обновления защитных механизмов. Заявления о полной защите от атак должны восприниматься с осторожностью, так как они часто основаны на ограниченных тестовых данных.
Главный урок: нельзя полагаться исключительно на встроенные механизмы защиты агентов. Необходимо проектировать систему так, чтобы ошибка одного слоя защиты не приводила к полной компрометации среды. Это достигается за счет комплексного подхода, включающего ограничение прав, изоляцию, мониторинг и возможность быстрого восстановления.
«Знай, где агент может ошибиться, и знай, как ограничить последствия — тогда его ошибка не станет твоим поражением.»
Эта цитата подчеркивает важность проактивного подхода к безопасности: вместо того чтобы пытаться защитить систему от всех возможных атак, нужно сосредоточиться на минимизации ущерба при любом сбое.
Заключение
История с атакой на Claude Opus 5 и реакция на нее демонстрируют, что безопасность искусственного интеллекта — это не статичное состояние, а динамический процесс. Несмотря на прогресс в защите от промпт-инъекций, остаются уязвимости, связанные с особенностями работы агентов и их взаимодействия с окружением. Ключ к решению — не в поиске идеальной защиты, а в создании системы, устойчивой к ошибкам и способной быстро реагировать на угрозы.
Таким образом, хотя Anthropic делает значительные шаги вперед в области безопасности, важно помнить, что ни одна система не может быть абсолютно безопасной. Только комбинация технических мер, процессуальных контролей и постоянного мониторинга может обеспечить необходимую степень защиты в rapidly evolving мире искусственного интеллекта.