sql >> Database teknologi >  >> RDS >> PostgreSQL

Sådan lukkes sårbarhedsgabet i PostgreSQL

Uanset hvilken slags teknologi eller sikkerhedssystem du har på plads, er der altid en risiko for at blive hacket, da der ikke er et 100 % sikret system. Da data nok er det vigtigste aktiv i en virksomhed, skal du sikre dit system så meget som muligt for at minimere denne risiko.

Denne blog vil nævne nogle vigtige kontroller, du skal udføre i dit PostgreSQL-miljø for at lukke sårbarhedskløften og undgå nogle af de mest almindelige sikkerhedsproblemer.

Sikker kommunikation

Hvis du bruger forskellige Cloud Providers, en kombination af Cloud Provider og On-Prem, eller endda bare et On-Prem miljø, skal kommunikationen i alle dine systemer være krypteret, og du skal begrænse kun trafik fra kendte kilder for at reducere risikoen for uautoriseret adgang til dit netværk.

Brugen af ​​VPN-, SSH- eller Firewall-regler, eller endda en kombination af dem, er gode løsninger til dette punkt.

Kontrol af databaseadgang

Du skal begrænse både fysisk adgang og fjernadgang.

  • Fysisk adgang (on-prem):Begræns uautoriseret fysisk adgang til databaseserveren.

  • Fjernadgang:Begræns fjernadgangen til kun de nødvendige personer og fra det mindst mulige antal kilder. At bruge en VPN til at få adgang til det er bestemt nyttigt her, men der er også andre muligheder som SSH Tunneling. Du bør finde den bedste løsning til din virksomhed.

Administration af databasebrugerkonti

Der er mange måder at forbedre sikkerheden for dine brugerkonti i PostgreSQL.

  • Fjern inaktive brugere. Til dette bør du definere et tidsrum til at betragte en bruger som inaktiv, og du kan planlægge det til at fjerne dem automatisk.

  • Giv kun de nødvendige rettigheder, når du opretter en ny brugerkonto.

  • Begræns kilden for hver brugerforbindelse ved at bruge pg_hba.conf-konfigurationsfilen.

  • Definer en sikker adgangskodepolitik (eller aktiver et plugin til dette, f.eks. passwordcheck).

Sikker installation og konfiguration

Der er nogle ændringer at gøre for at sikre din PostgreSQL-installation.

  • Installer kun de nødvendige pakker og tjenester på serveren.

  • Skift standardadminbrugeradgangskoden og begræns brugen fra kun den lokale vært.

  • Skift standardporten, og angiv den grænseflade, der skal lyttes i.

  • Aktiver plugin til adgangskodesikkerhedspolitik.

  • Konfigurer SSL-certifikater til at kryptere data under transport.

  • Kryptér data-at-rest.

  • Konfigurer den lokale firewall til kun at tillade adgang til databaseporten fra det lokale netværk.

Hvis du bruger en administreret PostgreSQL-database, vil nogle af punkterne nævnt ovenfor ikke være nødvendige.

Revision og logføring

Logføringsudsagn kan hjælpe dig med at opdage sikkerhedsproblemer eller undgå dem, hvis du indhenter dem i tide.

Du kan bruge standardlogningspostgreSQL-faciliteten ved at bruge parameteren log_statement, men du kan også bruge en udvidelse som pgAudit for at få en mere detaljeret sessions- og objektrevisionslogning.

Implementer en WAF (Web Application Firewall)

SQL-injektioner eller DoS-angreb (Denial of Service) er de mest almindelige angreb på en database, og den sikreste måde at undgå dem på er ved at bruge en WAF til at fange denne type SQL-forespørgsler eller en SQL Proxy til at analysere trafikken.

Tjek CVE (Common Vulnerabilities and Exposures) ofte

Hver dag opdages nye sårbarheder for din databaseserver. Du bør tjekke det ofte for at vide, om du har brug for at anvende en patch eller ændre noget i din konfiguration. En måde at vide det på er ved at gennemgå CVE-webstedet, hvor du kan finde en liste over sårbarheder med en beskrivelse, og du kan kigge efter din databaseversion og leverandør for at bekræfte, om der er noget vigtigt at rette ASAP.

For at være mere specifik kan du tjekke PostgreSQL-sektionen for at prøve at finde problemer for din databaseversion.

Hold dit operativsystem og din database opdateret

Der er adskillige rettelser og forbedringer, som databaseleverandøren eller operativsystemet frigiver for at rette eller undgå sårbarheder. Det er vigtigt at holde dit system så opdateret som muligt ved at anvende patches og sikkerhedsopgraderinger.

Overvågning

For at kende status for dine systemer skal du have et godt overvågningssystem på plads. Dette kan være nyttigt for at finde sikkerhedsproblemer eller endda for at undgå dem.

Til dette er ClusterControl en god mulighed, da det er et administrations- og overvågningssystem, der hjælper dig med at implementere, administrere, overvåge og skalere dine databaser fra en brugervenlig grænseflade. Det har understøttelse af de bedste open source-databaseteknologier, og du kan automatisere mange af de databaseopgaver, du skal udføre regelmæssigt, såsom tilføjelse og skalering af nye noder, kørsel af sikkerhedskopier og gendannelser og mere.

ClusterControl giver dig mulighed for at overvåge dine servere i realtid med et foruddefineret sæt dashboards for at analysere nogle af de mest almindelige metrics.

Det giver dig mulighed for at tilpasse de tilgængelige grafer i klyngen, og du kan aktivere den agentbaserede overvågning for at generere mere detaljerede dashboards.

Du kan også oprette advarsler, som informerer dig om begivenheder i din klynge, eller integreres med forskellige tjenester såsom PagerDuty eller Slack.

I sektionen for forespørgselsovervågning kan du finde de øverste forespørgsler, de kørende forespørgsler, forespørgselsudlignere og forespørgselsstatistikken for at overvåge din databasetrafik.

Med disse funktioner kan du se, hvordan det går med din PostgreSQL-database.

Konklusion

Punkterne nævnt ovenfor vil hjælpe dig med at lukke sårbarheden i din PostgreSQL-database, men som vi nævnte, er der altid en risiko for at blive hacket.

Du bør også have et godt overvågningssystem som ClusterControl og med jævne mellemrum køre nogle sikkerhedsscanningsværktøjer på udkig efter sårbarheder som Nessus for at minimere sikkerhedsrisiciene endnu mere.


  1. Nogle ENHVER Aggregerede Transformationer er ødelagte

  2. Sådan sletter du dublerede rækker uden entydig identifikator

  3. T-SQL Datetime Data Type

  4. Hvordan kan jeg manipulere MySQL fuldtekst søgerelevans for at gøre et felt mere 'værdifuldt' end et andet?