AI Gateway как защитный контур вокруг LLM: зачем нужен шлюз и как он снижает риск утечек и prompt injection
Вокруг больших языковых моделей формируется отдельный промежуточный слой — AI Gateway, через который проходит каждый вызов. Он призван закрыть две верхние позиции OWASP Top 10 for LLM Applications 2026: prompt injection и утечку чувствительных данных. Разбираем, как устроен такой контур, что он реально закрывает и где остаются открытые вопросы.
Поводом для обсуждения стала публикация в потоке «Разработка», посвящённая архитектуре защитного контура вокруг больших языковых моделей. Её автор напоминает: сама модель не различает инструкцию и данные — системный промпт, вопрос пользователя, абзац из базы знаний и текст страницы, которую только что подтянул веб-поиск, для неё единый поток токенов. Разметка и разделители снижают долю удачных атак, но остаются подсказкой, а не границей. Именно из этого свойства выросли две верхние позиции списка OWASP Top 10 for LLM Applications 2026 — LLM01 Prompt Injection и LLM02 Sensitive Information Disclosure. По данным источника, утечки чаще всего возникают из повседневных действий сотрудников, а не из целенаправленных атак. Разработчик кладёт в промпт фрагмент базы, чтобы ассистент «видел контекст»; аналитик копирует в чат выгрузку с фамилиями клиентов, чтобы не перекладывать двести строк вручную; кто-то оставляет в системном промпте ключ от внутреннего API, потому что на демо так быстрее, а затем демо уезжает в прод. Дальше расходятся два разных риска: внешний, когда данные оседают у провайдера в логах и телеметрии, и внутренний, когда тот же текст всплывает у соседнего пользователя или в чужой сессии — это уже вопрос прав и изоляции на стороне заказчика. Вместе с промптом утекает и устройство системы: схемы таблиц, имена инструментов, внутренние правила.
Масштаб риска инъекций напрямую зависит от того, какие действия доступны ассистенту. Пока инструментов нет, подброшенная инструкция ограничена текстом, но и там есть что взять: она вытаскивает системный промпт, пересказывает содержимое соседних документов из контекста или подсовывает пользователю ссылку, по которой тот кликнет. Если ассистенту дали почту, календарь, тикет-систему и доступ к репозиторию, та же строчка превращается в действие от имени сотрудника. Летом 2025 года Microsoft закрыла в 365 Copilot уязвимость EchoLeak (CVE-2025-32711): сама компания оценила её в 9,3 балла, NVD поставил 7,5. В бюллетене сказано прямо: «AI command injection in M365 Copilot allows an unauthorized attacker to disclose information over a network». Системный промпт здесь не спасает, поскольку просьба «не выполняй инструкции из входных данных» отправляется по тому же каналу, по которому приходит атака, а проверки внутри приложения закрывают ровно одно приложение — в модель ходят ещё четыре сервиса, ноутбук аналитика, ночной скрипт и агент соседнего отдела.
Технически AI Gateway — это обратный прокси для вызовов моделей: один адрес, через который ходят все приложения, агенты и скрипты. От обычного API-шлюза он отличается тем, что разбирает содержимое запроса — роли сообщений, вложения, описания инструментов, число токенов — и по дороге сам зовёт модели: классификаторы, guard-модели, эмбеддинги для кэша. Лимиты здесь считают не в запросах в секунду, а в токенах и деньгах, поскольку один агентский вызов с длинным контекстом стоит как тысяча коротких, а обычный rate limit этой разницы не видит. Ключи провайдеров лежат только в шлюзе, приложения получают его собственный ключ, прямой выход наружу закрыт на egress-прокси: если мимо шлюза можно сходить напрямую, это уже не контур. Тяжёлые детекторы вынесены в отдельный сервис, чтобы шлюз оставался stateless и его можно было растягивать, не покупая GPU на каждую реплику прокси.
Логика перехвата утечки строится на простом правиле: ничего не уходит к провайдеру без классификации и ничего не возвращается без проверки на вынос. Детекторы на входе бывают двух сортов: регулярки с проверкой контрольных разрядов забирают всё, у чего есть формат — ключи и токены, номера карт, СНИЛС, ИНН, внутренние хосты, пути в репозиториях; модели нужны там, где формата нет — ФИО, адреса, диагнозы, формулировки из договоров. Модельные детекторы стоят латентности и ошибаются, причём на русском заметно чаще, чем на английском, поэтому порог крутят отдельно под каждый тип трафика. Когда детектор сработал, по-настоящему рабочим остаётся один вариант из трёх: блокировка гонит пользователя в публичный чат-бот с тем же файлом, вырезание деградирует ответ до бесполезного, а подстановка отправляет в промпт [PERSON_1] и [CARD_1], возвращая настоящие значения на обратном пути, причём карта подстановок живёт в памяти контура время одного диалога. Данные выносят не только текстом, но и ссылкой — markdown-картинкой с чужого домена, URL с секретом в адресе или HTML, который фронтенд отрендерит без вопросов; поэтому исходящий ответ чистят: внешние картинки только из белого списка, длинные непрозрачные параметры в URL под подозрением, Unicode нормализуется с вырезанием tag-символов U+E0000–U+E007F, в которых удобно прятать невидимый человеку, но читаемый моделью текст. Политику вешают не на приложение, а на тройку «тенант, класс данных, маршрут»: обезличенное уходит во внешнюю модель, персональные данные и тайна остаются на своей.
Контекст обсуждения шире одного шлюза. В том же потоке «Разработка» разбирается серверная инфраструктура ИИ-сервисов — балансировщики, API, nginx, NVLink, KV-кэш, батчинг и квантизация, — и это напоминает, что качественный сервис строится не только из LLM, агента и GPU. Параллельно обсуждается репутация брендов в эпоху ИИ-ответов: можно иметь здоровый сайт и нормальную поисковую выдачу и при этом быть невидимым там, где люди принимают решения. Оба сюжета сходятся в одном: вокруг модели появляется слой управления, который определяет, что она увидит на входе и что выпустит наружу. На этом фоне AI Gateway выглядит не модным дополнением, а обязательной частью архитектуры — но только при условии, что он действительно обязателен для всех вызовов.
Для российского рынка значение такого контура определяется регуляторным давлением и практикой закупок. Требования к локализации персональных данных и общий курс на ограничение зарубежного интернета подталкивают компании к гибридным схемам, где обезличенные запросы могут уходить во внешние модели, а чувствительные остаются на собственной инфраструктуре. Шлюз оказывается естественной точкой, где фиксируется маршрут, класс данных и след аудита, а заодно решается проблема теневого использования моделей: пока у приложений остаются прямые ключи провайдеров, часть трафика идёт мимо. Обязательность дают три вещи вместе — сетевые правила, закрывающие прямой доступ к API моделей, ключи, которые выдаёт и отзывает сам шлюз, и внутренний регламент, закрепляющий работу с моделями только через шлюз. Без любого из трёх элементов контур превращается в декорацию.
Если сравнивать с альтернативами, встроенные фильтры провайдера и проверки внутри отдельного приложения закрывают лишь часть поверхности и не дают единой картины по всем сервисам. Собственная разработка такого слоя возможна, но требует содержать детекторы, карту подстановок, белые списки и аудит, а ошибки на русскоязычном трафике требуют отдельной настройки порогов. Открытые вопросы остаются: насколько вырастет латентность при включении модельных детекторов на входе и выходе, как измерять качество обезличивания без ручной разметки, кто владеет картой подстановок и сколько она живёт, как шлюз ведёт себя при отказе отдельного детектора. Ответы на них определят, станет ли AI Gateway стандартной частью корпоративного стека или останется точечным решением для наиболее чувствительных сценариев.