sql >> Database >  >> RDS >> PostgreSQL

Hoe de kwetsbaarheidskloof in PostgreSQL te dichten

Het maakt niet uit wat voor soort technologie of beveiligingssysteem je gebruikt, er is altijd een risico om gehackt te worden, aangezien er geen 100% beveiligd systeem is. Aangezien gegevens waarschijnlijk het belangrijkste bezit van een bedrijf zijn, moet u uw systeem zo goed mogelijk beveiligen om dit risico te minimaliseren.

In deze blog worden enkele belangrijke controles genoemd die in uw PostgreSQL-omgeving moeten worden uitgevoerd om de kwetsbaarheidskloof te dichten en enkele van de meest voorkomende beveiligingsproblemen te voorkomen.

Beveiliging van communicatie

Als u verschillende Cloud Providers, een combinatie van Cloud Provider en On-Prem, of zelfs alleen een On-Prem-omgeving gebruikt, moet de communicatie in al uw systemen versleuteld zijn en moet u de verkeer alleen van bekende bronnen om het risico van ongeautoriseerde toegang tot uw netwerk te verminderen.

Het gebruik van VPN-, SSH- of Firewall-regels, of zelfs een combinatie daarvan, is hiervoor een goede oplossing.

Databasetoegang beheren

Je moet zowel fysieke toegang als toegang op afstand beperken.

  • Fysieke toegang (op locatie):beperk ongeautoriseerde fysieke toegang tot de databaseserver.

  • Toegang op afstand:beperk de toegang op afstand tot alleen de noodzakelijke mensen en met zo min mogelijk bronnen. Het gebruik van een VPN om toegang te krijgen is hier zeker handig, maar er zijn ook andere opties zoals SSH Tunneling. U moet de beste oplossing voor uw bedrijf vinden.

Database-gebruikersaccounts beheren

Er zijn veel manieren om de beveiliging van uw gebruikersaccounts in PostgreSQL te verbeteren.

  • Verwijder inactieve gebruikers. Hiervoor moet u een periode definiëren om een ​​gebruiker als inactief te beschouwen, en u kunt deze zo plannen dat deze automatisch wordt verwijderd.

  • Verleen alleen de benodigde rechten wanneer u een nieuwe gebruikersaccount aanmaakt.

  • Beperk de bron voor elke gebruikersverbinding met behulp van het pg_hba.conf-configuratiebestand.

  • Definieer een veilig wachtwoordbeleid (of schakel hiervoor een plug-in in, bijvoorbeeld wachtwoordcontrole).

Beveiligde installaties en configuraties

Er zijn enkele wijzigingen die u moet doen om uw PostgreSQL-installatie te beveiligen.

  • Installeer alleen de benodigde pakketten en services op de server.

  • Wijzig het standaard beheerderswachtwoord en beperk het gebruik van alleen de localhost.

  • Wijzig de standaardpoort en specificeer de interface om naar te luisteren.

  • Schakel de plug-in voor wachtwoordbeveiligingsbeleid in.

  • SSL-certificaten configureren om data-in-transit te versleutelen.

  • Versleutel data-at-rest.

  • Configureer de lokale firewall om alleen toegang tot de databasepoort toe te staan ​​vanaf het lokale netwerk.

Als u een beheerde PostgreSQL-database gebruikt, zijn sommige van de hierboven genoemde punten niet nodig.

Auditing en logboekregistratie

Het loggen van instructies kan u helpen beveiligingsproblemen op te sporen of te vermijden als u ze op tijd inhaalt.

U kunt de standaard PostgreSQL-functie voor loggen gebruiken met behulp van de parameter log_statement, maar u kunt ook een extensie zoals pgAudit gebruiken voor een meer gedetailleerde logboekregistratie van sessie- en objectaudits.

Implementeer een WAF (Web Application Firewall)

SQL-injecties of DoS-aanvallen (Denial of Service) zijn de meest voorkomende aanvallen op een database, en de veiligste manier om ze te vermijden is door een WAF te gebruiken om dit soort SQL-query's of een SQL op te vangen Proxy om het verkeer te analyseren.

Controleer regelmatig CVE (Common Vulnerabilities and Exposures)

Elke dag worden er nieuwe kwetsbaarheden gedetecteerd voor uw databaseserver. U moet het regelmatig controleren om te weten of u een patch moet toepassen of iets in uw configuratie moet wijzigen. Een manier om dit te weten te komen, is door de CVE-website te bekijken, waar u een lijst met kwetsbaarheden met een beschrijving kunt vinden, en u kunt zoeken naar uw databaseversie en leverancier, om te bevestigen of er iets essentieels is dat zo snel mogelijk moet worden opgelost.

Om specifieker te zijn, kun je de PostgreSQL-sectie raadplegen om problemen voor je databaseversie te vinden.

Houd uw besturingssysteem en database up-to-date

Er zijn verschillende fixes en verbeteringen die de databaseleverancier of het besturingssysteem uitbrengt om kwetsbaarheden te verhelpen of te voorkomen. Het is belangrijk om uw systeem zo up-to-date mogelijk te houden door patches en beveiligingsupgrades toe te passen.

Bewaking

Om de status van uw systemen te kennen, moet u een goed monitoringsysteem hebben. Dit kan handig zijn om beveiligingsproblemen op te sporen of zelfs te vermijden.

Hiervoor is ClusterControl een goede optie, aangezien het een beheer- en controlesysteem is dat u helpt bij het implementeren, beheren, bewaken en schalen van uw databases vanuit een gebruiksvriendelijke interface. Het biedt ondersteuning voor de beste open-source databasetechnologieën en u kunt veel van de databasetaken automatiseren die u regelmatig moet uitvoeren, zoals het toevoegen en schalen van nieuwe knooppunten, het uitvoeren van back-ups en herstelbewerkingen, en meer.

Met ClusterControl kunt u uw servers in realtime bewaken met een vooraf gedefinieerde set dashboards om enkele van de meest voorkomende statistieken te analyseren.

Hiermee kunt u de beschikbare grafieken in het cluster aanpassen, en u kunt de op agenten gebaseerde controle inschakelen om meer gedetailleerde dashboards te genereren.

U kunt ook waarschuwingen maken, die u informeren over gebeurtenissen in uw cluster, of integreren met verschillende services zoals PagerDuty of Slack.

In de sectie Querymonitor kunt u de meest voorkomende zoekopdrachten, de lopende zoekopdrachten, uitbijters van zoekopdrachten en de zoekopdrachtstatistieken vinden om uw databaseverkeer te controleren.

Met deze functies kunt u zien hoe uw PostgreSQL-database werkt.

Conclusie

De hierboven genoemde punten zullen u helpen de kwetsbaarheidskloof in uw PostgreSQL-database te dichten, maar zoals we al zeiden, bestaat er altijd een risico om gehackt te worden.

Je zou ook een goed monitoringsysteem zoals ClusterControl moeten hebben en regelmatig een aantal beveiligingsscantools moeten uitvoeren die op zoek zijn naar kwetsbaarheden zoals Nessus om de beveiligingsrisico's nog meer te minimaliseren.


  1. SQL Server verbinden met Oracle

  2. Waarom evalueert NULL =NULL naar onwaar in de SQL-server?

  3. Oracle:verschil tussen max(id)+1 en sequence.nextval

  4. MySQL datetime-velden en zomertijd -- hoe verwijs ik naar het extra uur?