Регистрируемые события безопасности¶
В данном разделе перечислены события, которые фиксируются в журнале аудита Picodata. События проиллюстрированы псевдоструктурами в формате JSON.
Структура журнала¶
Журнал представляет собой массив строк с разметкой json
, где каждой
строке соответствует одно событие. Пример сообщения из журнала
(переформатированный для лучшей читаемости):
{
"title": "create_table",
"message": "created table `WAREHOUSE`",
"severity": "medium",
"name": "WAREHOUSE",
"initiator": "admin",
"time": "2023-12-01T14:31:50.117+0300",
"id": "1.0.14"
}
Каждая запись журнала включает следующие обязательные элементы:
title
– наименованиеmessage
– описаниеseverity
– важность (low
/medium
/high
)initiator
— субъект доступа инициировавший событиеtime
– дата и времяid
– идентификатор, состоящий из трех чисел:raft_id
– идентификатор инстанса в Raftgen
– счетчик перезапусков инстансаcount
– внутренний счетчик событий
Помимо этого, запись может содержать дополнительные поля, относящиеся к конкретному событию, например, имена пользователей, таблиц и т.д.
Перечень регистрируемых событий¶
access_denied¶
Неавторизованный запрос к БД.
{
"title": "access_denied",
"message": "<privilege> access
to <object_type> `<object>`
is denied for user `<user>`",
"severity": "medium",
"privilege": ...,
"object_type": ...,
"object": ...,
...
}
auth_fail¶
Неуспешная попытка аутентификации.
{
"title": "auth_fail",
"message": "failed to authenticate user `<user>`",
"severity": "high",
"user": ...,
"verdict": ...,
...,
}
auth_ok¶
Успешная попытка аутентификации.
{
"title": "auth_ok",
"message": "successfully authenticated user `<user>`",
"severity": "high",
"user": ...,
"verdict": ...,
...
}
change_current_state¶
Изменение текущего стейта инстанса.
{
"title": "change_current_state",
"message": "current state
of instance `<instance_name>`
changed to <new_state>",
"severity": "medium",
"instance_name": ...,
// TODO: "old_state": ...,
"new_state": ...,
"raft_id": ...,
...
}
change_password¶
Изменение атрибутов учетных записей пользователей СУБД:
- метода аутентификации
- пароля
{
"title": "change_password",
"message": "password of user `<user>` was changed",
"severity": "high",
"user": ...,
"auth_type": ...,
...
}
change_target_state¶
Изменение целевого стейта инстанса.
{
"title": "change_target_state",
"message": "target state
of instance `<instance_name>`
changed to <new_state>",
"severity": "low",
"instance_name": ...,
// TODO: "old_state": ...,
"new_state": ...,
"raft_id": ...,
...
}
connect_local_db¶
Подключение базы данных. Событие фиксируется после инициализации локального хранилища, см. Жизненный цикл инстанса.
{
"title": "connect_local_db",
"message": "local database connected on `<instance_name>`",
"severity": "low",
"raft_id": ...,
"instance_name": ...,
...
}
create_local_db¶
Создание базы данных. Событие фиксируется после добавления инстанса в кластер, см. join_instance. Событие фиксируется на всех узлах кластера, включая добавляемый.
{
"title": "create_local_db",
"message": "local database created on `<instance_name>`",
"severity": "low",
"raft_id": ...,
"instance_name": ...,
...
}
create_procedure¶
Создание хранимой процедуры.
{
"title": "create_procedure",
"message": "created procedure `<name>`",
"severity": "medium",
"name": ...,
...
}
create_role¶
Создание роли СУБД.
{
"title": "create_role",
"message": "created role `<role>`",
"severity": "high",
"role": ...,
...
}
create_table¶
Создание таблицы БД.
{
"title": "create_table",
"message": "created table `<name>`",
"severity": "medium",
"name": ...,
...
}
create_user¶
Создание учетной записи пользователя СУБД.
{
"title": "create_user",
"message": "created user `<user>`",
"severity": "high",
"user": ...,
"auth_type": ...,
...
}
drop_local_db¶
Удаление базы данных. Событие фиксируется после удаления инстанса из кластера, см. expel_instance. Событие фиксируется на всех узлах кластера.
{
"title": "drop_local_db",
"message": "local database dropped on `<instance_name>`",
"severity": "low",
"raft_id": ...,
"instance_name": ...,
...
}
drop_procedure¶
Удаление хранимой процедуры.
{
"title": "drop_procedure",
"message": "dropped procedure `<name>`",
"severity": "medium",
"name": ...,
...
}
drop_role¶
Удаление роли СУБД.
{
"title": "drop_role",
"message": "dropped role `<role>`",
"severity": "medium",
"role": ...,
...
}
drop_table¶
Удаление таблицы БД.
{
"title": "drop_table",
"message": "dropped table `<name>`",
"severity": "medium",
"name": ...,
...
}
drop_user¶
Удаление учетной записи пользователя СУБД.
{
"title": "drop_user",
"message": "dropped user `<user>`",
"severity": "medium",
"user": ...,
...
}
expel_instance¶
Изменение конфигурации СУБД связанное с удалением инстанса из кластера.
{
"title": "expel_instance",
"message": "instance `<instance_name>` was expelled from the cluster",
"severity": "low",
"instance_name": ...,
"raft_id": ...,
...
}
grant_privilege¶
Выдача привилегии пользователю СУБД.
{
"title": "grant_privilege",
"message": "granted privilege <privilege>
on <object_type> `<object>`
to <grantee_type> `<grantee>`",
"severity": "high",
"privilege": ...,
"object_type": ...,
"object": ...,
"grantee_type": ...,
"grantee": ...,
...
}
grant_role¶
Назначение роли пользователю СУБД или другой роли.
{
"title": "grant_role",
"message": "granted role `<role>` to <grantee_type> `<grantee>`",
"severity": "high",
"role": ...,
"grantee_type": ...,
"grantee": ...,
...
}
init_audit¶
Инициализация журнала аудита. Событие предшествует запуску инстанса, см. local_startup.
{
"title": "init_audit",
"message": "audit log is ready",
"severity": "low",
...
}
integrity_violation¶
Нарушение целостности объектов контроля, см. Контроль целостности.
{
"title": "integrity_violation",
"message": "integrity violation detected",
"severity": "high",
...
}
join_instance¶
Изменение конфигурации СУБД связанное с добавлением инстанса в кластер.
{
"title": "join_instance",
"message": "a new instance `<instance_name>` joined the cluster",
"severity": "low",
"instance_name": ...,
"raft_id": ...,
...
}
local_shutdown¶
Остановка инстанса.
{
"title": "local_shutdown",
"message": "instance is shutting down",
"severity": "high",
...
}
local_startup¶
Запуск инстанса. Событие фиксируется после инициализации журнала аудита, см. init_audit.
{
"title": "local_startup",
"message": "instance is starting",
"severity": "low",
...
}
recover_local_db¶
Восстановление базы данных. Событие фиксируется после инициализации локального хранилища в случае если имело место восстановление из снапшота, см. Жизненный цикл инстанса.
{
"title": "recover_local_db",
"message": "local database recovered on `<instance_name>`",
"severity": "low",
"raft_id": ...,
"instance_name": ...,
...
}
rename_procedure¶
Переименование хранимой процедуры.
{
"title": "rename_procedure",
"message": "renamed procedure `<old_name>` to `<new_name>`",
"severity": "medium",
"old_name": ...,
"new_name": ...,
...
}
rename_user¶
Переименование учетной записи пользователя СУБД.
{
"title": "rename_user",
"message": "name of user `<old_name>` was changed to `<new_name>`",
"severity": "high",
"old_name": ...,
"new_name": ...,
...
}
revoke_privilege¶
Отзыв привилегии у пользователя СУБД.
{
"title": "revoke_privilege",
"message": "revoked privilege <privilege>
on <object_type> `<object>`
from <grantee_type> `<grantee>`",
"severity": "high",
"privilege": ...,
"object_type": ...,
"object": ...,
"grantee_type": ...,
"grantee": ...,
...
}
revoke_role¶
Отзыв роли у пользователя СУБД или у другой роли.
{
"title": "revoke_role",
"message": "revoked role `<role>` from <grantee_type> `<grantee>`",
"severity": "high",
"role": ...,
"grantee_type": ...,
"grantee": ...,
...
}
shredding_failed¶
Ошибка безопасного удалении рабочих файлов инстанса.
{
"title": "shredding_failed",
"message": "shredding failed for <filename>",
"severity": "low",
"filename": ...,
"error": ...,
...
}
shredding_finished¶
Успешное удаление рабочих файлов инстанса.
{
"title": "shredding_finished",
"message": "shredding finished for <filename>",
"severity": "low",
"filename": ...,
...
}
shredding_started¶
Начало безопасного удаления рабочих файлов инстанса путем многократной перезаписи специальными битовыми последовательностями.
{
"title": "shredding_started",
"message": "shredding started for <filename>",
"severity": "low",
"filename": ...,
...
}