PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak wypełnić lukę w zabezpieczeniach PostgreSQL

Bez względu na rodzaj technologii lub systemu bezpieczeństwa, zawsze istnieje ryzyko włamania, ponieważ nie ma systemu w 100% zabezpieczonego. Ponieważ dane są prawdopodobnie najważniejszym zasobem w firmie, musisz jak najlepiej zabezpieczyć swój system, aby zminimalizować to ryzyko.

Ten blog będzie wspominał o kilku ważnych kontrolach, które należy wykonać w środowisku PostgreSQL, aby wypełnić lukę w zabezpieczeniach i uniknąć niektórych z najczęstszych problemów z bezpieczeństwem.

Zabezpieczanie komunikacji

Jeśli korzystasz z różnych dostawców chmury, kombinacji dostawcy chmury i On-Prem, lub nawet tylko środowiska On-Prem, komunikacja we wszystkich twoich systemach musi być zaszyfrowana i musisz ograniczyć ruch tylko ze znanych źródeł, aby zmniejszyć ryzyko nieautoryzowanego dostępu do Twojej sieci.

Korzystanie z reguł VPN, SSH lub zapory, a nawet ich kombinacji, jest dobrym rozwiązaniem w tym zakresie.

Kontrolowanie dostępu do bazy danych

Musisz ograniczyć zarówno fizyczny, jak i zdalny dostęp.

  • Dostęp fizyczny (on-prem):ogranicz nieautoryzowany dostęp fizyczny do serwera bazy danych.

  • Dostęp zdalny:Ogranicz zdalny dostęp tylko do niezbędnych osób i z najmniejszej możliwej liczby źródeł. Korzystanie z VPN w celu uzyskania dostępu jest tutaj zdecydowanie przydatne, ale istnieją również inne opcje, takie jak tunelowanie SSH. Powinieneś znaleźć najlepsze rozwiązanie dla swojej firmy.

Zarządzanie kontami użytkowników bazy danych

Istnieje wiele sposobów na poprawę bezpieczeństwa kont użytkowników w PostgreSQL.

  • Usuń nieaktywnych użytkowników. W tym celu należy zdefiniować okres, w którym użytkownik będzie uważany za nieaktywnego, i można zaplanować jego automatyczne usunięcie.

  • Przyznawaj tylko niezbędne uprawnienia podczas tworzenia nowego konta użytkownika.

  • Ogranicz źródło dla każdego połączenia użytkownika za pomocą pliku konfiguracyjnego pg_hba.conf.

  • Zdefiniuj bezpieczną politykę haseł (lub włącz do tego wtyczkę, np. sprawdzanie hasła).

Bezpieczne instalacje i konfiguracje

Istnieją pewne zmiany, które należy wprowadzić, aby zabezpieczyć instalację PostgreSQL.

  • Zainstaluj tylko niezbędne pakiety i usługi na serwerze.

  • Zmień domyślne hasło administratora i ogranicz użycie tylko do lokalnego hosta.

  • Zmień domyślny port i określ interfejs nasłuchiwania.

  • Włącz wtyczkę polityki bezpieczeństwa haseł.

  • Skonfiguruj certyfikaty SSL do szyfrowania przesyłanych danych.

  • Szyfruj dane w spoczynku.

  • Skonfiguruj lokalną zaporę sieciową, aby umożliwić dostęp do portu bazy danych tylko z sieci lokalnej.

W przypadku korzystania z zarządzanej bazy danych PostgreSQL, niektóre z powyższych punktów nie będą konieczne.

Kontrola i rejestrowanie

Wyrażenia rejestrowania mogą pomóc w wykryciu problemów z bezpieczeństwem lub ich uniknięciu, jeśli nadrobisz je na czas.

Możesz użyć standardowego narzędzia PostgreSQL do rejestrowania przy użyciu parametru log_statement, ale możesz również użyć rozszerzenia, takiego jak pgAudit, aby uzyskać bardziej szczegółowe rejestrowanie sesji i audytu obiektów.

Zaimplementuj WAF (Zaporę sieciową aplikacji internetowych)

Wstrzyknięcia SQL lub ataki DoS (odmowa usługi) to najczęstsze ataki na bazę danych, a najbezpieczniejszym sposobem ich uniknięcia jest użycie WAF do przechwytywania tego rodzaju zapytań SQL lub SQL Serwer proxy do analizy ruchu.

Często sprawdzaj CVE (typowe podatności i ekspozycje)

Każdego dnia wykrywane są nowe luki w zabezpieczeniach serwera bazy danych. Powinieneś to często sprawdzać, aby wiedzieć, czy musisz zastosować łatkę lub zmienić coś w swojej konfiguracji. Jednym ze sposobów, aby się o tym przekonać, jest przejrzenie witryny CVE, na której można znaleźć listę luk w zabezpieczeniach wraz z opisem, a także poszukać wersji i dostawcy bazy danych, aby potwierdzić, czy jest coś krytycznego do naprawienia jak najszybciej.

Aby być bardziej szczegółowym, możesz sprawdzić sekcję PostgreSQL, aby spróbować znaleźć problemy dla swojej wersji bazy danych.

Dbaj o aktualność systemu operacyjnego i bazy danych

Istnieje kilka poprawek i ulepszeń, które producent bazy danych lub system operacyjny wydaje w celu naprawienia lub uniknięcia luk. Ważne jest, aby system był jak najbardziej aktualny, stosując poprawki i aktualizacje zabezpieczeń.

Monitorowanie

Aby poznać stan swoich systemów, musisz mieć dobry system monitorowania. Może to być przydatne do znalezienia problemów z bezpieczeństwem lub nawet ich uniknięcia.

W tym celu ClusterControl jest dobrą opcją, ponieważ jest to system zarządzania i monitorowania, który pomaga we wdrażaniu, zarządzaniu, monitorowaniu i skalowaniu baz danych z przyjaznego interfejsu. Obsługuje najlepsze technologie baz danych typu open source i możesz zautomatyzować wiele zadań związanych z bazą danych, które musisz regularnie wykonywać, takich jak dodawanie i skalowanie nowych węzłów, wykonywanie kopii zapasowych i przywracanie oraz wiele innych.

ClusterControl umożliwia monitorowanie serwerów w czasie rzeczywistym za pomocą wstępnie zdefiniowanego zestawu pulpitów nawigacyjnych w celu analizowania niektórych z najczęstszych wskaźników.

Pozwala dostosować wykresy dostępne w klastrze i włączyć monitorowanie oparte na agentach w celu generowania bardziej szczegółowych pulpitów nawigacyjnych.

Możesz także tworzyć alerty informujące o zdarzeniach w klastrze lub integrować się z różnymi usługami, takimi jak PagerDuty lub Slack.

W sekcji monitora zapytań możesz znaleźć najpopularniejsze zapytania, uruchomione zapytania, wartości odstające zapytań oraz statystyki zapytań w celu monitorowania ruchu w bazie danych.

Dzięki tym funkcjom możesz zobaczyć, jak działa twoja baza danych PostgreSQL.

Wnioski

Wspomniane powyżej punkty pomogą ci zlikwidować lukę w zabezpieczeniach bazy danych PostgreSQL, ale jak wspomnieliśmy, zawsze istnieje ryzyko zhakowania.

Ponadto powinieneś mieć dobry system monitorowania, taki jak ClusterControl, i okresowo uruchamiać niektóre narzędzia do skanowania bezpieczeństwa, które szukają luk w zabezpieczeniach, takich jak Nessus, aby jeszcze bardziej zminimalizować zagrożenia bezpieczeństwa.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. pgFincore 1.2, rozszerzenie PostgreSQL

  2. Jak uzyskać aktualną datę i godzinę (bez strefy czasowej) w PostgreSQL?

  3. GroupingError:ERROR:kolumna musi występować w klauzuli GROUP BY lub być używana w funkcji agregującej

  4. Wyceniony w tabeli odpowiednik parametru w Postgresql

  5. Powiąż parametr tablicy z natywnym zapytaniem