Перейти к содержанию

Пользовательский интерфейс

Обзор интерфейса

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. Это позволяет сохранить метаданные событий для аналитики, но удалить персональные данные по истечении срока. Подробнее — см. Настройки хранения данных.