Контроль целостности QHB версии 1.5.2

Описание подсистемы контроля целостности

Механизм контроля целостности реализован с помощью фонового процесса integrity_checker.

Фоновый процесс осуществляет проверку исполняемых модулей и утилит на целостность бинарного файла. Также фоновый процесс осуществляет проверку целостности программного кода хранимых процедур самой СУБД.

Проверка состоит в удостоверении корректности контрольных сумм, подсчитанных при сборке установочного пакета СУБД и после авторизованных изменений.


Объекты контроля целостности QHB

Объектами являются поставляемые бинарные утилиты и программный код хранимых процедур, как встроенных так и добавленных пользователем в процессе работы СУБД.

Для целостности бинарных утилит проверка происходит в соответствии с файлами, расположенными в /var/lib/qhb/data/integrity и имеющими расширение .sha256.


Мероприятия по обнаружению нарушений целостности

В случае обнаружения несовпадения контрольных сумм бинарных утилит и их комплектации в поставке СУБД, происходит блокировка пользователей СУБД, имеющих возможность логина, за исключением супер-пользователей и Администраторов СУБД (см. раздел Роли ИБ). Блокировку обеспечивает фоновый процесс СУБД logon_jobs. Блокировка действительная при логине по методам md5 и password.

В случае обнаружения несовпадения контрольных сумм блоков БД, хранящих программный код хранимых процедур, происходит аналогичная блокировка пользователей.

Также происходит блокировка возможности загружать сторонние библиотеки (включая расширения QHB) в адресное пространство запущенной СУБД.

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

Внимание! После восстановления целостности каталога следует перезапустить СУБД, чтобы разблокировать пользователей и адресное пространство для изменений.


Включение подсистемы контроля целостности

Для включения следует указать опции logon_jobs и integrity_checks в конфигурационном файле:

logon_jobs=on
integrity_checks=on

По умолчанию данные параметры отключены.

Также следует выбрать периодичность проверок в единицах временной размерности:

integrity_period=20s