Контроль загрузки расширений и библиотек в адресное пространство СУБД
Описание
Функциональность предназначена для выявления и блокировки загрузки в адресное пространство системы управления базами данных программного обеспечения, не включенного в перечень (список) программного обеспечения, разрешенного для выполнения.
Список разрешенных для загрузки в адресное пространство СУБД расширений и библиотек хранится в конфигурационном файле, находящемся в каталоге /pgdata/<version>/data/pg_integrity. Конфигурационный файл может содержать хеш-сумму, рассчитанную для каждого разрешенного расширения и/или библиотеки. Формат файла и его создание описаны в разделе «Контроль целостности конфигурации и объектов БД».
Настройка
Включение функциональности
Для включения функциональности используются два конфигурационных параметра:
Параметр | Значение по умолчанию | Описание | Применение |
|---|---|---|---|
|
| Отвечает за активацию проверки расширения или плагина в списке разрешенных | Применяется после перезапуска сервера (команда |
|
| Включает проверку контрольной суммы расширения или плагина | Применяется только при перезапуске (команда |
Параметры задаются:
- на сервере KMS — в настройках самого сервера;
- для СУБД Pangolin — в файле
postgresql.confили в/etc/pangolin-manager/postgres.yml(если используется Pangolin Manager).
Первоначальная загрузка СУБД происходит с выключенными параметрами (false). Установка параметров в true происходит после создания списка разрешенных файлов.
Управление
Алгоритм работы
При загрузке расширений и библиотек в адресное пространство СУБД:
-
При включенном параметре
loading_control.check_allow_list:-
Открывается и читается файл со списком разрешенных файлов (в каталоге
/pgdata/<version>/data/pg_integrity). -
При отсутствии файла со списком разрешенных файлов или ошибках его чтения, в лог выводятся сообщения вида:
WARNING: Library "pg_outline.so" is not loaded, no integrity check file listЗагрузка расширения или плагина (библиотеки) не происходит.
ПримечаниеПри включенной защите параметров конфигурации, при запуске СУБД Pangolin для подключения к KMS и кодирования, используются плагины, на которые указывают символические ссылки
/opt/pangolin-dbms-server/lib/libconnector_plugin.soи/opt/pangolin-dbms-server/lib/libencryption_plugin.so. Если функциональность включена локально, то выполняется проверка этих плагинов и в случае ошибок проверки, СУБД Pangolin не сможет запуститься.В этом случае, для запуска Pangolin:
- Рекомендуется переустановить Pangolin.
- Выключите параметр
loading_control.check_allow_listи сгенерируйте файл со списком разрешенных файлов. - Включите параметр
loading_control.check_allow_list.
-
Производится поиск загружаемого файла в списке разрешенных файлов.
-
При отсутствии файла в списке разрешенных, в лог выводятся сообщения вида:
WARNING: Library "pg_outline.so" is not loaded, no file in listЗагрузка расширения или плагина (библиотеки) не происходит.
-
При наличии файла в списке разрешенных, и если параметр
loading_control.check_hashвыключен, проверка считается успешно пройденной.
-
-
При включенном параметре
loading_control.check_hash:-
Производится расчет хеш-суммы проверяемого файла.
-
Рассчитанная хеш-сумма сравнивается с хеш-суммой из списка разрешенных файлов.
-
Если хеш-суммы не совпадают, в лог выводятся сообщения вида:
WARNING: Library "pg_outline.so" is not loaded, file is damagedЗагрузка расширения или плагина (библиотеки) не происходит.
-
Если хеш-суммы совпадают, проверка считается успешно пройденной.
-
При ошибках выводятся сообщения в лог аудита в соответствии с решением описанным в разделе «Журналирование и аудит».