Sicurezza di un server di database SQL utilizzato nell'app Web

2

Presso la mia organizzazione abbiamo un sondaggio sul sito web utilizzato da uno dei gestori per scopi di uguaglianza. Hanno progettato e implementato il sondaggio in Adobe FormsCentral che ora è in pensione, quindi mi è stato chiesto di creare qualcosa di simile.

Sto per creare il sondaggio utilizzando ASP.Net MVC e ho pensato di aggiungere i dati a un database su un server SQL, in modo che i dati possano essere scaricati liberamente dal gestore. L'unico problema che ho è che il mio manager (non lo stesso che vuole il sondaggio) è preoccupato per la sicurezza dell'applicazione.

In particolare è preoccupato per il fatto che creeremo un collegamento dal nostro server web (in una DMZ) al nostro server SQL attualmente utilizzato solo internamente. Anche se voglio dire "andrà bene", ha ragione. Se il server Web è compromesso, potrebbe quindi esporre il nostro server di database, insieme alle credenziali per accedervi.

Limiterò le credenziali in modo che il sondaggio abbia solo le autorizzazioni di scrittura per la tabella specifica utilizzata, ma non sono sicuro che ci siano modi per proteggere le credenziali utilizzate per accedere al server del database. Utilizzerò le credenziali di lettura solo su una pagina intranet che il gestore può quindi utilizzare per scaricare i risultati.

È possibile nascondere le credenziali di qualcuno che ha accesso al server web? Oppure la risposta è "Non permettere che il tuo server web venga compromesso"? Sono interessato anche a questo per riferimento futuro, poiché potremmo archiviare in futuro dati più sensibili, ad esempio indirizzi di clienti, e consentire l'accesso a Internet tramite Internet, piuttosto che internamente.

E ci sono altre cose che dovrei cercare? Proteggerò già dagli attacchi SQL injection e scripting.

Per ulteriori informazioni, il server Web ha HTTPS e il server SQL contiene i dettagli del cliente memorizzati in altri database, ma questi non verranno toccati dall'applicazione. Qualsiasi aiuto o consiglio su questo sarebbe apprezzato.

    
posta James R 11.06.2015 - 09:52
fonte

2 risposte

0

Anche se il server Web è compromesso, le credenziali utilizzate per connettersi a SQL Server non verrebbero compromesse se si utilizza una cosiddetta Connessione sicura e ciò è raccomandato. Fondamentalmente ciò significa che si imposta il pool di applicazioni in IIS per l'esecuzione come utente particolare, chiamiamolo "IISUser". Quindi si fornisce a IISUser il set minimo di autorizzazioni per SQL Server richiesto per l'applicazione. Ad esempio, scrivere solo l'accesso alla tabella dei dati del sondaggio e l'accesso in sola lettura alle tabelle dei dati del gestore. Puoi rimuovere tutti gli altri accessi per quell'utente. Quindi, se il server Web viene compromesso, l'utente / passaggio di IISUser è ancora sicuro e, anche se l'utente malintenzionato può modificare l'applicazione Web per fare cose diverse che verranno eseguite come IISUser, sono comunque limitate alle autorizzazioni di accesso minime per SQL Server che hai fornito a quell'utente.

Detto questo, dovresti anche prendere le misure necessarie per assicurarti che il tuo server web non sia compromesso, perché se è possibile possono presentare qualsiasi pagina web che vogliono ai tuoi utenti. (Raccolta utente / pass da utenti, ecc.)

    
risposta data 11.06.2015 - 18:23
fonte
0

Potresti, se vuoi fare una quantità extra di lavoro, avere un middleware intermedio che interroga le richieste dal web server dmz. Potrebbe essere semplice come una API basata sul riposo (potrebbe non essere semplice :)). Ancora una volta la quantità di lavoro dipende dalla perdita monetaria associata ai dati.

Anche se ti avvicini a questo da una prospettiva di programmazione, quella sarà la metodologia. Ma se ci si avvicina dall'inevitabilità della perdita di dati, allora si andrebbe con una politica di backup.

    
risposta data 11.06.2015 - 10:59
fonte

Leggi altre domande sui tag