Журнал аудита, хранение и выгрузка
Журнал аудита шлюза: что записывается, выгрузка CSV и JSONL, настраиваемый срок хранения записей и детерминированный аудит ролей и RLS.
Каждое действие ассистента записано: кто спросил, к какой базе, что было разрешено, замаскировано или заблокировано. Инциденты разбираются по записям журнала, а не по памяти.
Что попадает в журнал
- Каждый терминальный исход вызова инструмента записывается строкой
mcp_tool_call: статус, длительность в миллисекундах, размер входа и, когда он есть, идентификатор токена. - Каждый участник команды атрибутируется независимо: у него свои токены, и его действия видны в журнале отдельно.
- Маскирование персональных данных пишет собственные детальные записи: SHA256 оригинала, идентификатор правила, токен и инструмент.
- Отдельные события фиксируют решения политик, например включение небезопасной схемы подключения к 1С (
onec.config.insecure_scheme) или явное разрешение внешнего git-зеркала (git_bridge.mirror.external_allowed).
Выгрузка CSV и JSONL
Журнал аудита и активность пользователей выгружаются потоково:
GET /web/admin/audit/export: выгрузка журнала аудита;GET /web/admin/activity/export: выгрузка активности с агрегацией по пользователям.
Выгрузка отдаёт те же строки, что видны в текущем фильтре просмотра, в формате CSV или JSONL. Формат укреплён: UTF-8 BOM и нейтрализация формульных инъекций. Перед каждым экспортным endpoint стоит ограничитель 10 выгрузок в час на пользователя; доступ только у Owner и Admin.
Срок хранения
Автоматическая очистка старых записей аудита по умолчанию выключена и включается переменной TRUST_AUDIT_RETENTION_ENABLED. Свойства:
- записи удаляются ограниченными пакетами, чтобы не держать долгие блокировки в базе данных;
- граница окна исключающая, а минимальный срок хранения зафиксирован жёстким полом в 90 дней, поэтому ошибка настройки не удалит свежие записи;
- удаление необратимо, и автоматическая выгрузка перед удалением не выполняется: решение о предварительной выгрузке принимает владелец (в том числе по требованиям юристов), см. выгрузку выше.
Аудит ролей и RLS
Детерминированный отчёт о безопасности ролей, прав и RLS строится поверх полного дампа конфигурации и доступен под правом просмотра аудита. Разбираются Roles/<Имя>.xml и Ext/Rights.xml в матрицу прав по ролям и текст RLS-ограничений; находки формируются набором правил D1..D7.
Ядро защиты от ложных тревог: правило о пропущенном RLS помечает не отсутствие RLS вообще, а отклонение от паттерна самой конфигурации (config-relative). Отчёт готовит фоновый воркер; у кого нет права, у того отчёт не появляется вовсе.
Дополнительно:
- опциональный слой семантики RLS на локальной (on-prem) LLM выключен по умолчанию; его находки советующие и в счётчики критичного не входят;
- при код-ревью запроса на слияние отдельный класс правил аудитирует изменённые роли поверх гейта качества.