Аудит событий информационной безопасности#
Аудит событий ИБ может быть выполнен как штатными средствами CedrusData, так и с использованием расширенных средств аудита, поставляемых в виде отдельного плагина.
Аудит событий ИБ штатными средствами#
Аудит в CedrusData обеспечивается следующей функциональностью:
Логи работы сервера и http-запросов
data/var/log/server.log
иhttp-request.log
(см. Развертывание)Журналирование работы запросов (QueryCreated, QueryConpleted) через механизм listeners: HTTP event listener, Kafka event listener, {doc }
/admin/event-listeners-mysql
, OpenLineage event listenerРасширенное журналирование исполныемых запросов и информации по ним в файл или внешнюю БД (см. Персистентная история запросов CedrusData)
Расширенный аудит событий ИБ#
Расширенный аудит в CedrusData в сравнении со штатным имеет следующие отличия:
расширенный атрибутный состав
расширенный набор событий
записываются в единый файл аудита
Расширенный аудит реализуются через разработку расширения (SPI-плагин, интерфейс io.trino.spi.eventlistener.CedrusDataEventListener
).
Подробности по каждому пункту можно найти ниже.
Примечание
Функционал расширенного аудита событий ИБ не входит в общий дистрибутив CedrusData. Пожалуйста обратитесь к нам через форму обратной связи, чтобы получить последнюю версию плагина.
Установка#
Разместите SPI-плагин в каталоге
plugin
директории установки CedrusData (напримерplugins/audit-plugin/cedrusdata-audit-events-1.0.jar
)Сконфигурируйте параметры:
2.1 В файле etc/config.properties
добавьте параметр:
event-listener.config-files=etc/event-listener.properties
2.2. Создайте новый файл etc/event-listener.properties
со следующим содержимым:
event-listener.name=cedrusdata-audit-events
2.3. Создайте файл etc/logging.properties
со следующим содержимым:
.level=INFO
ru.cedrusdata.spi.level = INFO
ru.cedrusdata.spi.handlers = java.util.logging.FileHandler
java.util.logging.FileHandler.pattern=/data/cedrusdata-audit-%g.log
java.util.logging.FileHandler.limit=102400 # Ограничение 100 МБ на файл
java.util.logging.FileHandler.count=5 # Хранение 5 файлов
java.util.logging.FileHandler.append=true
java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
В параметре `pattern` укажите путь к файлу журнала аудита. Убедитесь что на устройстве достаточно свободного места.
2.4. В файл etc/jvm.config
добавьте параметр:
-Djava.util.logging.config.file=etc/logging.properties
Перезапустите кластер CedrusData.
События начнут записываться в указанный файл. Каждая категория события (
eventCategory
) будет иметь собственный набор JSON-атрибутов, описанных ниже.
События запуска и остановки сервера#
Поле |
Тип |
Описание |
---|---|---|
moment |
Timestamp |
Момент наступления события в формате |
eventCategory |
String |
Категория события = |
eventType |
String |
Тип события ( |
message |
String |
Сообщение с дополнительной информацией |
События входа пользователей в систему#
Поле |
Тип |
Описание |
---|---|---|
moment |
Timestamp |
Момент наступления события в формате |
eventCategory |
String |
Категория события = |
eventType |
String |
Тип события ( |
user |
String |
Имя пользователя |
remoteAddress |
String |
Удаленный IP-адрес клиента |
remoteHost |
String |
Удаленный хост клиента |
error |
String |
Ошибка аутентификации |
Аудит SQL-запросов#
В данный журнал попадут SQL-запросы к серверу от всех источников (JDBC, ODBC, REST API).
Поле |
Тип |
Описание |
---|---|---|
moment |
Timestamp |
Момент наступления события в формате |
eventCategory |
String |
Категория события = |
user |
String |
Имя пользователя |
originalUser |
String |
Исходное имя пользователя |
principal |
String |
Принципал |
queryType |
String |
Тип запроса, допустимые значения: |
enabledRoles |
Set |
Роли пользователя |
groups |
Set |
Группы пользователя |
traceToken |
Optional |
Токен трассировки |
remoteClientAddress |
Optional |
Удалённый IP адрес клиента |
userAgent |
Optional |
Приложение клиента |
clientInfo |
Optional |
Информация о клиенте |
clientTags |
Set |
Теги подключения |
clientCapabilities |
Set |
Дополнительная информация о ПО клиента |
source |
Optional |
Источник клиента |
catalog |
Optional |
Trino-каталог сессии |
schema |
Optional |
Trino-схема сессии |
resourceGroupId |
Optional |
id ресурсной группы |
sessionProperties |
Map<String, String> |
Опции сессии |
resourceEstimates |
ResourceEstimates |
Оценка ресурсов |
serverAddress |
String |
IP-адрес сервера CedrusData |
serverVersion |
String |
Версия сервера |
vendor |
String |
Наименование вендора ПО (CedrusData) |
environment |
String |
Окружение |
retryPolicy |
String |
политика Retry |
queryId |
String |
Query ID |
createTime |
String |
Момент создания запроса в формате |
updateType |
Optional |
Тип обновления |
query |
String |
Текст SQL запроса |
preparedQuery |
Optional |
Подготовленный SQL запрос |
queryState |
String |
Состояние запроса ( |
uri |
URI |
URI для отслеживания |
tables |
List |
Список таблиц, участвующих в запросе (через запятую) |
routines |
List |
Список процедур, участвующих в запросе (через запятую) |
Аудит изменений политик доступа File-based access control#
Поле |
Тип |
Описание |
---|---|---|
moment |
Timestamp |
Момент наступления события в формате |
eventCategory |
String |
Категория события = |
eventType |
String |
Тип события ( |
authenticatedUser |
String |
Пользователь, выполнивший действие |
remoteAddress |
String |
IP-адрес клиента |
remoteHost |
String |
Имя хоста клиента |
jsonContent |
String |
Носое состояние файла конфигурации (rules.json) |
error |
String |
Имя хоста клиента |