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

Come colmare il divario di vulnerabilità in PostgreSQL

Indipendentemente dal tipo di tecnologia o sistema di sicurezza in uso, c'è sempre il rischio di essere violati poiché non esiste un sistema sicuro al 100%. Poiché i dati sono probabilmente la risorsa più importante in un'azienda, è necessario proteggere il più possibile il sistema per ridurre al minimo questo rischio.

Questo blog menzionerà alcuni importanti controlli da eseguire nel tuo ambiente PostgreSQL per colmare il gap di vulnerabilità ed evitare alcuni dei problemi di sicurezza più comuni.

Protezione delle comunicazioni

Se utilizzi diversi Cloud Provider, una combinazione di Cloud Provider e On-Prem, o anche solo un ambiente On-Prem, la comunicazione in tutti i tuoi sistemi deve essere crittografata e devi limitare il traffico solo da fonti note per ridurre il rischio di accesso non autorizzato alla tua rete.

L'utilizzo di regole VPN, SSH o Firewall, o anche una loro combinazione, è una buona soluzione per questo punto.

Controllo dell'accesso al database

Devi limitare l'accesso sia fisico che remoto.

  • Accesso fisico (on-premise):limita l'accesso fisico non autorizzato al server del database.

  • Accesso remoto:Limita l'accesso remoto solo alle persone necessarie e dalla minor quantità possibile di fonti. Usare una VPN per accedervi è sicuramente utile qui, ma ci sono anche altre opzioni come SSH Tunneling. Dovresti trovare la soluzione migliore per la tua azienda.

Gestione degli account utente del database

Ci sono molti modi per migliorare la sicurezza dei tuoi account utente in PostgreSQL.

  • Rimuovi gli utenti inattivi. Per questo, dovresti definire un periodo di tempo per considerare un utente come inattivo e puoi programmarlo per rimuoverlo automaticamente.

  • Concedi solo i privilegi necessari quando crei un nuovo account utente.

  • Limita la sorgente per ogni connessione utente utilizzando il file di configurazione pg_hba.conf.

  • Definisci una politica per la password sicura (o abilita un plug-in per questo, ad es. passwordcheck).

Installazioni e configurazioni sicure

Ci sono alcune modifiche da fare per proteggere l'installazione di PostgreSQL.

  • Installa solo i pacchetti ei servizi necessari sul server.

  • Cambia la password utente amministratore predefinita e limita l'utilizzo solo al localhost.

  • Cambia la porta predefinita e specifica l'interfaccia su cui ascoltare.

  • Abilita plug-in criteri di sicurezza password.

  • Configura i certificati SSL per crittografare i dati in transito.

  • Crittografa i dati inattivi.

  • Configura il firewall locale per consentire l'accesso alla porta del database solo dalla rete locale.

Nel caso in cui utilizzi un database PostgreSQL gestito, alcuni dei punti sopra menzionati non saranno necessari.

Controllo e registrazione

Le istruzioni di registrazione possono aiutarti a rilevare problemi di sicurezza o evitarli se li aggiorni in tempo.

Puoi usare la funzione di registrazione standard di PostgreSQL usando il parametro log_statement, ma puoi anche usare un'estensione come pgAudit per avere una sessione più dettagliata e una registrazione di controllo degli oggetti.

Implementare un WAF (Web Application Firewall)

Le iniezioni SQL o gli attacchi DoS (Denial of Service) sono gli attacchi più comuni a un database e il modo più sicuro per evitarli è utilizzare un WAF per catturare questo tipo di query SQL o un SQL Proxy per analizzare il traffico.

Controlla frequentemente CVE (Vulnerabilità ed esposizioni comuni)

Ogni giorno vengono rilevate nuove vulnerabilità per il tuo server di database. Dovresti controllarlo frequentemente per sapere se devi applicare una patch o cambiare qualcosa nella tua configurazione. Un modo per saperlo è esaminare il sito Web CVE, dove puoi trovare un elenco di vulnerabilità con una descrizione e puoi cercare la versione del tuo database e il fornitore, per confermare se c'è qualcosa di fondamentale da risolvere il prima possibile.

Per essere più specifici, puoi controllare la sezione PostgreSQL per cercare di trovare problemi per la versione del tuo database.

Mantieni il tuo sistema operativo e database aggiornati

Ci sono diverse correzioni e miglioramenti che il fornitore del database o il sistema operativo rilasciano per correggere o evitare le vulnerabilità. È importante mantenere il sistema il più aggiornato possibile applicando patch e aggiornamenti di sicurezza.

Monitoraggio

Per conoscere lo stato dei tuoi sistemi, dovrai disporre di un buon sistema di monitoraggio. Questo potrebbe essere utile per trovare problemi di sicurezza o addirittura per evitarli.

A tal fine, ClusterControl è una buona opzione in quanto è un sistema di gestione e monitoraggio che consente di distribuire, gestire, monitorare e ridimensionare i database da un'interfaccia intuitiva. Supporta le migliori tecnologie di database open source e puoi automatizzare molte delle attività del database che devi eseguire regolarmente, come l'aggiunta e il ridimensionamento di nuovi nodi, l'esecuzione di backup e ripristini e altro ancora.

ClusterControl ti consente di monitorare i tuoi server in tempo reale con un set predefinito di dashboard per analizzare alcune delle metriche più comuni.

Ti permette di personalizzare i grafici disponibili nel cluster e puoi abilitare il monitoraggio basato su agenti per generare dashboard più dettagliati.

Puoi anche creare avvisi, che ti informano di eventi nel tuo cluster, o integrarti con diversi servizi come PagerDuty o Slack.

Nella sezione di monitoraggio delle query, puoi trovare le query principali, le query in esecuzione, i valori anomali delle query e le statistiche delle query per monitorare il traffico del database.

Con queste funzionalità, puoi vedere come sta andando il tuo database PostgreSQL.

Conclusione

I punti sopra menzionati ti aiuteranno a colmare il gap di vulnerabilità nel tuo database PostgreSQL, ma come accennato, c'è sempre il rischio di essere hackerato.

Inoltre, dovresti disporre di un buon sistema di monitoraggio come ClusterControl ed eseguire periodicamente alcuni strumenti di scansione della sicurezza alla ricerca di vulnerabilità come Nessus per ridurre ulteriormente i rischi per la sicurezza.