PGDSAT — это инструмент для оценки безопасности кластеров PostgreSQL. Он помогает автоматизировать проверки безопасности, выявлять уязвимости и генерировать отчеты с рекомендациями для их устранения. Этот инструмент идеально подходит для администраторов баз данных, которые хотят убедиться, что их PostgreSQL-кластеры соответствуют лучшим практикам безопасности.
Инструмент охватывает около 70–80 проверок, включая рекомендации CIS Benchmark.


Основные возможностиLink to Основные возможности

  • Автоматическая проверка безопасности: анализ системных и конфигурационных данных PostgreSQL.
  • Соответствие стандартам: проверка конфигурации базы данных в соответствии с CIS Benchmark для PostgreSQL.
  • Генерация отчетов: подробные отчеты с результатами проверок, включая рекомендации по устранению выявленных проблем.

УстановкаLink to Установка

ЗависимостиLink to Зависимости

Перед установкой убедитесь, что на вашем сервере установлены необходимые инструменты:

# Установить зависимости
sudo apt install unzip make
BASH


Установка PGDSATLink to Установка PGDSAT

  1. Загрузите последнюю версию инструмента с GitHub:
    # Скачать PGDSAT
    curl -LO https://github.com/HexaCluster/pgdsat/archive/refs/tags/v1.1.zip
    BASH




  2. Распакуйте архив и установите:
    # Распаковать и установить
    unzip v1.1.zip
    cd pgdsat-1.1
    perl Makefile.PL
    make
    sudo make install
    BASH

Проверка установкиLink to Проверка установки

После установки выполните команду:

  pgdsat --version
BASH




ИспользованиеLink to Использование

Для генерации отчета выполните следующую команду от имени пользователя PostgreSQL:

   pgdsat -U postgres -h localhost -d postgres -p 5432 -D /var/lib/postgresql/16/main -f html -o report_ubuntu.html
BASH


Описание параметров:

  • -U — имя пользователя.
  • -h — хост.
  • -d — база данных.
  • -p — порт.
  • -D — путь к каталогу данных $PGDATA.
  • -f — формат отчета (например, html).
  • -o — имя выходного файла отчета.

Примеры проверокLink to Примеры проверок

PGDSAT проверяет различные аспекты безопасности PostgreSQL. Вот несколько примеров проверок и рекомендаций:

1. Конфигурация аутентификацииLink to 1. Конфигурация аутентификации

  • Что проверяется: Используются ли безопасные методы аутентификации (scram-sha-256 или cert).
  • Рекомендация: Заменить менее безопасные методы, такие как md5 или trust, на более современные.

Проблема:

 host all all 0.0.0.0/0 trust
SQL


Решение:

 host all all 0.0.0.0/0 scram-sha-256
SQL



2. Открытые сетевые подключенияLink to 2. Открытые сетевые подключения

  • Что проверяется: Значение параметра listen_addresses.
  • Рекомендация: Использовать конкретные IP-адреса вместо * для ограничения подключений.

3. Логирование запросовLink to 3. Логирование запросов

  • Что проверяется: Включено ли логирование SQL-запросов.
  • Рекомендация: Установить log_statement = 'all', чтобы отслеживать все запросы.

4. Контроль доступаLink to 4. Контроль доступа

  • Что проверяется: Используются ли широкие разрешения в pg_hba.conf.
  • Рекомендация: Ограничить доступ конкретными пользователями и базами данных.

Проблема:

 host all all 0.0.0.0/0 md5
SQL


Решение:

 host tantor_db tantor_user 192.168.1.0/24 scram-sha-256
SQL



5. Шифрование данных в транзитеLink to 5. Шифрование данных в транзите

  • Что проверяется: Включено ли шифрование соединений (ssl = on).
  • Рекомендация: Настроить SSL-сертификаты для защиты данных в транзите.

6. Мониторинг привилегийLink to 6. Мониторинг привилегий

  • Что проверяется: Есть ли роли с чрезмерными привилегиями.
  • Рекомендация: Пересмотреть роли и удалить ненужные привилегии.

Генерация отчетаLink to Генерация отчета

После выполнения проверки PGDSAT создает отчет, например, в формате HTML. В отчете представлены следующие элементы:

  • ✔ Успешные проверки.
  • ✘ Неуспешные проверки.
  • □ Проверки, требующие ручной проверки.

Пример отчета можно открыть в браузере для визуального анализа.


ЗаключениеLink to Заключение

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

Дополнительная информация доступна в официальном репозитории: PGDSAT на GitHub.
Руководство по безопасности, разработанное Центром интернет-безопасности: CIS PostgreSQL Benchmark