conseguenze sulla sicurezza di un database accessibile al pubblico?

3

Mi è stato chiesto di esporre pubblicamente il database di un'app Web in modo che un servizio esterno possa connettersi direttamente al database (tramite nome utente / password) per leggere le informazioni. Questo database è attualmente protetto da un firewall, con l'app Web che si collega localmente ad esso.

Questo mi fa sentire la campana di allarme come una minaccia per la sicurezza, vorrei essere in grado di riassumere perché questa non è una buona idea. Quindi quali sono in realtà le minacce?

Penserei immediatamente all'esposizione al potenziale DDOS del database e agli exploit e alle vulnerabilità esistenti per lo specifico server del database stesso? Semplice riconfigurazione del server di database, esponendo i dati? Non stai usando le connessioni SSL?

    
posta Timmy O'Mahony 29.09.2018 - 09:14
fonte

1 risposta

1

Le campane che suonano nella tua testa sono corrette e sarei lì con te. Questa è una cattiva pratica e temo di averla vista molte volte.

Ecco alcune vulnerabilità e minacce che vengono in mente con l'esposizione di un database a una terza parte e al pubblico:

  • L'autenticazione tramite nome utente / password è debole e soggetta a attacchi di forza bruta e irrorazione delle password. Sarà difficile implementare MFA.
  • Alcuni database supportano TLS / SSL, altri no. Meglio assicurarsi che la crittografia end-to-end sia abilitata.
  • A seconda se memorizzi PHI, non sei assolutamente compatibile con HIPPA.
  • Manca un livello di ritaglio o la possibilità di bloccare qualcuno dopo aver fallito l'autenticazione un numero di volte.
  • Il software del database può essere molto complesso, è meglio tenerlo aggiornato su tutte le patch. Se sei in ritardo o manchi uno, buona fortuna.
  • Spero ti fidi di questa terza parte al 1000%, qualsiasi compromesso e il tuo database è sparito.
  • Gli attacchi DOS sono a bassa quota di frutta
  • Qualsiasi utente malintenzionato che esegue la scansione della rete esterna e trova una porta aperta nota per l'esecuzione di database probabilmente saprà che sei un obiettivo facile in altre aree
  • Gestione. Hai intenzione di creare un nome utente e una password per ciascun utente?
  • È molto difficile se hai 30 utenti per assicurarti che abbiano le viste e l'accesso al database e alle tabelle corretti. Il minimo privilegio è molto difficile qui.

Pensa al possibile modo corretto di farlo (ci sono altri modi):

  • Esposizione di un'API al pubblico. L'API si connette, preferibilmente attraverso un WAF, al database. L'API può concedere token con diritti particolari (viste del database) e tempi di accesso. Questi sono facilmente revocati e il tuo database è molto più sicuro, se lo fai bene *. L'API può essere facilmente protetta con TLS, whitelisting, MFA e altri controlli come bloccare qualcuno dopo un numero di tentativi falliti
risposta data 29.09.2018 - 15:56
fonte

Leggi altre domande sui tag