Вход
Запрос, ответ модели или вызов инструмента попадает в шлюз. Тело читается с жёстким пределом — всё прочитанное обязательно проверяется.
Нельзя спрятать нагрузку за длинным безобидным текстом.
Ru-Guard стоит между агентом и вашими системами. Он видит, кто обращается, что пытается сделать и есть ли у него на это право — и по политике организации пропускает, замедляет, просит подтверждения или запрещает. Каждое решение можно разобрать.
Прогон 23.10.2026 на изолированном стенде. Задержка — локальная машина, без сети и ответа модели. Тесты подтверждают поведение, но не доказывают отсутствие уязвимостей; ограничения описаны в документации.
Полезный агент и вредоносный выглядят одинаково: оба программы, оба пишут грамотно. Различает их не облик, а поведение, цель и права.
Класс клиента — человек, поисковый робот, ИИ-агент, вредоносная автоматизация. Оценка доверия от 0 до 100 растёт с подтверждённой личностью и падает с нарушениями.
То, что клиент — программа, само по себе не нарушение: штатные интеграции и роботы не страдают.
Намерение запроса и его содержимое: манипуляция моделью, инструкции в чужих данных, попытки выманить секреты, массовая выгрузка, перебор.
Атака часто видна только в серии запросов — шлюз помнит историю сессии, а не судит по одному действию.
Профиль прав зависит от класса и доверия. Для агента — права на инструменты: только чтение, разрешённые адреса, обязательное согласование для платежей.
Одно и то же действие разрешено одному клиенту и запрещено другому.
Запрос, ответ модели или вызов инструмента попадает в шлюз. Тело читается с жёстким пределом — всё прочитанное обязательно проверяется.
Нельзя спрятать нагрузку за длинным безобидным текстом.
Текст разворачивается в несколько представлений: кодировки, подменённые символы, разбитые пробелами слова.
Сама попытка замаскировать текст — сигнал: легитимный клиент так не пишет.
Классификация клиента, поведение в сессии, доверие, совпадения с базой угроз и ловушками.
Подтверждённый поисковый робот и подделка под него получают разные права.
Определение намерения и проверка содержимого. Текст из внешних источников — писем, документов, ответов инструментов — проверяется строже, чем слова пользователя.
Инструкция внутри данных — основание для отказа.
Профиль прав для класса и уровня доверия; для агента — его разрешённые инструменты, адреса и действия, требующие согласования.
Нарушение прав — отдельный сигнал, даже если содержимое безобидно.
Все сигналы сводятся в оценку риска от 0 до 100; серьёзные находки задают нижнюю границу. По уровню риска выбирается одна из пяти реакций.
Если анализатор сбоит — запрос отклоняется, а не пропускается.
Решение и его причины записываются в журнал с цепочкой хешей. Ответ приложения проверяется на секреты и персональные данные.
Клиенту — только факт и номер запроса; подробности видит оператор.
Блокировать всё подряд — значит остановить работу. Ru-Guard отвечает соразмерно: подозрение не равно атаке.
Примеры — из записанного прогона. Отдельно есть теневой режим: решения считаются и пишутся в журнал, но не применяются. Так калибруют политику на пилоте без риска для работы.
Каждому агенту задаётся политика: какие инструменты разрешены, что только для чтения, куда можно отправлять данные и какие действия ждут согласования человеком. Политику меняет только оператор с отдельным токеном.
| Что попытался сделать агент | Решение | Почему |
|---|---|---|
| Прочитать отчёт из базыdb.query · SELECT | ✓ALLOW | Разрешённый инструмент, чтение |
| Удалить старые счетаdb.execute · DELETE | ✕BLOCK | Изменение данных агентом «только для чтения» |
| Отправить список клиентов наружуhttp.post · collector.example | ✕BLOCK | Адрес не входит в разрешённые |
| Заплатить поставщикуpayments.transfer | ?CHALLENGE | Ждёт согласования оператора. Если поменять сумму — нужно новое согласование |
Событие хранит время, решение, оценку риска, причину и номер запроса. Каждая запись связана с предыдущей хешем: изменение, удаление или перестановка обнаруживаются проверкой. Секреты маскируются ещё до записи.
Цепочка хешей обнаруживает подмену, но не предотвращает её. Записи с хешами сохраняются в PostgreSQL.
Трафик и решения по минутам, лента событий с разбором по номеру запроса, согласование действий агентов, состояние самообучения, оценка защищённости и песочница для проверки запроса — на живых данных шлюза.
Иллюстрация интерфейса. Внутри консоли все значения — живое состояние работающего шлюза.
Middleware для Python-приложений (FastAPI, Starlette): каждый запрос проверяется до обработчика, ответ — перед отдачей.
ASGI middlewareОбратный прокси с пулами серверов и проверкой здоровья. Запросы с персональными данными уходят только в суверенный контур.
/api/v1/gw/*Агент спрашивает разрешения перед вызовом инструмента и получает решение, причину и, если нужно, номер согласования.
/toolcalls/inspectПоставка — контейнер с PostgreSQL. Контролируется только трафик, который проходит через шлюз: точку подключения выбирают так, чтобы обхода не было.
Выбираем ограниченный поток: одного агента или один сервис.
Описываем права агентов и действия, требующие согласования.
Подключаем шлюз: решения считаются и пишутся, но не применяются.
Прогоняем штатные и рискованные сценарии, сверяем решения с ожиданием.
Оцениваем точность, ложные срабатывания и задержку на вашем трафике.
Включаем применение решений там, где результат подтверждён.
ИИ-агент действует быстрее человека. Ru-Guard даёт команде безопасности место, где эти действия видно, их можно ограничить и потом объяснить.