Компоненты платформы StarGuard
1. Модуль StarGuard Gate (LLM-Firewall)
StarGuard Gate принимает запросы от пользователей и агентов, применяет политики безопасности и проксирует трафик к внешним LLM-провайдерам. StarGuard Gate реализует OpenAI- и Anthropic-совместимые API и поддерживает любые клиенты, работающие с эндпоинтами POST /v1/chat/completions, POST /v1/completions, POST /v1/messages или POST /v1/responses, включая потоковый режим (Server-Sent Events). В режиме forward proxy шлюз перехватывает обращения клиентов к реальным адресам провайдеров.
Также частью модуля является портал самообслуживания — отдельный сервис, который позволяет пользователю просматривать доступные модели, текущие лимиты и расход, копировать персональный токен, а также содержит встроенный чат для проверки работы шлюза и возможность загрузки файлов для передачи в LLM.
Подробное описание компонентов модуля StarGuard Gate представлено ниже.
| Компонент | Описание |
|---|---|
Nginx (TLS termination) |
Точка входа в модуль. Терминирует TLS и маршрутизирует трафик к Gate, порталу и File Recognizer. Не используется при развёртывании шлюза в режиме forward proxy |
Gate (reverse) |
Ядро LLM-Firewall в режиме обратного прокси. Обрабатывает запросы и ответы через цепочку входных и выходных детекторов, применяет SafeGuard- и tool-политики, перенаправляет или блокирует запросы |
Gate (forward) |
Тот же конвейер детекторов в режиме прозрачного прокси: перехватывает TLS-сессии клиентов к реальным адресам LLM-провайдеров. Поставляется отдельным Docker-образом |
Guard LLM Inference (vLLM) |
Локальный LLM-инференс, используемый семантическими детекторами (Input/Output Safe Guard, расширенная валидация детектора чувствительной информации) |
File Recognizer |
Извлекает текстовое содержимое из файлов (DOC, DOCX, XLS, XLSX, PDF) и распознаёт текст на изображениях (PNG, JPG, JPEG) для последующей проверки детекторами |
User Portal Frontend |
Фронтенд портала самообслуживания пользователя |
User Portal Backend |
Серверная часть портала самообслуживания: хранение истории чатов, управление сессиями и лимитами пользователя |
Redis |
Хранилище сессий пользователей портала. Используется User Portal Backend для хранения пользовательских сессий и временного состояния OIDC-авторизации |
1.1. Аутентификация в StarGuard Gate
StarGuard Gate поддерживает три режима аутентификации:
-
OIDC — StarGuard Gate валидирует
id_tokenпользователя через корпоративный Identity Provider (StarVault, Keycloak и др.). Из токена извлекаются идентификатор пользователя, имя и группы — по путям к claim, заданным в конфигурации OIDC-провайдера (по умолчаниюpreferred_usernameиgroups). В этом режиме применяется ролевая модель (доступ к моделям и шлюзам по пользователям и группам) и лимиты. -
Статичный токен — доступ осуществляется по единому заранее заданному Bearer-токену. Все запросы обрабатываются как анонимные: ролевая модель и лимиты не применяются.
-
Без аутентификации — шлюз принимает запросы без проверки токена. Ролевая модель и лимиты не применяются.
В режиме forward proxy клиент передаёт учётные данные в адресе прокси (HTTPS_PROXY=http://<имя пользователя>:<токен>@<шлюз>), что соответствует заголовку Proxy-Authorization: Basic. Собственный ключ доступа к LLM-провайдеру клиент передаёт как обычно — шлюз его не изменяет.
2. Модуль StarGuard Base
StarGuard Base реализует функционал управления шлюзами, моделями, путями, политиками, содержит бизнес-логику управления конфигурацией и обработки событий, ведёт аналитику и биллинг и управляет сканированием. Также предоставляет интерфейс для администраторов и специалистов по безопасности.
Подробное описание компонентов модуля StarGuard Base представлено ниже.
| Компонент | Описание |
|---|---|
Nginx (TLS termination) |
Точка входа в модуль. Терминирует TLS и маршрутизирует трафик к Frontend, Core, Analytics, User State и Meta Saver по соответствующим путям и поддоменам |
Frontend |
Веб-интерфейс администратора: панель управления, события, аналитика, шлюзы, модели и пути, сканирование, политики, пользователи, OIDC, лицензия и API-токены |
Core |
Основной бэкенд-сервис. Содержит бизнес-логику управления конфигурацией, аутентификацию администраторов, обработку событий, управление лицензией и сканированием |
Analytics |
Сервис аналитики. Читает события из ClickHouse и отдаёт агрегаты по трём блокам: безопасность, биллинг, агенты |
Scanner |
Исполнитель сканирований. Опрашивает Core, выполняет сканы файлов моделей и security-сканы LLM, записывает найденные уязвимости |
User State |
Сервис хранения пользовательского состояния (счётчики токенов и расхода, лимиты) |
Meta Saver (Vector) |
HTTP-приёмник событий от шлюзов и уязвимостей от Scanner. Нормализует их и записывает в ClickHouse, опционально транслирует события во внешние SIEM-системы |
PostgreSQL |
Основная реляционная БД: конфигурации, пользователи, политики, сканы, лицензии |
ClickHouse |
Аналитическая БД для хранения и запроса событий безопасности, данных трассировки и результатов сканирования |
Redis |
Кэш и брокер для User State и сервиса аналитики |
2.1. Аутентификация администраторов StarGuard Base
Доступ к интерфейсу StarGuard Base реализуется двумя способами:
-
Локальная аутентификация — учётная запись администратора с логином и паролем, хранимая в StarGuard Base. При первом запуске создаётся учётная запись
adminс паролем из переменнойINIT_ADMIN_PASSWORD. -
Platform OIDC — опциональная аутентификация через корпоративный Identity Provider. При включении на странице входа отображается кнопка «Войти через OIDC». При первой авторизации администратор автоматически создаётся со ссылкой на внешний
subи помещается в группуNew User(без прав).
3. Внешние интеграции
Перечень внешних систем, с которыми взаимодействует платформа, приведён ниже.
| Система | Роль |
|---|---|
OIDC Provider (StarGuard Gate) |
Корпоративный Identity Provider — аутентификация пользователей шлюзов |
OIDC Provider (Platform) |
Корпоративный Identity Provider — опциональная аутентификация администраторов StarGuard Base |
LLM-провайдер |
Внешний или локальный сервис с OpenAI- или Anthropic-совместимым API: OpenAI, Anthropic, OpenRouter, Ollama, vLLM, LiteLLM и т.д. |
Внешний сервис анализа |
HTTP-сервис заказчика, подключаемый пользовательским (WebHook) детектором, — например, корпоративная DLP-система |
SIEM |
Получает события безопасности из платформы для централизованного мониторинга |
4. Детекторы
Детекторы — это модули анализа, встроенные в StarGuard Gate. Они образуют цепочку проверок, через которую последовательно проходит каждый входящий запрос (входные детекторы) и каждый ответ LLM (выходные детекторы). Детекторы настраиваются на уровне шлюза и могут быть переопределены или отключены на уровне отдельной цели — Модели или Пути.
Порядок выполнения детекторов задан платформой и не настраивается: детекторы, не зависящие друг от друга, выполняются параллельно, а те, чей результат используется дальше по конвейеру, — последовательно.
Для каждого детектора настраивается режим действия.
| Режим | Описание |
|---|---|
Выключен ( |
Детектор отключён, проверка не выполняется |
Мониторинг ( |
Детектор работает и фиксирует срабатывания в метаданных события, но запрос не блокируется |
Блокировать ( |
При срабатывании запрос блокируется, пользователю возвращается сообщение об ошибке |
Добавить сообщение ( |
Запрос не блокируется, но к ответу добавляется предупреждающее сообщение (требуется поле «Сообщение при срабатывании») |
Перенаправить ( |
Запрос перенаправляется на другой бэкенд (требуется указать целевой бэкенд). Не применимо к выходным детекторам |
4.1. Детектор языка
Детектор определяет язык последнего сообщения пользователя с помощью модели классификации текста и сравнивает его с настроенными списками. Подробное описание параметров детектора представлено ниже.
| Параметр | Описание |
|---|---|
Разрешённые языки |
Whitelist языков (коды ISO 639-1, например |
Запрещённые языки |
Blacklist языков. Запросы на этих языках блокируются |
Минимальная уверенность |
Порог уверенности модели (0–1). Если уверенность ниже порога, язык считается неизвестным ( |
Сообщение при срабатывании |
Текст предупреждения для пользователя (требуется в режимах «Блокировать» и «Добавить сообщение») |
Целевой бэкенд |
Модель или Путь для перенаправления запроса (требуется в режиме «Перенаправить») |
4.2. Детектор регулярных выражений
Детектор проверяет все сообщения запроса на совпадение с набором регулярных выражений. Проверка выполняется без учёта регистра. Подробное описание параметров детектора представлено ниже.
| Параметр | Описание |
|---|---|
Блокирующие шаблоны |
Список regex-шаблонов. При совпадении хотя бы одного шаблона с содержимым сообщения детектор срабатывает |
Сообщение при срабатывании |
Текст предупреждения для пользователя (требуется в режимах «Блокировать» и «Добавить сообщение») |
Целевой бэкенд |
Модель или Путь для перенаправления запроса (требуется в режиме «Перенаправить») |
4.3. Детектор чувствительной информации
Детектор обнаруживает персональные и конфиденциальные данные в тексте сообщений. В основе — NLP-движок с расширенным набором распознавателей и встроенной поддержкой русского и английского языков, дополненный нейросетевым распознавателем именованных сущностей.
Набор распознаваемых сущностей задаётся администратором в виде списка классов информации. Класс, снятый в настройках, распознавателем не ищется: такие данные не попадут в аудит и не будут замаскированы.
| Группа | Классы |
|---|---|
Общие классы |
ФИО, Организация, Адрес и местоположение, Возраст, Дата и время, Национальность/религия/взгляды, Идентификатор, Email, Телефон, URL, IP-адрес, MAC-адрес, Паспорт РФ, СНИЛС, ИНН, БИК, Банковский счёт, Банковская карта, IBAN, Криптокошелёк, Приватный ключ |
Документы отдельных стран |
Австралия (ABN, ACN, Medicare, TFN), Великобритания (NHS, NINO, паспорт, индекс), Индия (Aadhaar, GSTIN, PAN, паспорт), Испания (NIE, NIF), Италия (фискальный код, паспорт, права), Корея (RRN, BRN, паспорт, права), Нигерия (NIN, госномер), Польша (PESEL), Сингапур (FIN, UEN), США (SSN, ITIN, паспорт, права), Таиланд (налоговый номер), Финляндия (личный код) |
|
По умолчанию включены все общие классы; классы документов отдельных стран выключены. |
При обнаружении чувствительных данных детектор может не только блокировать запрос, но и маскировать их — заменять на анонимизированные метки (<PERSON_0>, <PHONE_NUMBER_1> и т.п.) перед отправкой в LLM. После получения ответа StarGuard Gate автоматически выполняет демаскирование — восстанавливает оригинальные значения в ответе перед передачей пользователю. Подробное описание параметров детектора представлено ниже.
| Параметр | Описание |
|---|---|
Минимальная уверенность |
Порог уверенности (0–1) для признания сущности чувствительной. Значение по умолчанию — 0,75 |
Маскировать PII |
Включает замену найденных сущностей чувствительных данных на анонимизированные метки перед отправкой запроса в LLM. После получения ответа выполняется автоматическое демаскирование |
Анализируемые классы информации |
Набор классов, которые ищет распознаватель |
Расширенная валидация (LLM) |
Опциональная дополнительная проверка найденных сущностей через Guard LLM Inference (см. ниже) |
Сообщение при срабатывании |
Текст предупреждения для пользователя (требуется в режимах «Блокировать» и «Добавить сообщение») |
Целевой бэкенд |
Модель или Путь для перенаправления запроса (требуется в режиме «Перенаправить») |
Расширенная валидация (LLM)
Опциональный механизм снижения ложных срабатываний. При включении детектор отправляет найденные сущности чувствительных данных на дополнительную проверку в Guard LLM Inference — модель подтверждает или опровергает принадлежность каждой сущности к соответствующему типу. Сущности, не подтверждённые LLM, исключаются из результата. Подробное описание параметров расширенной валидации представлено ниже.
| Параметр | Описание |
|---|---|
Включить |
Активировать расширенную валидацию через LLM |
Базовый URL LLM API |
URL API Guard LLM Inference |
Модель |
Имя модели, используемой для расширенной валидации |
API-токен |
Bearer-токен для аутентификации запросов к Guard LLM Inference (опционально) |
4.4. Input Safe Guard (семантический детектор входящих запросов)
Семантический детектор входящих запросов. Отправляет сообщения пользователя в Guard LLM Inference и получает вердикт о нарушении. Применяется для семантической фильтрации по тематикам, блокировки Prompt Injection, токсичного контента и других сложных правил, которые нельзя выразить регулярным выражением.
Детектор работает по одной из двух стратегий проверки:
-
Тяжёлая (
heavy) — глубокий анализ по набору именованных SafeGuard-политик. Выше расход ресурсов, набор проверяемых тематик настраивается политиками. -
Лёгкая (
light) — быстрая проверка по единственному критерию, сформулированному текстом. Ниже расход ресурсов; если критерий не задан, используется встроенный (prompt injection / jailbreak).
Подробное описание параметров детектора представлено ниже.
| Параметр | Описание |
|---|---|
Стратегия проверки |
«Тяжёлая» — по SafeGuard-политикам; «Лёгкая» — по одному критерию |
При сбое SG |
Реакция на недоступность Guard LLM Inference: «Блокировать (fail-closed)» — по умолчанию, или «Пропускать (fail-open)» |
Доп. попыток |
Количество дополнительных попыток обращения к Guard LLM Inference при ошибке. По умолчанию — 0 |
Backoff, с |
Базовая пауза между повторными попытками. По умолчанию — 0,2 с |
Базовый URL LLM API |
URL API Guard LLM Inference (vLLM) |
Модель |
Имя модели для семантического анализа |
API-токен |
Bearer-токен для аутентификации запросов к Guard LLM Inference (опционально) |
Политики безопасности |
Только для тяжёлой стратегии: список slug’ов SafeGuard-политик типа |
Критерий |
Только для лёгкой стратегии: текстовая формулировка единственного критерия нарушения |
Think-режим |
Только для лёгкой стратегии: включает пошаговое рассуждение модели. При включении рекомендуется Max tokens не менее 4047, иначе рассуждение может обрезаться до вердикта и запрос будет заблокирован |
Temperature, Max tokens |
Только для лёгкой стратегии: параметры генерации (по умолчанию 0,7 и 1024) |
Сообщение при срабатывании |
Текст предупреждения для пользователя (требуется в режимах «Блокировать» и «Добавить сообщение») |
Целевой бэкенд |
Модель или Путь для перенаправления запроса (требуется в режиме «Перенаправить») |
4.5. Пользовательский детектор (WebHook)
Детектор передаёт нормализованный текст запроса во внешний HTTP-сервис заказчика и применяет полученный вердикт. Типовой сценарий — интеграция с корпоративной DLP-системой или собственным сервисом анализа контента.
Детектор описывается списком сервисов: каждый элемент списка — самостоятельный экземпляр детектора со своим адресом, режимом действия и параметрами. Существует два независимых детектора: для запросов (входной) и для ответов LLM (выходной). Параметры сервиса приведены ниже.
| Параметр | Описание |
|---|---|
Имя |
Идентификатор сервиса. Попадает в аудит и в поле «Детектор» события; по нему же хранится секрет. Переименование равносильно созданию нового сервиса — секрет придётся ввести заново |
URL |
Адрес эндпоинта сервиса ( |
Таймаут, мс |
Предельное время ожидания ответа сервиса. По умолчанию — 3000 мс |
Режим |
Режим действия из таблицы режимов. Если не задан, наследуется от детектора |
При сбое |
Реакция на недоступность или ошибку сервиса: «Блокировать (fail-closed)» — по умолчанию, или «Пропускать (fail-open)». Повторных попыток нет |
Аутентификация |
Способ аутентификации шлюза в сервисе: без аутентификации, Bearer-токен, свой заголовок или подпись HMAC |
Имя заголовка |
Заголовок, в который кладётся секрет (только для способа «Свой заголовок») |
Секрет |
Значение токена или ключа подписи. Хранится в зашифрованном виде и наружу не отдаётся |
Разрешить правку запроса |
Только для входного детектора: сервис может заменять текст присланных ему фрагментов |
Отправлять фрагменты / Отправлять диалог |
Состав передаваемых сервису данных |
Сообщение при срабатывании |
Текст, возвращаемый пользователю при блокировке (требуется в режимах «Блокировать» и «Добавить сообщение») |
Целевой бэкенд |
Модель или Путь для перенаправления запроса (требуется в режиме «Перенаправить»; для выходного детектора не применяется) |
|
Внимание. Внешний сервис получает текст до маскирования персональных данных — логи и хранилище такого сервиса становятся хранилищем ПДн. Дополнительно, включённая настройка «Разрешить правку запроса» отменяет маскирование для тех фрагментов, которые сервис изменил, — немаскированные данные в этом случае уйдут и к провайдеру модели. Использование |
4.6. Детектор лимитов пользователя
Контролирует лимит потребления (по токенам или по стоимости) для аутентифицированных пользователей. Перед отправкой запроса в LLM проверяет, не исчерпан ли лимит; после получения ответа — обновляет счётчики в сервисе User State. Для анонимных пользователей (режимы без OIDC) детектор не применяется. Подробное описание параметров детектора представлено ниже.
| Параметр | Описание |
|---|---|
URL сервиса состояния пользователей |
URL сервиса User State, хранящего счётчики и лимиты пользователей |
Сообщение при срабатывании |
Текст предупреждения для пользователя (требуется в режимах «Блокировать» и «Добавить сообщение») |
Целевой бэкенд |
Модель или Путь для перенаправления запроса (требуется в режиме «Перенаправить») |
4.7. Output Safe Guard (семантический детектор ответов LLM)
Аналог Input Safe Guard, применяемый к ответу, полученному от LLM. Поддерживает те же две стратегии проверки; в тяжёлой стратегии использует SafeGuard-политики типа output или both. Подробное описание параметров детектора представлено ниже.
| Параметр | Описание |
|---|---|
Стратегия проверки |
«Тяжёлая» — по SafeGuard-политикам; «Лёгкая» — по одному критерию |
При сбое SG, Доп. попыток, Backoff |
Параметры устойчивости, аналогичные Input Safe Guard |
Базовый URL LLM API |
URL API Guard LLM Inference |
Модель |
Имя модели для семантического анализа |
API-токен |
Bearer-токен для аутентификации запросов к Guard LLM Inference (опционально) |
Политики безопасности |
Список slug’ов SafeGuard-политик типа |
Критерия, Think-режим, Temperature, Max tokens |
Параметры лёгкой стратегии, аналогичные Input Safe Guard |
Сообщение при срабатывании |
Текст предупреждения для пользователя (требуется в режимах «Блокировать» и «Добавить сообщение») |
|
Примечание. Режим «Перенаправить» для выходных детекторов не применим. |
4.8. Tool Policies Detector (детектор вызовов инструментов)
Выходной детектор, контролирующий вызовы инструментов (tool calls), которые LLM генерирует в ответе. Анализирует имя инструмента и аргументы вызова на соответствие набору tool-политик с поддержкой двух режимов: blacklist (блокировать при совпадении паттерна) и whitelist (разрешить только при совпадении хотя бы одного паттерна). Применяется в агентских сценариях для ограничения опасных вызовов (например, выполнения shell-команд или передачи учётных данных). Подробное описание параметров детектора представлено ниже.
| Параметр | Описание |
|---|---|
Политики |
Список slug’ов tool-политик, применяемых к вызовам инструментов в ответе LLM |
Сообщение при срабатывании |
Текст, возвращаемый пользователю при блокировке (требуется в режимах «Блокировать» и «Добавить сообщение») |
|
Примечание. Tool-политика и SafeGuard-политика — это разные сущности. Tool-политика описывает правило проверки аргументов вызова инструмента (инструменты, режим, паттерны), а SafeGuard-политика — правило семантического анализа на естественном языке. |