Интерфейс администратора¶
Обзор интерфейса¶
Admin UI — веб-приложение для управления всеми аспектами AppSec.AIGate. Это единственная точка взаимодействия администратора с системой: здесь вы настраиваете провайдеров и профили, создаёте контентные политики, мониторите события безопасности, генерируете отчёты и управляете пользователями.
Адрес: http://<server>:4200.
Аутентификация: для входа требуется учётная запись, см. Управление пользователями. Доступные разделы зависят от роли пользователя.
Структура интерфейса:
| Раздел | URL | Назначение | Доступ по ролям |
|---|---|---|---|
| Dashboard | / |
Мониторинг: события безопасности, графики, аналитика в реальном времени | admin, operator, viewer |
| Providers | /providers |
Управление LLM-провайдерами: создание, настройка, мониторинг health | admin, operator |
| Profiles | /profiles |
Управление профилями безопасности: детекторы, пороги, режимы | admin, operator |
| Content Policies | /content-policies |
Кастомные правила: блоклисты, аллоулисты, языковые ограничения | admin, operator |
| Exporters | /exporters |
Экспорт событий в SIEM: syslog, CEF, webhook, Kafka, файл | admin |
| Reports | /reports |
Генерация отчётов: инцидентные, PII/DLP, использование LLM | admin, operator, viewer |
| Users | /users |
Управление пользователями и ролями (RBAC) | admin |
| Retention Settings | /settings/retention |
Сроки хранения данных, стратегии очистки | admin |
Навигация и общие элементы¶
Боковая панель (sidebar) — основной способ навигации. Расположена слева, содержит иконки и названия всех 8 разделов. Текущий раздел подсвечивается акцентным цветом. Панель можно свернуть для увеличения рабочей области.
Общие элементы интерфейса, которые встречаются в большинстве разделов:
| Элемент | Описание | Где встречается |
|---|---|---|
| Таблица с пагинацией | Список сущностей с сортировкой по колонкам и пагинацией (10 элементов на страницу по умолчанию). Клик по строке открывает детали. | Providers, Profiles, Content Policies, Exporters, Dashboard (события) |
| Фильтры | Панель фильтрации над таблицей. Фильтры сохраняются в URL (можно поделиться ссылкой). Кнопка «Reset» сбрасывает все фильтры. | Dashboard, Providers, Profiles, Content Policies |
| Кнопка Create | Основная кнопка создания новой сущности. Расположена в верхнем правом углу раздела. | Providers, Profiles, Content Policies, Exporters |
| Статусные badge | Цветные метки статуса: зелёный (ACTIVE/HEALTHY), серый (DRAFT), жёлтый (DEPRECATED), красный (ARCHIVED/UNHEALTHY). | Providers, Profiles, Content Policies |
| Кнопка Activate/Deactivate | Иконка Power или переключатель для смены статуса сущности. | Providers, Profiles, Content Policies |
| Модальное окно деталей | Всплывающее окно с подробной информацией. Открывается кликом по строке таблицы. Закрывается по Esc или клику вне окна. | Dashboard (детали события), Providers (детали health check) |
| Toast-уведомления | Кратковременные сообщения в правом верхнем углу: зелёные (успех), красные (ошибка), жёлтые (предупреждение). | Все разделы |
Dashboard¶
Dashboard (/) — главная страница Admin UI. Предоставляет полную картину безопасности LLM-трафика в реальном времени: сколько событий произошло, какие типы угроз доминируют, сколько запросов заблокировано. Это первая страница, которую видит оператор при входе в систему.
Dashboard состоит из четырёх вертикальных зон: карточки статистики → фильтры → виджеты (графики) → таблица событий.
Карточки статистики¶
В верхней части Dashboard расположены карточки с агрегированными метриками за выбранный период. Карточки обновляются при изменении фильтров.
| Карточка | Что показывает | Как интерпретировать |
|---|---|---|
| Total Events | Общее количество всех событий безопасности | Базовый показатель объёма. Резкий рост может означать атаку или изменение паттерна трафика. |
| Blocked Events | Количество запросов/ответов, заблокированных PDP | Ключевая метрика эффективности. Если число высокое — проверьте, нет ли ложных срабатываний. Если ноль при наличии Total Events — возможно, включён Monitor Mode. |
| Critical Events | Сумма событий с severity CRITICAL и HIGH | Требуют внимания: jailbreak-атаки, массированные нарушения. Рекомендуется расследовать каждое critical-событие. |
| Content Safety Unsafe | Количество ответов LLM, классифицированных как unsafe | Показывает, как часто LLM генерирует опасный контент. Высокое число может указывать на необходимость тюнинга модели или системных промптов на стороне LLM. |
| Response Scanner | Суммарные результаты проверки ответов: BLOCK + REDACT + MONITOR | Показывает активность проверки исходящего трафика. Если ноль — проверьте, включён ли Response Scanning в профиле. |
| Output PII | Количество секретов/PII, обнаруженных в ответах LLM | Критическая метрика: LLM не должен раскрывать секреты. Ненулевое значение требует расследования — возможно, модель имеет доступ к конфиденциальным данным. |
Фильтры¶
Панель фильтрации расположена под карточками. Фильтры применяются ко всем элементам Dashboard: карточкам, виджетам и таблице событий.
| Фильтр | Тип элемента | Допустимые значения | Пояснение |
|---|---|---|---|
| Период | Кнопки + календарь | 24h, 7d, 30d, пользовательский диапазон |
Временное окно для выборки. Пользовательский диапазон задаётся через календарь (date picker). По умолчанию: 24 часа. |
| Profile ID | Выпадающий список | UUID профиля | Фильтрует события конкретного профиля. Полезно, если у вас несколько провайдеров и нужно смотреть трафик только одного. |
| Trace ID | Текстовое поле | UUID трассировки | Поиск конкретного запроса по его trace_id. Используется для расследования инцидентов: вставьте trace_id из SIEM и увидите все детали. |
| Тип события | Выпадающий список (множественный) | THREAT_DETECTED, PII_DETECTED, POLICY_VIOLATION, REQUEST_BLOCKED и др. |
Показать только определённые типы. Можно выбрать несколько. |
| Критичность | Выпадающий список (множественный) | CRITICAL, HIGH, MEDIUM, LOW, INFO |
Фильтр по уровню серьёзности. Для SOC-аналитика полезно: CRITICAL + HIGH. |
| Действие | Выпадающий список (множественный) | BLOCK, SANITIZE, ALLOW, MONITOR_ONLY, REDACT |
Фильтр по решению PDP. MONITOR_ONLY — события из Monitor Mode. |
Совет
Фильтры сохраняются в URL-параметрах. Это значит, что вы можете скопировать URL из адресной строки и отправить коллеге — он увидит те же фильтры и данные. Удобно для обсуждения инцидентов.
Виджеты¶
Дашборд содержит 5 виджетов визуализации, расположенных между фильтрами и таблицей событий. Все виджеты интерактивны — клик по элементу графика автоматически фильтрует таблицу событий ниже.
1. Threat Timeline (линейный график).
Многолинейный график, показывающий динамику событий безопасности во времени. Каждый тип события — отдельная линия со своим цветом. Ось X — временные интервалы (часы при периоде 24h, дни при 7d/30d). Ось Y — количество событий.
Как использовать: ищите аномальные пики. Резкий рост линии THREAT_DETECTED может означать целенаправленную атаку. Постоянный рост PII_DETECTED может указывать на новый бизнес-процесс, в котором пользователи работают с ПДн. Клик по линии — таблица ниже фильтруется по этому типу события.
2. Topic Violations (столбчатая диаграмма).
Топ-10 нарушений контентных политик, сгруппированных по категориям (названиям политик). Показывает, какие именно бизнес-правила нарушаются чаще всего.
Как использовать: если одна политика доминирует — возможно, правило слишком широкое (много false positive), или пользователи действительно часто нарушают это ограничение. Клик по столбцу — фильтрация таблицы по CUSTOM_POLICY_BLOCK.
3. Toxicity Detections (кольцевая диаграмма).
Распределение вердиктов Content Safety для ответов LLM: Safe (безопасно), Unsafe (опасно), Controversial (спорно). Показывает долю опасного контента в ответах модели.
Как использовать: в идеале сегмент Unsafe должен быть минимальным. Если он растёт — LLM генерирует больше опасного контента, что может требовать тюнинга системных промптов или смены модели.
4. Response Scanner (кольцевая диаграмма).
Распределение решений для исходящих ответов: PASS (пропущен), BLOCK (заблокирован), REDACT (секреты удалены), MONITOR (Monitor Mode).
Как использовать: сегмент BLOCK показывает, сколько ответов LLM не дошли до пользователей. Сегмент REDACT — сколько ответов прошли, но с удалёнными секретами. Клик по сегменту BLOCK — детали заблокированных ответов в таблице.
5. Output PII Events (составной виджет).
Левая часть: 3 карточки — Responses with PII (сколько ответов содержали PII), Entities masked (сколько отдельных PII-сущностей замаскировано), Total entities (общее число найденных сущностей). Правая часть: горизонтальная столбчатая диаграмма — топ-8 типов PII-сущностей в ответах (api_key, jwt_token, email, phone и т.д.).
Как использовать: если api_key или private_key в топе — LLM раскрывает инфраструктурные секреты, что критически опасно. Необходимо расследовать источник утечки (контекст модели, RAG-индекс, fine-tuning данные).
Таблица событий¶
Основная таблица занимает нижнюю часть Dashboard. Показывает список событий безопасности в хронологическом порядке (новые сверху).
| Колонка | Что показывает | Интерактивность |
|---|---|---|
| Время | Дата и время события в формате DD.MM.YYYY HH:MM:SS |
Сортировка по клику на заголовок |
| Profile ID | ID профиля, который обработал запрос | — |
| Тип события | Тип события в виде цветного badge: красный (BLOCKED, THREAT), оранжевый (PII, POLICY), синий (MONITOR) | — |
| Критичность | Severity: CRITICAL (красный), HIGH (оранжевый), MEDIUM (жёлтый), LOW (серый), INFO (синий) | Сортировка по клику |
| Действие | Решение PDP: BLOCK, SANITIZE, ALLOW, MONITOR_ONLY, REDACT | — |
| Trace ID | Уникальный идентификатор запроса для корреляции с SIEM и логами | Клик — копирование в буфер обмена |
Пагинация: 10 событий на страницу. Навигация по страницам — внизу таблицы.
Клик по строке — открывает модальное окно с полными деталями события (см. ниже).
Детали события (модальное окно)¶
Нажатие на любую строку таблицы открывает модальное окно с исчерпывающей информацией о событии. Окно разделено на логические блоки:
Блок «Запрос»:
| Поле | Описание |
|---|---|
| Trace ID | Полный UUID трассировки. Кнопка копирования рядом. Используйте для поиска в SIEM. |
| User Prompt | Исходный текст промпта пользователя. Отображается для запросов, которые не были заблокированы. Для заблокированных запросов показывается только hash промпта (SHA-256) — сам текст не сохраняется в целях безопасности. |
| IP Address | IP-адрес клиента (из заголовка X-Real-IP или X-Forwarded-For). |
| User-Agent | HTTP заголовок User-Agent клиента. Помогает идентифицировать источник запроса (браузер, SDK, curl). |
| Время обработки | Латентность обработки в миллисекундах. Показывает, сколько времени заняла детекция (не включает время ответа LLM). |
Блок «Результаты детекции»:
| Поле | Описание |
|---|---|
| Threat Score | Числовой score ML-модели (0.0–1.0) и бинарное решение: safe / unsafe. Показывает, насколько уверен детектор в наличии угрозы. |
| PII Entities | Список обнаруженных PII с типами: EMAIL, PHONE, PASSPORT и т.д. Указывается количество каждого типа и применённое действие (masked/redacted/blocked). |
| Content Safety | Результаты по каждой из 9 категорий: название категории, score, verdict (safe/unsafe). Отображаются только категории с ненулевым score. |
| Content Policy | Список сработавших правил: имя политики, имя правила, тип паттерна (keyword/regex), severity. |
Блок «Решение»:
| Поле | Описание |
|---|---|
| PDP Decision | Финальное решение: ALLOW, BLOCK, SANITIZE, MONITOR, REDACT. |
| Severity Boost | Совокупный severity boost от всех детекторов (числовое значение). Если > 0.5 — решение BLOCK. |
| Reason | Текстовое описание причины решения. |
Providers¶
Страница управления LLM-провайдерами. Здесь вы видите все настроенные подключения к LLM backend и их текущее состояние.
Таблица провайдеров содержит следующие колонки:
| Колонка | Описание |
|---|---|
| Название | Имя провайдера. Клик открывает форму редактирования. |
| Тип | Тип LLM API (openai, anthropic, azure и т.д.). Отображается с иконкой провайдера. |
| Target URL | URL целевого backend. Показывает, куда проксируются запросы. |
| Метод роутинга | Как определяются запросы: URL Pattern, Host или Header. Рядом — значение паттерна/заголовка. |
| Статус | DRAFT (серый), ACTIVE (зелёный), ARCHIVED (красный). |
| Health | HEALTHY (зелёный, с latency в мс), UNHEALTHY (красный), CHECKING (анимация). Обновляется автоматически. |
| Действия | Кнопки: Activate/Deactivate, Edit, Archive, Check Health. |
Фильтры: по типу провайдера, статусу, методу роутинга.
Кнопка «Create Provider» — открывает форму создания. Подробное описание полей формы — см. Управление провайдерами.
Кнопка «Check Health» (иконка пульса) — запускает немедленную проверку доступности backend. Полезно после изменения Target URL или при расследовании проблем. Gateway отправляет HTTP-запрос к backend и измеряет время ответа. Результат отображается в колонке Health через несколько секунд.
Совет
Если провайдер показывает UNHEALTHY — проверьте Target URL, сетевую связность и firewall-правила. Наведите на иконку Health — tooltip покажет последнюю ошибку.
Profiles¶
Страница управления профилями безопасности. Каждая строка — один профиль с его привязкой к провайдеру и текущим состоянием детекторов.
Таблица профилей:
| Колонка | Описание |
|---|---|
| Название | Имя профиля. Клик открывает форму редактирования. |
| Provider | Привязанный провайдер (имя + тип). |
| Детекторы | Набор иконок-индикаторов для каждого детектора: Threat (щит), PII (замок), Content Safety (глаз), Response Scanning (стрелки), Output PII (ключ). Зелёный — включён, серый — выключен. |
| Monitor Mode | Badge: ON (жёлтый) / OFF. Если ON — профиль работает в режиме наблюдения. |
| Fail-Safe | closed или open. |
| Статус | DRAFT, ACTIVE, DEPRECATED, ARCHIVED. |
| Действия | Activate/Deactivate, Edit, Deprecate, Archive. |
Фильтры: по статусу, по провайдеру, по состоянию Monitor Mode.
Форма создания/редактирования профиля — многошаговая: основные параметры → Threat Detection → PII Detection → Content Safety → Response Scanning → Output PII → Homoglyph → Fail-Safe / Monitor → Event Logging. Каждый детектор настраивается на отдельной вкладке.
Подробное описание каждого параметра — см. Управление профилями.
Content Policies¶
Страница управления кастомными контентными политиками. Здесь вы создаёте бизнес-правила: что запрещено, что разрешено, какие языки допустимы.
Таблица политик:
| Колонка | Описание |
|---|---|
| Название | Имя политики. Клик открывает форму редактирования. |
| Тип | blocklist (красный badge), allowlist (зелёный), language (синий). |
| Правила | Количество правил в политике (например, «12 rules»). |
| Scope | input / output / both. Направление проверки. |
| Priority | Числовой приоритет. Меньше = раньше оценивается. |
| Привязки | Количество профилей, к которым привязана политика (например, «3 profiles»). |
| Статус | DRAFT, ACTIVE, ARCHIVED. |
Визуальный редактор правил — при создании/редактировании политики вы работаете с интерактивным списком правил. Для каждого правила: - Выбор типа паттерна: keyword или regex - Ввод паттерна с подсветкой синтаксиса (для regex) - Выбор действия: block, flag, trust_pii - Выбор severity: low, medium, high, critical - Кнопка «Test» — проверка паттерна на произвольном тексте прямо в форме
Привязка к профилям — в форме редактирования политики есть вкладка «Profiles», где можно привязать или отвязать профили через checkbox-список.
Подробное описание типов политик и паттернов — см. Управление контентными политиками.
Exporters¶
Страница управления экспортерами событий в SIEM и другие внешние системы.
Таблица экспортеров:
| Колонка | Описание |
|---|---|
| Название | Имя экспортера. Клик открывает форму редактирования. |
| Тип | syslog, cef, webhook, kafka, file. С иконкой типа. |
| Destination | Адрес назначения: host:port (для syslog/kafka), URL (для webhook), путь (для file). |
| Фильтры | Краткое описание активных фильтров: severity >= HIGH, types: THREAT_DETECTED и т.д. |
| Статус | enabled (зелёный) / disabled (серый). |
| Last Export | Время последнего успешного экспорта. Если давно — возможны проблемы с подключением. |
| Действия | Enable/Disable, Edit, Delete, Test. |
Кнопка «Test» — отправляет тестовое событие в указанную систему. Позволяет проверить связность и правильность конфигурации без ожидания реального события. Результат (успех/ошибка) отображается в toast-уведомлении.
Форма создания — динамическая: набор полей зависит от выбранного типа экспортера. Например, для syslog — host, port, protocol, facility; для webhook — URL, headers, HMAC secret; для Kafka — brokers, topic, key.
Подробное описание параметров каждого типа — см. События безопасности.
Reports¶
Страница генерации и скачивания отчётов.
Интерфейс состоит из двух частей:
Форма генерации (верхняя часть): | Поле | Описание | |------|----------| | Тип отчёта | Выпадающий список: Incident Report, PII/DLP Report, LLM Usage Report. | | Формат | PDF (с поддержкой кириллицы) или CSV (UTF-8 с BOM для корректного открытия в Excel). | | Период | Диапазон дат через date picker. | | Tenant | Tenant для отчёта (для admin — доступен выбор из списка, для operator — автоматически текущий). | | Кнопка «Generate» | Запускает генерацию. Кнопка становится неактивной во время генерации. |
Список отчётов (нижняя часть) — таблица ранее сгенерированных отчётов с колонками: название, тип, период, дата генерации, размер, статус (generating / ready / error), кнопка скачивания.
Во время генерации интерфейс автоматически опрашивает статус (auto-polling) и показывает прогресс. Когда отчёт готов, появляется кнопка Download.
Подробное описание типов отчётов — см. Отчёты.
Users¶
Страница управления пользователями и ролями. Доступна только пользователям с ролью admin.
Таблица пользователей:
| Колонка | Описание |
|---|---|
| Имя | Имя / email пользователя. |
| Роль | admin (красный badge), operator (синий), viewer (серый). |
| Tenant | Привязанный tenant (для operator и viewer). Admin видит все tenant. |
| Статус | active (зелёный) / disabled (серый). |
| Последний вход | Дата и время последней аутентификации. |
| Действия | Edit, Disable/Enable. |
Роли и их права:
| Действие | admin | operator | viewer |
|---|---|---|---|
| Просмотр Dashboard | да | да | да |
| Создание/редактирование провайдеров | да | да | нет |
| Создание/редактирование профилей | да | да | нет |
| Создание/редактирование политик | да | да | нет |
| Активация/деактивация сущностей | да | да | нет |
| Управление экспортерами | да | нет | нет |
| Управление пользователями | да | нет | нет |
| Настройки хранения | да | нет | нет |
| Просмотр отчётов | да | да | да |
| Генерация отчётов | да | да | нет |
| Просмотр аудит-лога | да | да | да |
Интеграция с Keycloak: при включённом OAUTH2_PROXY управление пользователями выполняется через Keycloak. В этом режиме страница Users отображает информацию о пользователях, синхронизированных из Keycloak, но создание и удаление выполняется на стороне Keycloak.
Подробнее о RBAC — см. Управление пользователями.
Retention Settings¶
Страница настройки сроков хранения данных. Доступна только пользователям с ролью admin. Здесь определяется, как долго система хранит события, аудит-логи и отчёты, и какая стратегия очистки применяется.
Интерфейс состоит из трёх блоков:
Storage Stats (информационный блок):
| Метрика | Описание |
|---|---|
| Events | Объём хранимых событий безопасности (в ГБ) и количество записей. |
| Audit Log | Объём журнала аудита. |
| Reports | Объём сгенерированных отчётов. |
| Total | Суммарный объём с прогресс-баром относительно порога предупреждения. |
Retention Periods (настраиваемые поля):
| Параметр | Описание | По умолчанию |
|---|---|---|
| Security Events | Срок хранения событий безопасности | 90 дней |
| Event Details (PII) | Срок хранения деталей с PII-данными (промпты, найденные PII). По истечении — данные удаляются или очищаются (зависит от стратегии). | 30 дней |
| Audit Log | Срок хранения записей журнала аудита | 365 дней |
| Reports | Срок хранения сгенерированных отчётов | 180 дней |
| Cleanup Strategy | Стратегия очистки по истечении срока: pii_scrub (удаление только PII-полей, метаданные остаются) или hard_delete (полное удаление записи). |
pii_scrub |
Advanced Settings (расширенные параметры):
| Параметр | Описание | По умолчанию |
|---|---|---|
| Warning Threshold | Порог предупреждения об объёме хранилища (ГБ). При превышении — уведомление администратору. | 10 ГБ |
| Cleanup Batch Size | Количество записей, обрабатываемых за одну итерацию очистки. Влияет на нагрузку на БД при очистке. | 1000 |
Важно для 152-ФЗ
Если ваша организация обязана соблюдать 152-ФЗ, установите Event Details (PII) на минимально необходимый срок и используйте стратегию pii_scrub. Это позволяет сохранить метаданные событий для аналитики, но удалить персональные данные по истечении срока. Подробнее — см. Настройки хранения данных.