Posizione più sicura del database

1

Diciamo che ho una semplice applicazione del sito web completamente basata su database e memorizzo il mio database sul mio server web nella DMZ. Non trasmetterò l'indirizzo IP del mio database perché non invierò chiamate, il che rende il mio database inaccessibile al mondo esterno.

Se inserisco il mio database sulla rete interna e poi colloco un servizio Web che ospita il mio livello di accesso ai dati su un server di applicazioni separato in una sottorete interna tra il server di applicazioni del sito Web rivolto all'esterno nella DMZ e il server di database nella LAN, non sta semplicemente trasmettendo la posizione del mio database, incluse le informazioni di accesso dell'utente?

Il secondo metodo non è semplicemente quello di dire a tutti nel mondo esterno dove si trova il mio database?

    
posta ostrichchasedwormaroundfield 07.05.2015 - 06:37
fonte

3 risposte

2

È una cattiva idea ospitare un server database sul tuo server web di fronte a Internet.

Se il sistema operativo del server Web / DB sottostante o la piattaforma server Web stessa contengono vulnerabilità che possono essere sfruttate, il database verrà compromesso.

I won't be broadcasting the IP address of my database because I won't be sending calls to it, which makes my database inaccessible to the outside world.

Questo non è vero. Se la tua applicazione Web è vulnerabile a SQL Injection, non importa dove risiede il tuo DB sulla rete, sarà direttamente accessibile e sfruttabile da un client su Internet.

Idealmente la tua applicazione verrebbe progettata intorno a Architettura a più livelli con ogni livello residente in una DMZ diversa. Preferibilmente ogni livello contiene anche apparecchiature di monitoraggio della rete per applicare protezioni e allarmi su attività sospette. (WAF, IPS / IDS, monitoraggio attività del database, ecc.)

Immagineda: link

    
risposta data 07.05.2015 - 15:47
fonte
1

Pensa agli scenari di compromesso. Se si ospita il database sullo stesso sistema del servizio Web, una compromissione del servizio Web comporta una compromissione immediata del database. Quindi, questo è minimamente sicuro.

Se si ospita il database su un server "interno" a cui il servizio Web può accedere (tramite un'interfaccia di rete rivolta verso l'interno o regole speciali del firewall), un utente malintenzionato che compromette il servizio Web non ha immediatamente accesso al database, ma troveranno rapidamente le credenziali utilizzate dal servizio web per il database e procederanno ad accedervi a piacimento.

Il secondo scenario è significativamente più sicuro del primo scenario? Dipende da come viene utilizzato il database. È possibile mettere in atto misure di progettazione e sicurezza per limitare ciò che il server Web può ottenere dal database, a seconda di ciò che sta facendo l'applicazione. Altrimenti, è meglio raddoppiare sul server web per proteggerlo con ogni mezzo disponibile.

    
risposta data 07.05.2015 - 14:12
fonte
0

I won't be broadcasting the IP address of my database because I won't be sending calls to it, which makes my database inaccessible to the outside world

Non conoscere un indirizzo IP non rende inaccessibile qualcosa in quell'indirizzo. In un'analogia è una casa senza un indirizzo. Se un ladro cammina vicino a quella casa, può ancora entrare nella porta. Affinché il tuo database sia inaccessibile, devi utilizzare un firewall. Ad esempio, è possibile vietare l'accesso alla porta del database dalla rete esterna.

Penso che tu non capisca il termine DMZ in tutta la sua estensione. DMZ può essere implementato in molti modi, e il suo scopo è mettere misure di sicurezza tra la rete esterna e il resto della rete interna che non dovrebbe avere nulla all'esterno. Ciò significa che anche se si verifica una violazione su un determinato server nella DMZ, utilizzarla per accedere ad altre macchine nella rete interna sarà molto più difficile.

Anche se hai l'indirizzo IP di una macchina nella rete interna, questo non ti garantirà l'accesso dalla rete esterna a quella macchina, grazie al firewall che protegge la rete interna dal mondo esterno.

Detto questo, i tuoi indirizzi IP interni e, naturalmente, le credenziali utilizzate per l'autenticazione con altri servizi nella rete interna sono ancora dati sensibili che dovrebbero essere tenuti segreti. Questa è una misura di sicurezza "extra" sulla parte superiore del firewall, nel caso in cui qualcuno abbia accesso alla rete interna, ad esempio infettando uno dei dispositivi nella rete interna con un virus.

Mantenere questi come un segreto è fatto con la giusta configurazione del server web, non per esporre questi dettagli al mondo esterno, e si raccomanda anche di crittografare questi dettagli come misura di sicurezza aggiuntiva.

    
risposta data 07.05.2015 - 13:57
fonte

Leggi altre domande sui tag