РелизРазбор · На радарHabr AI→ оригинал

GateRook проверяет запросы ИИ-агентов в 3 шага до доступа к инфраструктуре

Когда ИИ-агенту дают прямой доступ к базе, одной инструкции «не трогай production» мало. GateRook выносит контроль из промпта в отдельный MCP-шлюз: он связывает вызов с конкретным ресурсом, проверяет правила и останавливает запись до решения человека. В примере обычный UPDATE не выполняется сразу — пользователь сначала видит точный SQL, окружение и ожидаемое воздействие.

AI-обработка оригинала Habr AI; редакция Hamidun News
GateRook проверяет запросы ИИ-агентов в 3 шага до доступа к инфраструктуре
Источник: Habr AI. Коллаж: Hamidun News.
Слушать статью
Паспорт материала и цифры
ПараметрДанные
ПервоисточникHabr AI ↗
Главный редактор
Ключевой факт #1Чтение логов ограничивается файлом, периодом, объёмом сканирования и числом строк.
Ключевой факт #2Одобряется сохранённый SQL, поэтому агент не может незаметно заменить запрос.
Ключевой факт #3Шлюз дополняет права базы и сервера, но не заменяет минимальные системные роли.

Дать ИИ-агенту терминал и пароль от базы — быстрый способ убрать ручное копирование логов. Заодно это быстрый способ потерять контроль над тем, что именно агент прочитал или изменил. Фраза в промпте «никогда не трогай production» здесь слабая защита: модель может ошибиться в окружении, неправильно понять найденную инструкцию или отправить корректный SQL не в ту базу.

GateRook предлагает вынести контроль в отдельный исполняющий слой между ИИ-клиентом и инфраструктурой. Это локальное desktop-приложение с MCP-шлюзом, коннекторами к базам, логам, API и серверам, политиками доступа и единым журналом вызовов. Проект открыт под Apache 2.0, однако материал написан его автором, поэтому заявления о возможностях стоит воспринимать как демонстрацию устройства продукта, а не независимый аудит безопасности.

Не терминал, а узкий инструмент

Вместо произвольного SSH агент получает, например, инструмент поиска по логам. В запросе явно задаются подключение, файл, строка поиска, период, максимальный объём сканирования и число возвращаемых строк. Агент может проверить гипотезу, но не получает универсальную командную строку.

Такой контракт полезнее общего разрешения «посмотреть сервер». Владелец видит фактические аргументы вызова, секрет SSH не попадает в чат, а объём чтения заранее ограничен. Для повторяемых операций предусмотрены runbook-команды с типизированными параметрами. Но сама обёртка ничего не гарантирует: опасная команда внутри runbook останется опасной.

Ресурсы разделены на три сущности. Connector описывает способ работы с MySQL, MongoDB, Redis, SSH или другим типом системы. Connection хранит настройки конкретного ресурса и его окружение. Endpoint определяет, какие подключения и инструменты увидит данный ИИ-клиент. Поэтому dev и production можно развести по разным точкам входа, не полагаясь на внимательность модели.

Почему одного одобрения мало

Показательный пример — SELECT без явно выбранной базы. Сам запрос безопасен с точки зрения типа операции, но подключение допускает две базы. GateRook отклоняет вызов до обращения к СУБД и сообщает причину: база не выбрана. Пользовательское «одобряю» не отменяет это обязательное условие.

С записью процесс строже. Агент предлагает UPDATE, шлюз классифицирует его как изменение и создаёт временный запрос на подтверждение. Человек видит точный SQL, подключение, окружение и оценку воздействия. После одобрения ядро повторно проверяет конфигурацию и выполняет сохранённый запрос. Агент не может подменить уже одобренный SQL другим выражением.

Это важная деталь архитектуры: разрешение привязано не к названию инструмента, а к конкретному содержимому операции. Если пользователь не ответил вовремя, запрос истекает. Если результат записи неизвестен из-за тайм-аута, автоматически повторять мутацию нельзя — отсутствие ответа ещё не означает, что база ничего не изменила.

Что брать в собственную систему

Практическая ценность GateRook не только в готовом приложении. Это неплохой шаблон для любой инфраструктуры, куда допускают агентов: выдавать специализированные инструменты вместо shell, разделять окружения, запрещать неоднозначные запросы, подтверждать неизменяемый payload и журналировать решение вместе с результатом.

При этом шлюз не заменяет права самой инфраструктуры. Production следует читать отдельной учётной записью с минимальными grants, а запись ограничивать на уровне СУБД, API и сервера. Локальное хранение секретов тоже не означает, что данные никогда не покидают компьютер: результаты разрешённых запросов отправляются ИИ-клиенту и, возможно, дальше поставщику модели. Нужны маскирование, лимиты выдачи и понятная политика хранения журнала.

Для разработчика главный вывод простой: контроль доступа к агентам нельзя оставлять внутри текста промпта. Для продукта — интерфейс подтверждения должен показывать действие и последствия, а не безликую кнопку Allow. GateRook демонстрирует этот подход убедительно, хотя независимая проверка реализации, модели угроз и заявленных гарантий всё равно необходима.

Сюжет

Вопросы и ответы по материалу

Что известно по теме: не терминал, а узкий инструмент?

Вместо произвольного SSH агент получает, например, инструмент поиска по логам. В запросе явно задаются подключение, файл, строка поиска, период, максимальный объём сканирования и число возвращаемых строк. Агент может проверить гипотезу, но не получает универсальную командную строку. Такой контракт полезнее общего разрешения «посмотреть сервер». Владелец видит фактические аргументы вызова, секрет SSH не попадает в чат, а объём чтения заранее ограничен.

Что известно по теме: почему одного одобрения мало?

Показательный пример — SELECT без явно выбранной базы. Сам запрос безопасен с точки зрения типа операции, но подключение допускает две базы. GateRook отклоняет вызов до обращения к СУБД и сообщает причину: база не выбрана. Пользовательское «одобряю» не отменяет это обязательное условие. С записью процесс строже. Агент предлагает UPDATE, шлюз классифицирует его как изменение и создаёт временный запрос на подтверждение. Человек видит точный SQL, подключение, окружение и оценку воздействия.

Что известно по теме: что брать в собственную систему?

Практическая ценность GateRook не только в готовом приложении. Это неплохой шаблон для любой инфраструктуры, куда допускают агентов: выдавать специализированные инструменты вместо shell, разделять окружения, запрещать неоднозначные запросы, подтверждать неизменяемый payload и журналировать решение вместе с результатом. При этом шлюз не заменяет права самой инфраструктуры. Production следует читать отдельной учётной записью с минимальными grants, а запись ограничивать на уровне СУБД, API и сервера.

ЖХ
Жемал Хамидун — CPO Alpina Digital, продакт-менеджер AlpinaGPT. Делает AI-продукты с 2019 года. Hamidun News — pet project, который вырос в production-агрегатор с 6000+ читателей.
✦ Практика · Hamidun Academy

Соберите рабочего ИИ-агента или сервис своими руками без ручного кода

В Академии Жемала Хамидуна (academy.hamidun.com) открыт бесплатный 72-часовой тест-драйв: интерактивные скетч-уроки по Claude Code и Cursor, живой Tech Radar и готовые шаблоны агентов.

Открыть 72ч бесплатный доступ →Интенсив по Вайб-кодингу
Что вы думаете?
Загружаем комментарии…