Чёрный ящик и таможня для ИИ-агентов
AI Tollgate записывает всё, что делают Claude Code, Cursor, Codex, Gemini CLI и другие агенты на машине разработчика, маскирует секреты до того, как они попадут в модель, останавливает опасные действия и ведёт журнал, достоверность которого можно доказать аудитору.
Один исполняемый файл, без прав администратора и без облака. Установили, и защита уже работает. Секреты не покидают машину: ключи и токены в запросе к модели заменяются плейсхолдерами, а в ответе возвращаются на место, так что агент ничего не замечает. Каждое действие агента записывается как событие в неизменяемый журнал, защищённый цепочкой хэшей (hash chain). Вместо сотни настроек три режима: тихий, умный и строгий.

У ИИ-агента уже есть права разработчика. Вопрос в том, как он ими пользуется и кто это видит
Агентам отдают репозитории целиком, агенты читают секреты и выходят в сеть, их можно обмануть с помощью prompt injection, а достоверного журнала их действий почти ни у кого нет. Вот шесть проблем, с которыми компании сталкиваются уже сейчас.
1. Секреты утекают в LLM
Разработчики отдают агентам репозитории целиком: вместе с файлами .env, токенами, ключами и данными клиентов. Всё это оседает в логах поставщиков LLM, и никто не знает, сколько уже утекло.
Что делает Tollgate. Локальный шлюз стоит между агентом и API модели. Секреты распознаются по правилам (регулярные выражения RE2 и анализ энтропии) и прямо в запросе заменяются токенами вида BB_SECRET_…, а в ответе модели подставляются обратно. Вызовы инструментов при этом не ломаются, и пользователю ничего не нужно подтверждать. Команда toll audit за минуту показывает, какие секреты агенты уже видели: она анализирует транскрипты сессий, прошедших до установки шлюза.
2. Никто не может сказать, что сделал агент
Агент удалил ветку, выкатил в продакшен неработающий код или выгрузил данные, а журнала нет. Вопросы юристов, аудиторов, страховой компании и регулятора остаются без ответа.
Что делает Tollgate. Полная трассировка каждой сессии: промпт, прочитанные файлы, обращения к LLM, команды, правки, сетевые запросы, вызовы MCP-инструментов. Журнал допускает только добавление записей (append-only), защищён цепочкой хэшей и заверяется внешними источниками. Команда toll verify доказывает, что ни одно событие не изменено и не удалено, а toll incident собирает подписанный пакет доказательств, который можно проверить на любой другой машине.
3. Агента можно обмануть, и он сам выгрузит данные
Prompt injection в README, в ответе MCP-сервера, на веб-странице. Отравленные описания инструментов. MCP-сервер, который незаметно обновился. Пакеты, которые модель выдумала, а злоумышленник успел зарегистрировать.
Что делает Tollgate. Проверка входящего контента на инъекции и скрытые Unicode-символы. Правила для цепочек действий, например «прочитал секрет, затем обратился к сети» или «получил инъекцию, затем делает внешний вызов». Фиксация (pinning) описаний MCP-инструментов. Проверка MCP-серверов и скиллов: эвристический анализ и аудит с помощью ИИ. Проверка новых пакетов по публичным реестрам. И секреты-приманки: их не распознает ни одно регулярное выражение, зато любое их использование однозначно указывает на проблему.
4. Агент может разрушить не только рабочую папку
rm -rf ~, git push --force main, drop database, kubectl delete namespace, curl … | sh, попытка отключить сам Tollgate.
Что делает Tollgate. Встроенный набор правил и три режима защиты. Если нужно подтверждение пользователя, вопрос с указанием причины появляется в стандартном диалоге разрешений самого агента, а не в отдельных всплывающих окнах. Защита от зацикливания останавливает агента, который шлёт сотни вызовов в минуту. Команда toll undo возвращает файлы в состояние на начало сессии.
5. Регуляторы требуют журнал, которого нет
EU AI Act (большая часть положений применяется со 2 августа 2026 года), SOC 2 и ISO/IEC 42001 требуют журналировать и контролировать работу ИИ-систем. Бюджет на это у компаний уже заложен, а самого журнала нет.
Что делает Tollgate. Команда toll report --days 90 формирует отчёт об использовании ИИ для руководства и аудитора: сколько было сессий и у каких агентов, сколько секретов замаскировано, сколько действий остановлено. Команда toll team serve разворачивает на вашем сервере консоль для всего парка машин, которая заверяет журналы каждой машины своей подписью.
6. Инструмент, который мешает, удалят на второй день
Любое средство защиты, которое тормозит разработчика, рано или поздно отключают.
Что делает Tollgate. Главный принцип: не мешать. Сразу после установки включён тихий режим: только запись и маскирование, без вопросов пользователю. Не больше трёх уведомлений в час и только по событиям уровня high или critical. Кнопка «Больше не спрашивать» срабатывает с одного нажатия. Если служба Tollgate дала сбой, агент продолжает работать (fail-open). И у разработчика есть собственная выгода: сводка сессии для pull request, построчное определение авторства кода агентами (agent blame) и откат сессии.
Переключаются одной кнопкой, без перезапуска
Только запись и маскирование секретов, никаких вопросов. Включается по умолчанию после установки.
Спрашивает только о действиях, которые действительно могут навредить. Ещё до включения консоль покажет, сколько раз за последние 30 дней этот режим потревожил бы пользователя.
Любое рискованное действие требует подтверждения человека в стандартном диалоге разрешений агента.
Один журнал, своя польза для каждой роли
| Разработчик | Личный журнал сессий агента, сводку сессии для pull request, команду toll why <файл>:<строка>, которая показывает, какой агент написал эту строку, и откат правок одной командой. |
|---|---|
| Руководитель разработки, платформенная команда | Картину по всем агентам и моделям в команде без лишних помех для разработчиков. Список установленных MCP-серверов и скиллов с результатами их проверки. |
| CISO, инженер по безопасности | Маскирование исходящих секретов, политики в виде кода прямо в репозитории, проверку агентов с помощью приманок, карту сетевых обращений агентов. |
| Комплаенс, аудит | Журнал с доказуемой целостностью, отчёт за период, подписанный пакет по инциденту, внешнее заверение цепочки хэшей метками времени RFC 3161. |
Четыре уровня: запись, защита, аудит, доказательства
Запись: всё, что делает агент
- Три источника данных, единый формат событий. LLM-шлюз перехватывает обращения к API моделей, MCP-шлюз фиксирует все вызовы инструментов, хуки агентов регистрируют работу с файлами, команды и сетевые запросы. Данные из любого источника приводятся к единому формату: file.read, file.write, cmd.exec, net.request, mcp.call, llm.request и так далее.
- Сессии. Каждый запуск агента оформляется как сессия с полной хронологией. Индикатор lethal trifecta («смертельная триада») загорается, если агент видел конфиденциальные данные, читал непроверенный контент и выходил в сеть.
- Снимки файлов. Версии до и после каждой правки хранятся с адресацией по содержимому (content-addressed). В консоли доступны diff и откат.
- Поиск на естественном языке работает офлайн и без LLM: «secrets yesterday», «commands last 3 days», «что агент делал с платёжными файлами во вторник».
- Карта сети. Все хосты, к которым обращались агенты: облачный провайдер, страна, канал (shell, fetch, LLM, MCP) и число обращений.
- Автоматический поиск. Команда toll discover находит на машине всех агентов, локальные серверы моделей и конфигурации MCP и показывает, что из этого работает без надзора. Агентов, которых можно подключить без риска, Tollgate подключает сам.
Защита: секреты, политики, предохранители
- Обратимое маскирование секретов в трафике к LLM (токенизация на основе HMAC, ключ хранится только в оперативной памяти) с восстановлением исходных значений в ответе модели, в том числе в потоковом режиме SSE.
- Правила в виде кода. Формат YAML: встроенный набор, пользовательский файл ~/.config/aitollgate/policies.yaml и файл проекта <repo>/.aitollgate/policies.yaml, изменения которого проходят ревью в pull request. Условия: тип события, маски путей, регулярные выражения для команд и хостов, признаки сессии с временным окном. Команда toll policy test --mode strict прогоняет накопленную историю через правила и показывает, сколько срабатываний дал бы строгий режим.
- Стандартный диалог разрешений. Никаких собственных всплывающих окон: запрос на подтверждение (ask) с указанием причины появляется в диалоге PreToolUse в Claude Code, Cursor или Grok CLI.
- Защита от зацикливания (runaway breaker). Если агент превышает заданное число вызовов в минуту, он получает один вопрос и приостанавливается.
- Контроль установки пакетов. Новые пакеты сверяются с реестрами npm и PyPI: так выявляются несуществующие имена и имена-двойники популярных пакетов (typosquatting и slopsquatting).
- Защита самого Tollgate. Попытки остановить службу, стереть журнал или переписать политики отслеживаются отдельным правилом с уровнем critical.
Аудит: как можно обмануть агента
- Приманки (honeypot). Готовые наборы:
.env, ключи AWS, GCP, Azure, SSH- и PGP-ключи, токены GitHub, npm, Slack, Stripe, конфигурации Docker и Kubernetes, криптокошелёк, ловушка-вебхук. Два режима: только наблюдение или блокировка. Кнопка «Test all agents» раскладывает приманки во все рабочие каталоги, а «Run a live test» сама запускает агента и проверяет, попадётся ли он. - Контроль утечки настоящих ключей (leak watch). Tollgate запоминает отпечатки реальных ключей из конфигураций CLI-инструментов (сами ключи не сохраняются) и предупреждает, если такой ключ уходит наружу.
- MCP-серверы и скиллы. Перечень всего, что подгружают агенты. Быстрая локальная проверка бесплатна, аудит с помощью ИИ работает с API-ключом любого из шести поддерживаемых провайдеров. Результат: clean, suspicious или dangerous с пояснением, плюс отметка, если компонент обновился после последней проверки.
- MCP-шлюз. Команда toll mcp wrap .mcp.json включает журналирование каждого вызова, фиксацию описаний инструментов и обнаружение атак rug pull (подмена поведения сервера после одобрения) и tool poisoning (отравление описаний инструментов).
- Сигнализация на инъекции. Входящий контент (веб-страницы, ответы MCP) проверяется на команды вида «ignore previous instructions», просьбы передать ключи, скрытые Unicode-символы и ASCII smuggling. Сессия получает отметку, и следующий выход в сеть требует подтверждения.
Доказательства: журнал, которому можно верить
- Журнал только с добавлением записей (SQLite), защищённый цепочкой хэшей. Команда toll verify проверяет её целостность.
- Внешнее заверение. Независимый журнал-свидетель (witness log) с подписью ed25519 и метки времени по RFC 3161. Команда toll team serve добавляет второго независимого свидетеля.
- Сводка сессии (session receipt). Карточка в формате Markdown для описания pull request: какие файлы агент читал и менял, какие команды выполнял, к каким хостам обращался, видел ли секреты, какие правила сработали, хэш журнала.
- Интеграция с Git. Коммиты получают трейлер Blackbox-Session, а команда toll why <файл>:<строка> показывает, какой агент написал строку (agent blame).
- Пакет по инциденту. Команда toll incident собирает подписанный zip-архив с событиями сессии, а toll incident verify <zip> проверяет его на любой машине.
- Отчёт за период. toll report --days 90 для руководства и аудитора.
Для команды
- toll team serve разворачивает на вашем сервере центральную консоль для всех машин команды: общая картина, заверение журналов второй подписью, отслеживание регрессий.
- Машины подключаются по одному токену, без стороннего SaaS. Данные не покидают ваш периметр.
Один статический исполняемый файл, без прав администратора и без облака
- Один исполняемый файлtoll написан на Go без cgo и работает в Linux, macOS и Windows. В нём всё сразу: фоновая служба, значок в системном трее, локальная консоль на 127.0.0.1:7355, LLM-шлюз, MCP-шлюз, хуки для агентов и интерфейс командной строки.
- Установка без прав администратораАвтозапуск настраивается на уровне пользователя (XDG autostart, LaunchAgent, ключ HKCU Run). Достаточно одной команды toll install, и агенты подключены.
- Всё локальноКонтент всегда проверяется на самой машине. Значения секретов никогда не попадают в журнал: записываются только их тип и количество. Наружу уходят только запросы к публичным реестрам для проверки имён пакетов и, если вы сами это включите, по одному RDAP-запросу на хост для карты сети.
- Локальный APIДоступен только на 127.0.0.1, отклоняет запросы с чужим заголовком Host (защита от DNS rebinding) и Origin (защита от CSRF), для записи требуется токен.
Десять вкладок: что делают агенты, как они защищены и как их можно обмануть
Консоль открывается по адресу http://127.0.0.1:7355 и работает локально, без облака. Меню слева разделено на три группы. Monitor (Overview, Activity, Sessions, Network Map) показывает, что делают агенты. Protect (Agents, Rules) определяет, какие агенты под защитой и по каким правилам. Audit (Honeypot, MCP Servers, Skills) проверяет, что подгружают агенты и как их можно обмануть. Внизу меню находятся настройки (Settings).
Activity: лента действий
Лента в реальном времени со всем, что делают агенты на машине: чтение и правка файлов, команды в терминале, сетевые запросы, вызовы MCP-инструментов, обращения к моделям. Есть фильтры (All, Flagged, Secrets, Commands, Files, Network, LLM, MCP) и поиск на естественном языке, лента обновляется через SSE. Щелчок по строке открывает карточку события: инструмент, каталог, сработавшее правило, хэш в цепочке журнала, исходный JSON.
AI Tollgate: лента действий агентов с фильтрами и поиском на естественном языке.

Sessions: сессии агентов
Открыть полный скриншот списка сессий →Каждый запуск агента сохраняется как отдельная сессия, которую можно просмотреть, найти и приложить к pull request. В списке видны первая реплика пользователя в роли заголовка, агент, модель, проект, число обнаруженных секретов и сработавших правил.
AI Tollgate: список сессий агентов.

Карточка сессии
Открыть полный скриншот →Полная хронология действий в порядке выполнения. Индикатор lethal trifecta состоит из трёх сигналов: Saw private data (видел конфиденциальные данные), Read untrusted content (читал непроверенный контент), Talked to the network (выходил в сеть). Если горят все три, это классический сценарий утечки через prompt injection. Кнопка «Copy receipt for PR» копирует сводку сессии в формате Markdown для описания pull request.
AI Tollgate: карточка сессии агента с индикатором lethal trifecta.

Network Map: карта сети
Куда обращаются агенты: все внешние адреса из журнала, запросы через LLM-шлюз, загрузка веб-страниц, сетевые MCP-серверы, команды вроде curl, wget и ssh. Облачный провайдер (AWS, GCP, Azure, Cloudflare, GitHub, Anthropic и другие) определяется офлайн по диапазонам IP-адресов. Если какой-то агент без видимой причины обратился к постороннему хосту, это заметно за пару секунд.
AI Tollgate: карта сетевых обращений ИИ-агентов.

Agents: агенты и модели
Открыть полный скриншот →Какие ИИ-инструменты установлены на машине и какие из них под наблюдением. Tollgate находит их сам и автоматически подключает те, что можно подключить без риска: Claude Code, Cursor, Codex, Grok CLI, Gemini CLI, Continue, Aider, Goose, DeepSeek, aichat и другие. Для каждого указан способ подключения. Отдельно показаны локальные серверы моделей (Ollama, LM Studio, vLLM).
AI Tollgate: список агентов и моделей под наблюдением.

Rules: правила
Открыть полный скриншот →Правила, по которым Tollgate решает, как поступить с действием агента: alert (предупредить), ask (спросить), block (заблокировать). Встроенный набор охватывает чтение файлов с секретами, обращения к ~/.ssh и ~/.aws, передачу в сеть только что прочитанного секрета, разрушительные команды, curl | sh и попытки отключить сам Tollgate. Для каждого правила указано число срабатываний за 30 дней. Собственные правила задаются в YAML и проходят ревью в pull request вместе с кодом репозитория.
AI Tollgate: правила политики с действиями alert, ask и block.

Honeypot: приманки для агентов
Открыть полный скриншот →Поддельные секреты, разложенные там, где работают агенты: .env, ключи AWS, GCP, Azure, SSH- и PGP-ключи, токены GitHub, npm, Slack, Stripe, конфигурации Docker и Kubernetes, криптокошелёк. Ключи фиктивные, поэтому любое обращение к ним однозначно указывает на проблему. «Test all agents» работает только в режиме наблюдения, а «Run a live test» сам запускает агента и проверяет, попадётся ли он. Отдельно доступен контроль утечки настоящих ключей из конфигураций CLI-инструментов.
AI Tollgate: приманки для ИИ-агентов.

MCP Servers: MCP-серверы
Открыть полный скриншот →Все MCP-серверы, к которым могут обращаться агенты, собранные из конфигураций Claude Code, Cursor, Gemini CLI и проектных файлов .mcp.json. Два уровня проверки: Quick scan (бесплатный локальный эвристический анализ) и AI scan (заключение выбранной модели с пояснением по категориям: скрытое выполнение команд, вывод данных, обман пользователя, prompt injection). Итоговая оценка: clean, suspicious или dangerous. Новые и обновлённые серверы отмечаются отдельно.
AI Tollgate: перечень и проверка MCP-серверов.

Skills: скиллы
Открыть полный скриншот →Все скиллы (файлы SKILL.md), установленные для агентов из плагинов, маркетплейсов и каталогов проектов. Когда скилл срабатывает, его инструкции попадают в контекст агента, а устанавливают скиллы обычно один раз и забывают о них. Проверка устроена так же, как для MCP: быстрый эвристический анализ бесплатно, аудит с помощью ИИ при наличии API-ключа, оценки clean, suspicious и dangerous с цитатами найденных фрагментов.
AI Tollgate: проверка установленных скиллов агентов.

Settings: настройки
Открыть полный скриншот →Все функции Tollgate управляются обычными переключателями: замена жёстких блокировок на запрос подтверждения, контроль установки пакетов, защита от зацикливания, маскирование секретов и восстановление значений в ответах, продолжение работы при сбое шлюза (fail-open), лимиты уведомлений, автозапуск без прав администратора, выбор подключённых агентов, проверка целостности журнала. После нажатия Save служба применяет изменения за секунду.
AI Tollgate: настройки защиты, конфиденциальности и уведомлений.

Мы прямо указываем, где поддержка полная, а где частичная
| Агент | Запись действий (файлы, команды, MCP) | Маскирование трафика к LLM | Подтверждение и блокировка (ask, block) |
|---|---|---|---|
| Claude Code | Да, через хуки | Да, через шлюз | Да, через PreToolUse |
| Cursor | Да, через хуки | Нет, трафик идёт на серверы Cursor | Да, через хуки |
| Codex | Да, только запись | Да, OpenAI-совместимый API через шлюз | Нет, агент не даёт перехватить действие до вызова инструмента |
| Gemini CLI | Да, MCP-вызовы через шлюз | Нет, трафик идёт на серверы Google | Да, для MCP-вызовов |
| Grok CLI | Да, через хуки | Нет | Да, через PreToolUse |
| Aider, Continue, DeepSeek, aichat, локальные модели (Ollama, LM Studio, vLLM и др.) | Нет | Да, OpenAI-совместимый трафик через шлюз | Нет |
| Любой MCP-клиент | Да, через toll mcp wrap | Нет | Да, политики для вызовов инструментов |
| Любой другой инструмент | Нет | Да, если указать шлюз в качестве базового адреса API | Нет |
Пять решений, на которых построен Tollgate
Не мешать
По умолчанию включён тихий режим. Все решения принимались с одной целью: чтобы инструмент не удалили на второй день.
Никаких собственных всплывающих окон
Вопросы задаются в диалоге самого агента, а не в отдельном окне, которое раздражает и которое легко проигнорировать.
Продукт не должен стать каналом утечки
Всё работает локально, секреты не сохраняются, данные агентов никуда не передаются.
Журнал, которому можно верить
Цепочка хэшей, внешнее заверение, подпись, проверка на любой машине.
Польза не только безопасникам, но и разработчику
Сводка сессии, определение авторства строк, откат сессии: всё это пригодится и без требований службы безопасности.
Взлом ИИ-агентов наша профессия. Tollgate мы ставим на собственные машины
Наш файрвол Airlock контролирует вызовы инструментов агента в момент их выполнения. AI Tollgate решает более широкую задачу: записывает все действия, маскирует секреты, проверяет, как можно обмануть агента, и ведёт журнал, которому поверит аудитор. Хотите посмотреть на своих ИИ-агентов глазами атакующего или развернуть Tollgate на всех машинах команды? Это наша повседневная работа.
Хотите установить Tollgate себе или на все машины команды?
Стоимость и условия обсуждаются индивидуально, в зависимости от масштаба команды. Оставьте контакты, и мы ответим в течение рабочего дня.