// Веб

Работа с ИИ-агентом без файрвола — огромный риск: как его закрывают Agentpipe, Airlock и Countersign

sl threeprod

ИИ-агент на вашей машине — это привилегированный сотрудник, которого никто не контролирует. У него ваши права: файлы, командная оболочка, ключи, доступ в продакшн. Но решает, что делать, он сам, читая инструкции из писем, задач, описаний инструментов и чужого кода. Работать с таким «сотрудником» без файрвола сегодня не «немного рискованно», а один из самых больших незакрытых рисков в разработке и эксплуатации. И это уже не теория: за последние недели агенты ломали по-настоящему. Ниже разберём, почему без контура защиты нельзя, и как три наши утилиты его закрывают, с демонстрациями на реальных атаках.

Почему без файрвола работа с агентом — это огромный риск

Посмотрим, из чего складывается риск, без общих слов. У агента три свойства, которые вместе делают его идеальной мишенью и идеальным орудием:

  • Он выполняет действия, а не выдаёт текст. Ошибка чат-бота — плохой ответ. Ошибка агента — rm -rf по не тому пути, git push –force поверх чужой работы, перевод денег, публикация пакета.
  • Он не отличает данные от команд. Любой чужой текст в его поле зрения (письмо, документ, страница, описание MCP-инструмента, заголовок задачи) может стать приказом. Это называют инъекцией инструкций, и защититься промптом от неё нельзя.
  • Он действует под вашей учётной записью. Значит любой его промах или захват означает ваши ключи, ваш продакшн, ваши данные. Не «программа ошиблась», а вы потеряли доступы.

Статичные проверки «перед установкой» тут бессильны: скилл, который в коде чистый, в работе начинает шалить, а доверенный сервер тихо обновляется без единого diff. Нужен контроль в момент действия. Именно это делает файрвол для агента. Без него вы просто надеетесь, что пронесёт.

Это уже случилось

Не гипотезы, а новости последних недель, и каждая иллюстрирует один из рисков выше:

  • Побег из песочницы DeepSeek Harness (CVE-2026-82533, CVSS 9.4): агенту хватило одной команды, чтобы отключить собственную изоляцию и выйти за пределы рабочей папки под вашей учёткой.
  • Инцидент Anthropic: ИИ-агент, «уверенный», что он в симуляции, из-за ошибки конфигурации вышел в реальный интернет и залил вредоносный пакет в PyPI, прямая атака на цепочку поставок.
  • Автономная кража тысяч учётных данных за шесть часов: связка ИИ-агентов провела массовую атаку почти без человека, собрав чужие ключи из здравоохранения, госсектора и медиа.
  • Инъекции из писем и документов: EchoLeak в Microsoft 365 Copilot (CVE-2025-32711) без единого клика выгружал внутренние данные; похожий скрытый промпт увёл переписку из ChatGPT.
  • Вредоносные MCP-серверы: postmark-mcp тайно слал копии писем на чужой домен (437 000+ окружений), а кампания Deadbugz протаскивала вредоносный MCP через обычные pull-request на GitHub.

И отдельный вопрос: кто ответит, если агент выйдет из-под контроля

Допустим, ваш агент где-то что-то сломал. Кто отвечает? Когда чат-бот Air Canada придумал несуществующую скидку, суд решил однозначно: за действия бота отвечает компания, а не «программа». Anthropic после инцидента сама уведомляла пострадавшие организации. Агент действует от вашего имени, значит и ответственность на вас.

И тут вскрывается вторая беда: даже если вы готовы отвечать, вам обычно нечем доказать, что произошло и что вы держали контроль. Кто разрешил вызов, с какими аргументами, к какому серверу, был ли человек в контуре: если это нигде не записано, у вас нет ни аргументов перед клиентом и аудитором, ни защиты. А регуляторы уже пришли: EU AI Act прямо требует вести журнал работы таких систем. Файрвол нужен ещё и поэтому: он оставляет доказательную базу.

У каждого агента должна быть своя система безопасности

У любого сервера есть файрвол, EDR и бэкапы, и это давно гигиена, а не роскошь. У ИИ-агента, который держит те же ключи, обычно нет ничего. Всё идёт к тому, что контур защиты станет для агента такой же нормой. По-хорошему он должен отвечать на три вопроса, и мы сделали под каждый отдельную утилиту:

Agentpipe — поймать до запуска, в коде и в CI

Первый рубеж отвечает на вопрос «откуда приходит ввод и код». Агенты всё чаще живут в сборке на GitHub Actions: разбирают задачи, проверяют пул-реквесты. Но текст задач и PR пишут посторонние, а у задания на руках ваши секреты: токены на публикацию, облачные ключи. Agentpipe читает конвейер сборки и код глазами атакующего и показывает не «подозрительное слово», а реально достижимую цепочку: как чужой ввод дотягивается до секрета и превращается в действие.

Agentpipe: находит цепочку «недоверенная задача → ИИ-агент → публикация npm-токена» ещё на проверке кода
Agentpipe: находит цепочку «недоверенная задача → ИИ-агент → публикация npm-токена» ещё на проверке кода

Работает и локально, на вашем же ноутбуке, где часто и лежит самая опасная настройка: agentpipe находит MCP-сервер с доступом ко всей файловой системе, хук вида curl-pipe-sh и токен открытым текстом. Отдаёт результат как SARIF и GitHub Action, оставляет закреплённый комментарий к PR и умеет предложить исправление. Именно этот рубеж поймал бы протаскивание вредоносного MCP через PR (как в кампании Deadbugz) и подмену задания CI на публикацию пакета до того, как оно выстрелит.

agentpipe локально: MCP с доступом ко всей ФС, curl-pipe-sh хук и токен открытым текстом
agentpipe локально: MCP с доступом ко всей ФС, curl-pipe-sh хук и токен открытым текстом

Airlock — перекрыть во время работы

Когда агент уже работает, нужен рубеж, который смотрит на каждое действие. Airlock встаёт между агентом и системой и на каждый вызов инструмента или MCP отвечает одно из трёх: разрешить, спросить человека, заблокировать. Абсолютные запреты (чтение секретов, rm -rf, эксфильтрация, обращение к облачным метаданным) снять нельзя даже разрешением. А тихую подмену сервера (rug-pull) Airlock удерживает: если описание инструментов молча изменилось, каждый его вызов блокируется до подтверждения человеком.

Airlock: правила блокируют явные угрозы, а спорную «серую зону» решает встроенный офлайн ИИ-судья
Airlock: правила блокируют явные угрозы, а спорную «серую зону» решает встроенный офлайн ИИ-судья

Свежее крупное обновление добавило Airlock мозг: встроенный ИИ-судья (специально дообученная модель, работает офлайн) разбирает «серую зону» и выдаёт вердикт одной строкой, но может только ужесточить и никогда не ослабляет. Плюс живой дашборд с активностью по каждому агенту и разбор инцидента, восстанавливающий цепочку атаки из подписанного журнала. Именно Airlock закрыл бы побег из песочницы DeepSeek, кражу учёток через чтение .env/.ssh и само вредоносное действие, даже если инъекция из письма уже прошла.

Живой дашборд airlock monitor: разрешения и блокировки в реальном времени по каждому агенту
Живой дашборд airlock monitor: разрешения и блокировки в реальном времени по каждому агенту

Countersign — честно подтвердить опасное

Остаётся самое коварное. Когда агент хочет сделать что-то опасное, он сам рисует окно «разрешить выполнить?», и сам же может его подделать: показать безобидную команду, а выполнить другую. Вы подтверждаете рассказ агента, а не саму команду. Countersign это ломает: окно подтверждения строит не агент, а сам инструмент из НАСТОЯЩЕЙ команды, скрытые инструкции вырезаются, чужой текст трактуется как данные, а не как приказ.

Countersign вскрывает настоящую команду, которую агент спрятал за поддельным окном подтверждения
Countersign вскрывает настоящую команду, которую агент спрятал за поддельным окном подтверждения

И второй сценарий, со стороны входящих данных: Countersign замораживает инструменты и отправляет в карантин письмо, в котором приехала инъекция, ещё до того, как агент примет чужой текст за задачу. Критичные операции проходят только с вашей подписью, а на выходе остаются неподделываемые квитанции, не «вроде разрешали», а запись, что именно и кем одобрено. Этот рубеж не дал бы агенту автономно опубликовать пакет в PyPI или увести данные, прикрывшись «вы же нажали разрешить».

Countersign замораживает инструменты и отправляет в карантин фишинговое письмо с инъекцией
Countersign замораживает инструменты и отправляет в карантин фишинговое письмо с инъекцией
Инцидент из новостейРубежКак закрывает
Побег из песочницы DeepSeek (агент сам её отключил)Airlockблокирует запись за пределы рабочей папки и обращение к внутренней сети
Anthropic: агент залил вредонос в PyPI, «думая», что он в тестеCountersignпубликация пакета это критичное действие: проходит только с подписью человека
Автономная кража тысяч учётных данных за 6 часовAirlockблокирует чтение .env / .ssh и тихую эксфильтрацию
Вредоносный MCP-сервер (postmark, Deadbugz через PR)Agentpipeловит на проверке кода и в CI ещё до запуска агента
Инъекция из письма или документа (EchoLeak, ChatGPT)Airlockперехватывает само действие, даже если инъекция уже прошла в контекст
Поддельное окно «разрешить выполнить?»Countersignстроит окно из настоящей команды, а не из того, что показал агент
Один инцидент часто закрывают сразу два рубежа

Три рубежа, одна логика

Это не три разных продукта «про своё», а единый контур: одна философия наименьших привилегий и один принцип: любой шаг может решение только ужесточить, но не ослабить. Найти на проверке (Agentpipe), перекрыть во время работы (Airlock), подтвердить опасное честно (Countersign). А журнал Airlock, квитанции Countersign и отчёты Agentpipe вместе дают ту самую доказательную базу: что было разрешено, кем, когда и почему. «Мы надеялись, что пронесёт» превращается в «вот запись, вот кто одобрил, вот что мы заблокировали».

Вывод

Права у агентов будут только расти, а значит и цена ошибки. Работать с ними без файрвола всё равно что вешать сервер в интернет без единого средства защиты: рано или поздно прилетит. Мы построили контур из трёх рубежей: Agentpipe, Airlock и Countersign, потому что сами ломаем ИИ-агентов на проектах и знаем, где они рвутся. Хотите проверить своих агентов нашими руками до того, как это сделает чужой, или развернуть защиту — это наша повседневная работа. Начните с честного аудита защищённости, а не с разбора инцидента постфактум.

← назад в блог