PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как да затворите пропуските в уязвимостите в PostgreSQL

Без значение каква технология или система за сигурност имате, винаги има риск от хакване, тъй като няма 100% защитена система. Тъй като данните вероятно са най-важният актив в една компания, трябва да защитите системата си колкото е възможно повече, за да сведете до минимум този риск.

Този блог ще споменава някои важни проверки, които трябва да извършите във вашата PostgreSQL среда, за да затворите празнината в уязвимостите и да избегнете някои от най-често срещаните проблеми със сигурността.

Защита на комуникациите

Ако използвате различни облачни доставчици, комбинация от облачен доставчик и On-Prem, или дори само среда On-Prem, комуникацията във всичките ви системи трябва да бъде криптирана и трябва да ограничите трафик само от известни източници, за да намалите риска от неоторизиран достъп до вашата мрежа.

Използването на правила за VPN, SSH или защитна стена или дори комбинация от тях са добри решения за тази точка.

Контролиране на достъпа до база данни

Трябва да ограничите както физическия, така и отдалечения достъп.

  • Физически достъп (on-prem):Ограничаване на неоторизиран физически достъп до сървъра на базата данни.

  • Отдалечен достъп:Ограничете отдалечения достъп само до необходимите хора и от възможно най-малкото количество източник. Използването на VPN за достъп до него определено е полезно тук, но има и други опции като SSH тунелиране. Трябва да намерите най-доброто решение за вашата компания.

Управление на потребителски акаунти в базата данни

Има много начини да подобрите сигурността на вашите потребителски акаунти в PostgreSQL.

  • Премахване на неактивни потребители. За целта трябва да дефинирате период от време, в който даден потребител да се счита за неактивен, и можете да планирате автоматичното му премахване.

  • Дайте само необходимите привилегии, когато създавате нов потребителски акаунт.

  • Ограничете източника за всяка потребителска връзка с помощта на конфигурационния файл pg_hba.conf.

  • Дефинирайте политика за сигурни пароли (или активирайте плъгин за това, например проверка на паролата).

Сигурни инсталации и конфигурации

Има някои промени, които трябва да направите, за да защитите вашата инсталация на PostgreSQL.

  • Инсталирайте само необходимите пакети и услуги на сървъра.

  • Променете потребителската парола на администратор по подразбиране и ограничете използването само от локалния хост.

  • Променете порта по подразбиране и посочете интерфейса за слушане.

  • Активиране на плъгин за правила за защита на паролата.

  • Конфигуриране на SSL сертификати за криптиране на данни в пренос.

  • Шифроване на данни в покой.

  • Конфигурирайте локалната защитна стена така, че да позволява достъп до порта на базата данни само от локалната мрежа.

В случай, че използвате управлявана PostgreSQL база данни, някои от посочените по-горе точки няма да са необходими.

Одит и регистриране

Регистриращите оператори могат да ви помогнат да откриете проблеми със сигурността или да ги избегнете, ако ги наваксате навреме.

Можете да използвате стандартното средство за регистриране на PostgreSQL с помощта на параметъра log_statement, но можете също да използвате разширение като pgAudit, за да имате по-подробно регистриране на сесия и одит на обекти.

Внедряване на WAF (защитна стена за уеб приложения)

SQL инжекции или DoS атаки (отказ на услуга) са най-честите атаки към база данни и най-сигурният начин да ги избегнете е като използвате WAF за улавяне на този вид SQL заявки или SQL Прокси за анализ на трафика.

Често проверявайте CVE (често срещани уязвимости и експозиции)

Всеки ден се откриват нови уязвимости за вашия сървър на база данни. Трябва да го проверявате често, за да знаете дали трябва да приложите корекция или да промените нещо в конфигурацията си. Един от начините да разберете това е като прегледате уебсайта на CVE, където можете да намерите списък с уязвимости с описание и можете да потърсите версията на базата си данни и доставчика, за да потвърдите дали има нещо критично за коригиране възможно най-скоро.

За да бъдете по-конкретни, можете да проверите секцията PostgreSQL, за да се опитате да намерите проблеми за версията на вашата база данни.

Поддържайте операционната си система и базата данни актуални

Има няколко поправки и подобрения, които доставчикът на базата данни или операционната система пускат, за да коригират или избегнат уязвимости. Важно е да поддържате системата си възможно най-актуална, като прилагате корекции и надстройки на сигурността.

Наблюдение

За да знаете състоянието на вашите системи, ще трябва да имате добра система за наблюдение. Това може да е полезно за намиране на проблеми със сигурността или дори за избягването им.

За това ClusterControl е добър вариант, тъй като е система за управление и наблюдение, която ви помага да разгръщате, управлявате, наблюдавате и мащабирате вашите бази данни от приятелски интерфейс. Той поддържа най-добрите технологии за бази данни с отворен код и можете да автоматизирате много от задачите на базата данни, които трябва да изпълнявате редовно, като добавяне и мащабиране на нови възли, стартиране на архивиране и възстановяване и др.

ClusterControl ви позволява да наблюдавате сървърите си в реално време с предварително дефиниран набор от табла за управление, за да анализирате някои от най-често срещаните показатели.

Позволява ви да персонализирате наличните графики в клъстера и можете да активирате базирания на агент мониторинг, за да генерирате по-подробни табла за управление.

Можете също да създавате сигнали, които ви информират за събития във вашия клъстер или да се интегрират с различни услуги като PagerDuty или Slack.

В секцията за наблюдение на заявки можете да намерите най-честите заявки, изпълняваните заявки, отклонения от заявките и статистическите данни на заявката, за да наблюдавате трафика на вашата база данни.

С тези функции можете да видите как върви вашата PostgreSQL база данни.

Заключение

Точките, споменати по-горе, ще ви помогнат да запълните празнината на уязвимостта във вашата PostgreSQL база данни, но както споменахме, винаги има риск от хакване.

Освен това трябва да имате добра система за наблюдение като ClusterControl и да изпълнявате периодично някои инструменти за сканиране на сигурността, търсещи уязвимости като Nessus, за да сведете до минимум рисковете за сигурността още повече.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да променя колона PG на NULLABLE TRUE?

  2. Искам да извличам данни от различно име на таблица с помощта на функцията postgresql

  3. Как да разположите Percona Distribution за PostgreSQL за висока наличност

  4. Функции на прозореца:last_value(ORDER BY ... ASC) същите като last_value(ORDER BY ... DESC)

  5. Postgresql променя типа на колоната от int на UUID