Безопасность хранимых данных
Контекст
В условиях роста числа угроз информационной безопасности, защита хранимых данных становится критически важной. Особенно это затрагивает СУБД, обрабатывающих конфиденциальную информацию, такую как персональные данные, финансовые сведения и служебную информацию ограниченного распространения.
Современные угрозы включают в себя:
- утечки данных в результате компрометации привилегированных пользователей;
- эксплуатацию уязвимостей программного обеспечения;
- доступ к файловой системе сервера;
- перехват передаваемой информации.
При этом к данным могут получить доступ как внешние злоумышленники, так и сотрудники с административными правами.
Проблема
При использовании традиционных методов защиты данные, хранящиеся на уровне файловой системы СУБД, журналы транзакций или резервных копий, остаются уязвимыми. Привилегированные пользователи, такие как администраторы баз данных или системные администраторы, могут получить прямой доступ к содержимому баз данных, минуя стандартные механизмы авторизации.
Кроме того, слабые парольные политики, отсутствие детализированного аудита, утечки через логирование запросов или незащищенное хранение криптографических ключей значительно повышают риски раскрытия данных.
Решение
Для обеспечения безопасности хранимых данных в СУБД Pangolin доступны к настройке и использованию следующие функциональности:
- Прозрачное защитное преобразование хранимой информации;
- Защита от привилегированных пользователей;
- Гибкое управление парольными политиками;
- Расширенные возможности аудита действий пользователей;
- Двухфакторная аутентификация;
- Маскирование параметров запросов;
- Хранение сертификатов в формате PKCS#12 и возможность интеграции с системой хранения секретов.
В совокупности эти меры позволяют существенно снизить риски компрометации хранимых данных, обеспечить соответствие требованиям регуляторов и повысить доверие пользователей к системе.
В подразделах ниже представлено более детальное описание данных функциональностей.
Прозрачное защитное преобразование хранимой информации
Прозрачное защитное преобразование (TDE) позволяет предотвратить несанкционированный доступ к пользовательским данным:
- хранящимся в журналах предварительной записи (WAL), файлах отношений, резервных копиях и временных файлах БД;
- передаваемым по каналам связи в ходе физической и логической репликаций.
Защита обеспечивает устойчивость к раскрытию со стороны системных администраторов и лиц, имеющих доступ к файловой системе серверов Pangolin.
Преобразование данных не требует каких-либо модификаций и доработок со стороны прикладных приложений, использующих Pangolin, в не зависимости от ОС или файловой системы.
TDE интегрируется с системой управления ключами (Key Management System, KMS) HashiCorp Vault, которая отвечает за хранение секретов, таких как ключи API и пароли.
Более подробное описание и управление данной функциональностью представлено в одноименном разделе документа «Администрирование функциональностей».
Защита данных от привилегированных пользователей
Защита от привилегированных пользователей позволяет предотвратить доступ к данным, хранящимся в базах Pangolin со стороны неавторизованных лиц, в том числе имеющих права:
- суперпользователя Pangolin (управление объектами баз данных, пользователями, ролями и ролями пользователей);
- администратора операционной системы (управление файлами, процессами, пользователями и их правами на объекты файловой и операционной систем);
- администратора безопасности (доступ к ключам защитного преобразования Transparent Data Encryption и управление параметрами безопасности Pangolin);
- администратора резервного копирования (доступ к файлам резервных копий, снятие резервных копий и подключение к слотам репликации Pangolin).
Функциональность включает два блока:
- защита конфигурационных параметров, позволяющих реализовать угрозы раскрытия пользовательских данных;
- защита доступа к пользовательским данным в объектах баз данных.
Данная функциональность требует наличия установленного и интегрированного решения Key/Secret Management System (поддерживается HashiCorp Vault) и выделенной роли администратора безопасности.
Более подробное описание и управление данной функциональностью представлено в одноименном разделе документа «Администрирование функциональностей».
Гибкое управление парольными политиками
Функциональность по управлению парольными политиками обеспечивает:
- возможность группировки пользователей по ролям;
- назначение различным ролям и пользователям отдельных политик;
- проверки соответствия создаваемых паролей установленным требованиям;
- контроль срока действия паролей.
Под парольными политиками понимается набор правил, регулирующих создание, использование и проверку паролей. Механизм проверки паролей реализуется с помощью утилит или самой системой.
Список возможных правил и настроек:
- время жизни пароля (по истечении которого пароль устаревает);
- минимальная длина пароля;
- минимальное количество букв/цифр в пароле;
- максимальное количество повторяющихся символов;
- использование строчных/прописных букв в пароле;
- период времени после устаревания пароля, в течение которого пароль все еще может быть использован для аутентификации;
- запрет смены пароля на ранее использовавшийся;
- проверка пароля в списках часто используемых паролей.
Имеется возможность использовать временные пароли, а также запрет на использование md5
-аутентификации.
Более подробное описание и управление данной функциональностью представлено в разделе «Парольные политики» документа «Администрирование функциональностей».
Расширенные возможности аудита действий пользователей
В современных информационных системах значительную угрозу безопасности представляют инциденты, связанные с утечками данных, возникающими вследствие случайных или непреднамеренных действий пользователей. Для выявления и последующего анализа таких инцидентов в СУБД Pangolin используется модифицированное расширение pgaudit
, интегрированное непосредственно в ядро.
Благодаря интеграции расширения pgaudit
в ядро СУБД, оно не может быть отключено или модифицировано штатными средствами, что обеспечивает его надежность как инструмента аудита. Расширение заменяет стандартное средство журналирования PostgreSQL и предоставляет детализированную информацию о действиях пользователей, их сессиях, а также об операциях с объектами баз данных.
Для регистрации событий безопасности в pgaudit
предусмотрены отдельные классы аудита, охватывающие события подключения, изменение параметров безопасности, использование защищаемых объектов и другие важные аспекты. Это позволяет гибко настраивать политику аудита в соответствии с необходимыми требованиями.
Запись аудита представляет собой сообщение в стандартном логе сервера, состоящее из двух частей – префикса записи, задаваемого в конфигурации сервера переменной log_line_prefix
, общего для всех сообщений журнала, и непосредственно записи аудита, начало которой маркируется меткой AUDIT:
.
Для того чтобы действия пользователя попали в журнал записей сервера, необходимо для роли current_user
, выполняющей соответствующие действия, настроить класс событий, подлежащих аудиту. Такая настройка производится в переменной конфигурации pgaudit.log
. Значения конфигурационных параметров аудита применяются в соответствии с приоритетом источника, в котором они заданы:
- персонализированная настройка текущего пользователя – имя пользователя в текущем контексте выполнения;
- персонализированная настройка пользователя подключения – имя пользователя, под учетной записью которого совершено подключение;
- настройка базы данных – база подключения;
- конфигурационные настройки сервера – путь к файлу конфигурации;
- настройки по умолчанию – настройки самого расширения.
Данные о том кто выполняет действие, в каком процессе, из какого приложения – являются частью префикса записи аудита.
Возможности pgaudit
в СУБД Pangolin расширены следующими функциональностями:
-
Добавлены новые классы регистрируемых событий:
-
Класс
CONNECTION
, включающий следующие события:- успешный вход в базу;
- завершение сеанса подключения к базе;
- смена пользователя сессии;
- отказ в подключении.
-
Класс
PROTECTION
, регистрирующий настройки механизма защиты данных от привилегированных пользователей. -
Класс
INTEGRITY
, регистрирующий события попытки нарушения целостности объектов, находящихся под защитой. -
Класс
RECOVERY
, регистрирующий события восстановления базы данных. -
Класс
ACTION
, регистрирующий события запуска/остановки базы данных с причиной остановки. -
Класс
PARAMETER
, регистрирующий события изменения конфигурации систему управления базами данных.
-
-
Добавлена регистрация действий, завершившихся отказом, согласно ролевой модели или механизму защиты данных.
-
Добавлена возможность задавать настройки, применяемые к ролям, включая групповые. Это позволяет настроить аудит в момент установки в соответствии с ролевой моделью и не задавать персональные настройки для каждого конкретного пользователя, если такие пользователи объединены в групповую роль, а действия выполняются от этой групповой роли.
-
Добавлена дополнительная информация о важности каждого события (поле
IMPORTANCE
). -
Добавлен уникальный идентификатор для каждой записи журнала событий безопасности.
-
Описана настройка оповещения администратора системы управления базами данных, администратора базы данных о событиях безопасности.
Более подробное описание и управление данной функциональностью представлено в разделе «Журналирование и аудит» документа «Администрирование функциональностей».
Двухфакторная аутентификация
Двухфакторная аутентификация представляет собой технологию, обеспечивающую идентификацию пользователей при помощи запроса аутентификационных данных двух разных типов, что обеспечивает двухслойную, а значит, более эффективную защиту БД от несанкционированного доступа.
Двухфакторная аутентификация требует:
- настроенного режима взаимодействия с клиентами по TLS/SSL;
- указания в конфигурации специального метода аутентификации:
2f-password
,2f-md5
,2f-scram-sha-256
и2f-ldap
.
Двухфакторная аутентификация выполняется по следующим факторам:
- Сверка IP-адреса (при наличии IP/DNS в клиентском сертификате) закодированного в атрибуте
SubjectAltName
сертификата, используемого клиентом для установления соединения по TLS/SSL с фактическим IP-адресом клиента. Сверка IP-адреса не выполняется в случае, если в сертификате нет атрибутаSubjectAltName
или он не содержит IP/DNS. АтрибутSubjectAltName
может содержать и другие значения, например DNS. - Сверка логина, закодированного в атрибуте
CN
сертификата, используемого клиентом для установления соединения по TLS/SSL, c логином из первого фактора. - Аутентификация по паролю с методами:
md5
,scram-sha-256
.
Подключение пользователя к СУБД с помощью двухфакторной аутентификации может осуществляться:
- непосредственно (или напрямую) к Pangolin;
- через Pangolin Pooler с включенной сквозной аутентификацией;
- через Pangolin Pooler с выключенной сквозной аутентификацией.
Более подробное описание и управление данной функциональностью представлено в одноименном разделе документа «Администрирование функциональностей».
Маскирование параметров запросов
Маскирование параметров запросов позволяет исключить утечку значений паролей пользователей, значение полей таблиц баз данных, фигурирующих в запросе, и значений параметров защищаемых функций, через логи СУБД Pangolin, а также через системные функции и представления СУБД.
Механизм маскирования работает по всем обрабатываемым запросам SELECT
/INSERT
/UPDATE
/DELETE
и их параметрам, а также запросам CREATE
/ALTER ROLE
/USER
и параметру пароля в их составе.
Осуществляется маскирование значений следующей информации:
-
паролей или хешей паролей в запросах на задание или изменение паролей пользователей;
-
параметров-паролей в функциях API администраторов безопасности;
-
явно заданных как константы значений:
- параметров в функциях;
- вставляемые (
INSERT
) в таблицы и представления, в том числе заданные через выраженияSELECT
илиCTE
; - задаваемые для изменения полей (
UPDATE
) в таблицах и представлениях, или используемые для фильтрации записей для изменения; - задаваемые как условия выражений
SELECT
,UPDATE
иDELETE
по полям таблиц и представлений.
Более подробное описание и управление данной функциональностью представлено в одноименном разделе документа «Администрирование функциональностей».
Хранение сертификатов в формате PKCS#12 и возможность интеграции с системой хранения секретов
Обеспечена возможность хранения и использования сертификата и закрытого ключа в формате PKCS#12 с защитой доступа к ним как на серверной, так и на клиентской стороне компонентов кластера Pangolin.
В компонентах кластера Pangolin хранение пароля для доступа к сертификатам PKCS#12 реализовано в защищенном виде.
В режиме защищенного конфигурирования (secure_config = on
) управление параметром СУБД Pangolin serverssl.pkcs12_config_path
выполняется на стороне хранилища секретов. В СУБД Pangolin реализована интеграция с компонентом KMS HashiCorp Vault, отвечающим за хранение и управление секретами.
Более подробное описание данной функциональностью представлено в разделе «Использование сертификатов PKCS#12 в кластере Pangolin» документа «Руководство администратора».