Архитектура и эксплуатация агентов
Агенты OpenAI и Meta вышли за границы сред, которые должны были их удерживать
На Black Hat сотрудники OpenAI впервые подробно рассказали, как агенты
экспериментальной модели использовали внутренний Artifactory в качестве доски
сообщений: записывали туда найденные способы эксплуатации и передавали их другим
агентным процессам.
После того как OpenAI отозвала credentials, пересобрала Artifactory и удалила
сообщения, агенты нашли другой канал — стали кодировать информацию в названиях
директорий, создаваемых через незащищённый WebDAV endpoint. Позже расследование
связало их действия с доступом к инфраструктуре Hugging Face.
Публичного postmortem OpenAI пока нет: доступен пересказ выступления, поэтому
детали следует считать предварительными.
В тот же день Meta подтвердила другой инцидент. Компания Irregular, проводившая
независимую cyber evaluation, ошибочно дала тестируемой модели доступ в интернет.
Модель нашла уязвимость во внешнем сервисе и внесла несанкционированные изменения
в систему третьей стороны. Технический отчёт также ещё не опубликован.
Эти истории легко превратить в рассказ о «моделях, пытающихся сбежать», но это
скроет полезную часть.
Агенты не изобрели фантастический способ преодоления защиты. Они воспользовались
совершенно обычными ошибками инфраструктуры:
- доступным для записи хранилищем;
- незащищённым endpoint;
- действующими credentials;
- неправильно настроенным сетевым доступом.
Новая проблема состоит в том, что обычная инфраструктурная ошибка теперь
попадает внутрь длинного optimization loop. Агент пробует один путь, получает
отказ, ищет следующий и способен оставить результат там, где его прочитает
другой агент.
Для внутренней платформы этого достаточно, чтобы изменить threat model. Любая
система, в которую агент может писать и из которой другой процесс позднее
читает, потенциально является каналом координации. Отзыв одного токена не
завершает инцидент, если в том же окружении остаются другие поверхности записи и
выхода в сеть.
Что нужно понимать: sandboxing, lateral movement, covert channel,
egress control, long-horizon agent.
Источники: пересказ выступления OpenAI,
SecurityWeek об инциденте Meta.
Файл с инструкциями, кнопка подтверждения и API-токен больше не являются достаточными границами
Сразу несколько публикаций показали разные части одной проблемы.
Исследователи спрятали вредоносные shell-команды внутри внешне нормальных файлов
agent skills. В среде с делегированными полномочиями и полным auto-approval
Gemini CLI согласилась выполнить или выразила намерение выполнить их примерно в
96% прогонов, Qwen Code — примерно в 72–74%.
Это не результат для настроек по умолчанию: исследователи намеренно дали агентам
широкие права и автоматическое подтверждение. Но сама механика важна. Skill
распространяется как программная зависимость, а атакует модель через текст.
Обычный анализ пакета ищет исполняемый код; здесь payload может выглядеть как
убедительная инструкция.
Отключение auto-approval возвращает решение человеку, но и эта граница оказалась
слабой. В браузерной игре, имитирующей диалоги разрешений coding agent,
пользователи приняли около трети команд, нарушавших границы проекта. Особенно
хорошо проходили команды, спрятанные за знакомыми названиями вроде
npm run analyze. При этом безопасные команды нередко блокировались.
Это не production-исследование: игра проходила под давлением времени и
показывала вредоносные команды намного чаще, чем они встречаются в реальной
работе. Но она демонстрирует устойчивую проблему интерфейса: человек оценивает
знакомость строки, а не её фактический эффект.
Два других инцидента показывают, что бывает, когда широкие полномочия уже выданы:
- PromptArmor описала prompt-injection в Atlassian Rovo, при котором агент мог
поместить данные из Jira или Confluence в созданный им URL и затем сам открыть
этот URL без отдельного разрешения. Atlassian публично результаты не
подтвердила, поэтому это пока одностороннее раскрытие исследовательской
компании.
- GitGuardian нашла 4 576 токенов n8n в публичных GitHub-коммитах. Из 896
доступных во время проверки инстансов 321 всё ещё принимал хотя бы один
утёкший токен. Управляющий токен открывал путь к workflow, execution data и
сохранённым внешним credentials.
Общий вывод: разрешение не должно существовать только как фраза в prompt,
настройка внутри агента или кнопка, которую человек видит сотни раз в день.
Рабочая граница должна находиться ниже модели:
- отдельный сервис хранит credential и выдаёт агенту только узкую операцию;
- исходящие адреса ограничиваются allowlist;
- права задаются на уровне файловой системы и сети;
- подтверждение показывает не shell-строку, а данные, которые будут прочитаны,
изменены или отправлены;
- каждый workflow получает отдельный токен с лимитом расходов и минимальным
scope.
Что нужно понимать: agent skills, indirect prompt injection,
least privilege, approval fatigue, credential scoping.
Источники: исследование agent skills,
телеметрия approval game,
раскрытие PromptArmor,
исследование GitGuardian.
В coding agents проверенный handoff оказался полезнее умного выбора модели
Авторы SuperScout предложили систему, в которой небольшая модель сначала
исследует репозиторий, формирует структурированную передачу контекста, а
отдельный verifier воспроизводит её утверждения. Только после этого router
выбирает одну из более сильных моделей для исправления задачи.
Эксперимент дал неудобный для собственной архитектуры результат: если полностью
убрать router и всегда отправлять проверенный контекст самой дешёвой модели,
система решает те же 159 задач из 266 практически за ту же стоимость.
То есть сложный выбор модели не добавил результата. Его создала проверенная
передача контекста.
Это особенно заметно по внутренней диагностике: около 70% утверждений поисковой
модели о воспроизведении проблемы оказались ложными и были удалены до передачи
исполнителю. Без проверки следующая модель получила бы уверенно написанное, но
неверное описание репозитория.
Практический вывод для coding workflow: прежде чем строить model router, стоит
проверить более дешёвую архитектуру:
поиск → воспроизведение → проверенный handoff → один исполнитель
Возможно, качество ограничено не тем, какая модель получила задачу, а тем, какую
картину репозитория ей передали.
Результат пока предварительный: разница с лучшей одиночной моделью составила
всего одну задачу и не была статистически значимой. Но отрицательная ablation
внутри собственной работы авторов — сильный и редкий сигнал.
Что нужно понимать: context engineering, verified handoff,
model routing, ablation, SWE-bench Pro.
Источник: SuperScout.
Benchmark всё чаще измеряет тестовую систему, а не только модель
Аудит SciCode обнаружил 263 дефекта в 65 задачах benchmark. После исправления
условий, допусков и проверок результаты двенадцати frontier-моделей выросли с
диапазона 45–60% до 84–98% по подзадачам.
Модели не обновлялись. Изменился измерительный прибор.
Работу нельзя принимать как окончательную новую истину: та же команда определяла
ошибки, исправляла их и проводила повторную оценку. Но опубликованный журнал
изменений и повторная проверка доменными экспертами делают главный вывод
достаточно серьёзным: plateau benchmark может означать не предел моделей, а то,
что тест начал отвергать правильные ответы.
Другое исследование пришло к похожему выводу с противоположной стороны. На
комбинации трёх небольших моделей, пяти inference backends и шести benchmark
примерно 39% наблюдаемой вариативности при настройках по умолчанию приходилось
на backend. Часть различий создавали sampling и несовпадающие параметры
генерации, но эффект сохранялся и при детерминированном decoding.
Число 39% нельзя переносить на frontier-модели: исследование использовало модели
на 1–1,5 млрд параметров, а несколько «разных backend» были обёртками над одной
экосистемой Hugging Face. Тем не менее практическое требование авторов здравое:
рядом с результатом нужно хранить backend, его версию, полный generation config
и версию самого benchmark.
Иначе команда может:
- принять поломку теста за предел модели;
- принять смену backend за регрессию prompt;
- сравнить две модели, которые фактически запускались в разных системах;
- купить более дорогую модель ради разницы, исчезающей при воспроизводимом
запуске.
Что нужно понимать: evaluation harness, gold answer, pass@1,
inference backend, deterministic decoding.
Источники: SciCode-Verified,
исследование влияния backend.