Контроль целостности 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