Пользовательский интерфейс¶
Обзор интерфейса¶
Admin UI — веб-приложение для управления всеми аспектами AppSec.AIGate. Это основная точка взаимодействия пользователя с системой: здесь вы настраиваете провайдеров и профили, создаёте контентные политики, мониторите события безопасности, генерируете отчёты и управляете пользователями.
Адрес: http://<server>:4200.
Аутентификация: для входа требуется учётная запись, см. Управление пользователями. Доступные разделы зависят от роли пользователя.
Структура интерфейса:
Доступ к разделам
Меню не фильтруется по ролям — все пункты видны любому аутентифицированному пользователю. Ограничения применяются на уровне API: при недостатке прав операция возвращает HTTP 403. В колонке «Доступ» указан уровень доступа по ролям.
| Группа | Раздел | URL | Назначение | Доступ |
|---|---|---|---|---|
| Основное | События безопасности | / |
Главная страница (дашборд): события, KPI, графики | admin, operator, viewer |
| Основное | Профили | /profiles |
Профили безопасности: детекторы, политики, режимы | admin, operator |
| Основное | Провайдеры | /providers |
LLM-провайдеры: создание, настройка, доступность | admin, operator |
| Безопасность | Политики | /content-policies |
Контентные политики: блоклисты, аллоулисты, языки | admin, operator |
| Безопасность | Исключения PII | /pii-exclusions |
Списки исключений PII (подавление ложных срабатываний по значению) | admin, operator; viewer — только чтение |
| Операции | Песочница | /playground |
Интерактивная проверка запроса и вердикта детекторов | admin, operator (viewer — недоступно: провайдеры не загружаются) |
| Операции | SIEM Экспорт | /exporters |
Экспорт событий в SIEM: syslog, CEF, webhook, Kafka, файл | admin |
| Операции | Отчёты | /reports |
Генерация отчётов: инцидентные, PII/DLP, использование LLM | admin, operator, viewer |
| Операции | Пользователи | /users |
Управление пользователями и ролями (RBAC) | admin |
| Настройки | Хранение | /settings/retention |
Сроки хранения данных, стратегии очистки | admin |
| Настройки | Лицензия | /licenses |
Управление лицензией | admin, operator; viewer — только статус/использование |
| Система | Реестр детекторов | /system/detectors |
Инвентарь детекторов: built-in (threat-detector, content-safety) — только просмотр; custom-детекторы можно регистрировать, редактировать и архивировать |
просмотр — все роли; управление custom — admin, operator |
Навигация и общие элементы¶
Боковая панель (sidebar) — основной способ навигации. Расположена слева, содержит названия всех разделов, сгруппированных в пять блоков: Основное, Безопасность, Операции, Настройки, Система. Текущий раздел подсвечивается акцентным цветом. Панель можно свернуть кнопкой Toggle Sidebar для увеличения рабочей области.
Общие элементы интерфейса, которые встречаются в большинстве разделов:
| Элемент | Описание | Где встречается |
|---|---|---|
| Таблица с пагинацией | Список сущностей с сортировкой по колонкам и пагинацией. Клик по строке открывает детали. | Провайдеры, Профили, Политики, SIEM Экспорт, События безопасности |
| Фильтры | Панель фильтрации над таблицей. Фильтры сохраняются в URL (можно поделиться ссылкой). Кнопка Сбросить сбрасывает все фильтры. | События безопасности, Провайдеры, Профили, Политики |
| Кнопка создания | Основная кнопка создания новой сущности (например, Создать нового провайдера). Расположена в верхней части раздела. | Провайдеры, Профили, Политики, SIEM Экспорт |
| Статусные badge | Цветные метки статуса: зелёный (ACTIVE), серый (DRAFT), жёлтый (DEPRECATED), красный (ARCHIVED). |
Провайдеры, Профили, Политики |
| Кнопки действий | В столбце Действия: Активировать (активация/реактивация), Редактировать, Удалить (архивация — soft delete). | Провайдеры, Профили, Политики |
| Модальное окно деталей | Всплывающее окно с подробной информацией. Открывается кликом по строке таблицы. Закрывается по Esc или клику вне окна. | События безопасности (детали события) |
| Toast-уведомления | Кратковременные сообщения в правом верхнем углу: зелёные (успех), красные (ошибка), жёлтые (предупреждение). | Все разделы |
События безопасности (главная страница)¶
Страница События безопасности (/) — главная страница Admin UI, выполняющая роль дашборда. Предоставляет полную картину безопасности LLM-трафика в реальном времени: сколько событий произошло, какие типы угроз доминируют, сколько запросов заблокировано. Это первая страница, которую видит пользователь при входе в систему.
Страница состоит из четырёх вертикальных зон: карточки статистики → фильтры → виджеты (графики) → таблица событий.
Карточки статистики¶
В верхней части страницы расположены карточки с агрегированными метриками за выбранный период. Карточки обновляются при изменении фильтров.
| Карточка | Что показывает | Как интерпретировать |
|---|---|---|
| Всего событий | Общее количество всех событий безопасности | Базовый показатель объёма. Резкий рост может означать атаку или изменение паттерна трафика. |
| Заблокировано | Количество запросов/ответов, заблокированных PDP | Ключевая метрика эффективности. Если число высокое — проверьте, нет ли ложных срабатываний. Если ноль при наличии событий — возможно, включён Режим мониторинга. |
| Критичные события | Сумма событий с severity CRITICAL и HIGH | Требуют внимания: jailbreak-атаки, массированные нарушения. Рекомендуется расследовать каждое critical-событие. |
| Content Safety: Unsafe | Количество ответов LLM, классифицированных как unsafe | Показывает, как часто LLM генерирует опасный контент. Высокое число может указывать на необходимость тюнинга модели или системных промптов на стороне LLM. |
| Response Scanner | Суммарные результаты проверки ответов: BLOCK + REDACT + MONITOR | Показывает активность проверки исходящего трафика. Если ноль — проверьте, включён ли Response Scanning в профиле. |
| Output PII | Количество секретов/PII, обнаруженных в ответах LLM | Критическая метрика: LLM не должен раскрывать секреты. Ненулевое значение требует расследования — возможно, модель имеет доступ к конфиденциальным данным. |
Фильтры¶
Панель фильтрации расположена под карточками. Фильтры применяются ко всем элементам страницы: карточкам, виджетам и таблице событий.
| Фильтр | Тип элемента | Допустимые значения | Пояснение |
|---|---|---|---|
| Период | Кнопки + календарь | 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 — события из Режима мониторинга. |
Совет
Фильтры сохраняются в 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 (Режим мониторинга).
Как использовать: сегмент 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 данные).
Таблица событий¶
Основная таблица занимает нижнюю часть страницы. Показывает список событий безопасности в хронологическом порядке (новые сверху).
| Колонка | Что показывает | Интерактивность |
|---|---|---|
| Время | Дата и время события в формате 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 | Результаты по категориям: название категории, реальный score модели, verdict (Safe / Controversial / Unsafe). Отображаются только категории с ненулевым score. |
| Content Policy | Список сработавших правил: имя политики, имя правила, тип паттерна (keyword/regex), severity. |
Блок «Решение»:
| Поле | Описание |
|---|---|
| PDP Decision | Финальное решение: ALLOW, BLOCK, SANITIZE, MONITOR, REDACT. |
| Severity Boost | Совокупный severity boost от всех детекторов (числовое значение). Если > 0.5 — решение BLOCK. |
| Reason | Текстовое описание причины решения. |
Провайдеры¶
Страница управления LLM-провайдерами. Здесь вы видите все настроенные подключения к LLM backend и их текущее состояние.
Таблица провайдеров содержит следующие колонки:
| Колонка | Описание |
|---|---|
| Имя | Имя провайдера. Клик открывает форму редактирования. |
| Тип | Custom (обычный провайдер) или Guardrail (интеграция с внешним LLM Gateway). |
| Статус | DRAFT (серый), ACTIVE (зелёный), ARCHIVED (красный). |
| Доступность | Результат health-check: Неизвестно (до проверки) или текст ошибки соединения при недоступности backend. |
| Метод роутинга | Как определяются запросы: URL Pattern, Host/Domain или HTTP Header. |
| Действия | Кнопки: Просмотр, Проверить доступность, Редактировать, Активировать, Удалить (архивация). |
Фильтры: по статусу.
Кнопка «Создать нового провайдера» — открывает форму создания. Подробное описание полей формы — см. Управление провайдерами.
Кнопка «Проверить доступность» — запускает немедленную проверку доступности backend. Полезно после изменения Target Base URL или при расследовании проблем. Gateway отправляет HTTP-запрос к backend и измеряет время ответа. Результат отображается в колонке Доступность через несколько секунд.
Совет
Если backend недоступен — проверьте Target Base URL, сетевую связность и firewall-правила. Наведите на значок в колонке Доступность — tooltip покажет последнюю ошибку.
Профили¶
Страница управления профилями безопасности. Каждая строка — один профиль с его привязкой к провайдеру и текущим состоянием детекторов.
Таблица профилей:
| Колонка | Описание |
|---|---|
| Название | Имя профиля. Клик открывает форму редактирования. |
| Provider ID | Привязанный провайдер. |
| Статус | DRAFT, ACTIVE, DEPRECATED, ARCHIVED. |
| Версия | Версия профиля. |
| Действия | Просмотр, Редактировать, Активировать, Удалить (архивация). |
Фильтры: по статусу.
Форма создания/редактирования профиля организована в пять вкладок: Основное → Защита запросов → Защита ответов → Поведение при сбоях и риск → Логирование и аудит.
Подробное описание каждого параметра — см. Управление профилями.
Политики (контентные политики)¶
Страница управления кастомными контентными политиками. Здесь вы создаёте бизнес-правила: что запрещено, что разрешено, какие языки допустимы.
Таблица политик:
| Колонка | Описание |
|---|---|
| Название | Имя политики. Клик открывает форму редактирования. |
| Тип | 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 - Кнопка Тест — проверка паттерна на произвольном тексте прямо в форме
Привязка к профилям — политики привязываются на стороне профиля: откройте профиль на Редактирование, вкладка Защита запросов, блок Контентные политики — отметьте нужные политики чекбоксами (см. Управление профилями).
Подробное описание типов политик и паттернов — см. Управление контентными политиками.
SIEM Экспорт¶
Страница управления экспортерами событий в SIEM и другие внешние системы.
Таблица экспортеров:
| Колонка | Описание |
|---|---|
| Название | Имя экспортера. Клик открывает форму редактирования. |
| Тип | syslog, cef, webhook, kafka, file. С иконкой типа. |
| Назначение | Адрес назначения: host:port (для syslog/kafka), URL (для webhook), путь (для file). |
| Фильтры | Краткое описание активных фильтров: severity >= HIGH, types: THREAT_DETECTED и т.д. |
| Статус | Включён (зелёный) / Отключён (серый). |
| Обновлён | Время последнего успешного экспорта. Если давно — возможны проблемы с подключением. |
| Действия | Редактировать, Тест, Удалить. |
Кнопка «Добавить экспортер» — открывает форму создания.
Кнопка «Тест» — отправляет тестовое событие в указанную систему. Позволяет проверить связность и правильность конфигурации без ожидания реального события. Результат (успех/ошибка) отображается в toast-уведомлении.
Форма создания — динамическая: набор полей зависит от выбранного типа экспортера. Например, для syslog — host, port, protocol, facility; для webhook — URL, headers, HMAC secret; для Kafka — brokers, topic, key.
Подробное описание параметров каждого типа — см. Экспорт событий (SIEM).
Отчёты¶
Страница генерации и скачивания отчётов.
Интерфейс состоит из двух частей:
Форма генерации (верхняя часть): | Поле | Описание | |------|----------| | Тип отчёта | Выпадающий список: Incident Report, PII/DLP Report, LLM Usage Report. | | Формат | PDF (с поддержкой кириллицы) или CSV (UTF-8 с BOM для корректного открытия в Excel). | | Период | Диапазон дат через date picker. | | Кнопка «Сгенерировать» | Запускает генерацию. Кнопка становится неактивной во время генерации. |
Список отчётов (нижняя часть) — таблица ранее сгенерированных отчётов с колонками: название, тип, период, дата генерации, размер, статус (generating / ready / error), кнопка скачивания.
Во время генерации интерфейс автоматически опрашивает статус (auto-polling) и показывает прогресс. Когда отчёт готов, появляется кнопка Скачать.
Подробное описание типов отчётов — см. Отчёты.
Пользователи¶
Страница управления пользователями и ролями. Доступна только пользователям с ролью admin.
Таблица пользователей:
| Колонка | Описание |
|---|---|
| Имя | Имя / email пользователя. |
| Роль | admin (красный badge), operator (синий), viewer (серый). |
| Статус | active (зелёный) / disabled (серый). |
| Последний вход | Дата и время последней аутентификации. |
| Действия | Редактировать, Заблокировать/Разблокировать. |
Роли и их права:
| Действие | admin | operator | viewer |
|---|---|---|---|
| Просмотр событий безопасности | да | да | да |
| Создание/редактирование провайдеров | да | да | нет |
| Создание/редактирование профилей | да | да | нет |
| Создание/редактирование политик | да | да | нет |
| Активация/деактивация сущностей | да | да | нет |
| Управление экспортерами | да | нет | нет |
| Управление пользователями | да | нет | нет |
| Настройки хранения | да | нет | нет |
| Просмотр отчётов | да | да | да |
| Генерация отчётов | да | да | нет |
| Просмотр аудит-лога | да | да | да |
Интеграция с Keycloak: при включённом OAUTH2_PROXY управление пользователями выполняется через Keycloak. В этом режиме страница Пользователи отображает информацию о пользователях, синхронизированных из Keycloak, но создание и удаление выполняется на стороне Keycloak.
Подробнее о RBAC — см. Управление пользователями.
Хранение¶
Страница настройки сроков хранения данных. Доступна только пользователям с ролью admin. Здесь определяется, как долго система хранит события, аудит-логи и отчёты, и какая стратегия очистки применяется.
Интерфейс состоит из трёх блоков:
Использование хранилища (информационный блок):
| Метрика | Описание |
|---|---|
| Events | Объём хранимых событий безопасности (в ГБ) и количество записей. |
| Audit Log | Объём журнала аудита. |
| Reports | Объём сгенерированных отчётов. |
| Total | Суммарный объём с прогресс-баром относительно порога предупреждения. |
Параметры хранения (настраиваемые поля):
| Параметр | Описание | По умолчанию |
|---|---|---|
| Security Events | Срок хранения событий безопасности | 90 дней |
| Event Details (PII) | Срок хранения деталей с PII-данными (промпты, найденные PII). По истечении — данные удаляются или очищаются (зависит от стратегии). | 30 дней |
| Audit Log | Срок хранения записей журнала аудита | 365 дней |
| Reports | Срок хранения сгенерированных отчётов | 180 дней |
| Cleanup Strategy | Стратегия очистки по истечении срока: pii_scrub (удаление только PII-полей, метаданные остаются) или hard_delete (полное удаление записи). |
pii_scrub |
Расширенные настройки (расширенные параметры):
| Параметр | Описание | По умолчанию |
|---|---|---|
| Warning Threshold | Порог предупреждения об объёме хранилища (ГБ). При превышении — уведомление администратору. | 10 ГБ |
| Cleanup Batch Size | Количество записей, обрабатываемых за одну итерацию очистки. Влияет на нагрузку на БД при очистке. | 1000 |
Важно для 152-ФЗ
Если ваша организация обязана соблюдать 152-ФЗ, установите Event Details (PII) на минимально необходимый срок и используйте стратегию pii_scrub. Это позволяет сохранить метаданные событий для аналитики, но удалить персональные данные по истечении срока. Подробнее — см. Настройки хранения данных.