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

Регистрируемые события безопасности

В данном разделе приведены события, попадающие в журнал аудита Picodata.

Перечень событий безопасности

Ниже перечислены события, которые фиксируются в журнале безопасности. Для каждого события указан список свойств, которые попадают в запись журнала. События регистрируются на каждом узле кластера.

Создание учетных записей пользователей и ролей СУБД

  • наименование (create_user / create_role)
  • важность (высокая)
  • имя новой учетной записи / роли
  • метод аутентификации (auth_type)

При создании учетной записи субъект указывает пароль и метод аутентификации учетной записи. Ни пароль, ни его хеш в журнал не попадут.

Удаление учетных записей пользователей и ролей СУБД

  • наименование (drop_user / drop_role)
  • важность (средняя)

Изменение атрибутов учетных записей пользователей СУБД

Изменение имени учетной записи

На данный момент изменение имени учетной записи не поддерживается.

Изменение пароля и/или метода аутентификации

  • наименование (change_password)
  • важность (высокая)
  • метод аутентификации (auth_type)

Метод аутентификации изменяется одновременно с паролем учетной записи, поэтому наименование события отражает только факт изменения пароля. Ни пароль, ни его хеш в журнал не попадут.

Изменение ролей учетной записи

Так как каждая роль является именованной группой привилегий, то в файле журнала отражается каждое изменение привилегий и ролей учетной записи пользователя, а также изменения самих ролей. См. изменение правил разграничения доступа.

Изменение правил разграничения доступа

Назначение и отзыв привилегий учетной записи или роли

Так как привилегии могут быть выданы как учетной записи, так и роли, то при установке привилегии будет записано событие со следующими свойствами:

  • наименование (grant_privilege / revoke_privilege)
  • важность (высокая)
  • тип получателя привилегии (user / role)
  • идентификатор получателя привилегии (grantee: УЗ или роль)
  • тип объекта доступа (table / user / role)
  • название объекта доступа
  • привилегия (create / alter / drop / read / write)

Назначение и отзыв роли

Роли могут быть назначены как пользователям, так и другим ролям (т.е. возможно создание вложенных ролей). При этом будет записано событие со следующими свойствами:

  • наименование (grant_role / revoke_role)
  • важность (высокая)
  • тип получателя роли (user / role)
  • идентификатор получателя роли (grantee: УЗ или роль)
  • идентификатор назначенной роли

Успешные и неуспешные попытки аутентификации

  • наименование (auth_ok / auth_fail)
  • важность (высокая)
  • пользователь, от имени которого происходила аутентификация
  • вердикт о блокировке учетной записи (да / нет) и срок (например, неопределенный)

Подключение, восстановление БД

В Picodata определена ровно одна БД, которая называется universe. Ее нельзя создать повторно, удалить или подключить. Восстановление БД эквивалентно восстановлению СУБД и может быть произведено следующими способами:

  • cредствами сертифицированной ОС в ручном режиме. Администратор ОС может разархивировать в директорию СУБД заранее сохраненные файлы СУБД (снапшоты и журналы упреждающей записи);
  • при помощи функции восстановления узла (rebootstrap). В этом случае происходит запись события "Создание БД".

Создание БД

В процессе выполнения bootstrap при создании кластера происходит запись события "Создание БД" со следующими свойствами:

  • наименование (new_database_created)
  • важность (низкая)
  • пользователь, от имени которого происходила аутентификация
  • идентификаторы узла кластера (raft_id, instance_id)

Удаление журналов при ротации

В Picodata при создании очередного снапшота могут быть удалены предыдущие версии снапшотов, а также журнала упреждающей записи. При этом могут быть записаны события со следующими свойствами:

  • наименование (shreddig_started / shredding_finished / shredding_failed)
  • важность (низкая)
  • путь до удаляемого файла
  • текст ошибки (в случае события shredding_failed)

Добавление нового узла в кластер

При добавлении узла в кластер в его журнале фиксируется событие создания БД universe с наименованием create_database. Событие фиксируется ровно один раз при первом запуске узла кластера.

Исключение узла из кластера

Удаление БД universe не предусмотрено, поэтому события на этот случай тоже нет.

Запуск и остановка СУБД с указанием причины остановки

  • наименование (change_current_grade)
  • важность (средняя)
  • имя грейда при запуске (online)
  • имя грейда при остановке (offline)
  • идентификатор узла кластера (raft_id, instance_id)

К данному событию относится информация о любом изменении грейда каждого узла кластера, как только оно было зарегистрировано. Плановые запуск и остановка узла (добавление в кластер и исключение из него соответственно) связаны с переоценкой грейдов и поэтому также вызывают это событие.

Изменение конфигурации СУБД

Изменение значений параметров конфигурации

  • наименование (change_config)
  • важность (высокая)
  • название и новое значение параметра конфигурации

Отслеживается изменение следующих параметров СУБД:

  • password_min_length – минимальная длина пароля учетной записи
  • audit_log – настройки файла журнала безопасности
  • audit_enabled – статус журнала безопасности (ВКЛ/ВЫКЛ)
  • низкоуровневых параметров, таких как:
    • listen
    • checkpoint_interval
    • checkpoint_count
    • memtx_memory
    • vinyl_memory
    • snapshot_period
    • log
    • log_level
    • log_format
    • log_nonblock
    • too_long_threshold

Параметры, которые не были указаны, изменить невозможно.

Изменение топологии кластера (удаление и добавление узлов)

  • наименование (change_topology)
  • важность (высокая)
  • адрес и идентификатор добавленного/удаленного узла кластера
  • тип (join / expel)

Событие изменения топологии будет зарегистрировано на узле-лидере. При добавлении и удалении узла в журнал попадет событие с наименованием join или expel.

Создание и удаление таблиц за исключением временных таблиц, создаваемых СУБД в служебных целях

  • наименование (create_table / drop_table)
  • важность (средняя)
  • имя новой таблицы
  • идентификатор пользователя-владельца таблицы

Владельцем созданной таблицы автоматически становится тот, кто ее создал.

Создание и удаление хранимых процедур

  • наименование (create_procedure / drop_procedure)
  • важность (средняя)
  • имя новой процедуры
  • идентификатор пользователя-владельца процедуры

Владельцем созданной процедуры автоматически становится тот, кто ее создал.

Факты нарушения целостности объектов контроля

Объектами контроля являются:

  • конфигурации СУБД
  • конфигурации БД
  • процедуры (программный код) СУБД
  • процедуры (программный код), хранящийся в БД

Файлы снапшотов, в которых хранятся все указанные объекты контроля, содержат контрольные суммы формата crc32, которые позволяют обнаружить несанкционированное изменение объектов. В случае несовпадения контрольных сумм при запуске узла в журнал безопасности будет записана критическая ошибка, и приложение СУБД аварийно завершится.

Неудачные попытки доступа к объекту

  • наименование (access_denied)
  • важность (средняя)
  • пользователь, запросивший доступ
  • имя и тип объекта

Ротация журнала аудита

  • наименование (audit_rotate)
  • важность (низкая)