Quanto è utile crittografare / decrittografare le informazioni su un app-server e inviarlo al database crittografato?

1

Ho appena aggiunto del codice al nostro server delle app per crittografare le informazioni personali prima che siano archiviate nel database. Questo è stato fatto principalmente per motivi di conformità, ma quanto di una reale vincita di sicurezza è?

Ho sentito parlare dei dump del database tutto il tempo, ma non sono chiaro su come gli hacker in genere ottengano il database. Se è arrivando a una shell ed è in grado di eseguire codice arbitrario, sembra abbastanza semplice andare sui server delle app per trovare la chiave di crittografia in uso.

Chiedo questo perché se si tratta di una vera vincita della sicurezza, probabilmente dovremmo crittografare più dati prima che raggiungano il database. D'altra parte, se si tratta solo di teatro, preferirei trascorrere il nostro tempo a migliorare la sicurezza in modo significativo.

(Si presume che i backup per il database siano essi stessi crittografati).

    
posta MaxGabriel 24.07.2018 - 02:30
fonte

2 risposte

2

Dato che non c'è stata una risposta, farò un tentativo in questo ... ma ci sono già altre domande sulla crittografia del database, quindi potresti volerle controllare anche alcune.

Per quanto riguarda la modalità di acquisizione dei database:

  • Backup
  • SQL Injection
  • Apri le porte e il relativo terrore delle password predefinite
  • Istantanee di produzione utilizzate in Sviluppo o Staging

Anche se è possibile che un utente malintenzionato possa semplicemente acquisire la chiave di crittografia dal disco come suggerito ... Copro alcuni modi per mitigare tale rischio in una risposta precedente .

Per quanto riguarda l'efficacia generale ... Vorrei avere qualche risorsa statistica da chiamare, ma non lo faccio. Intuitivamente, sembrerebbe proteggere i tuoi dati con la maggior parte degli approcci di discarica statici. Aumenta il requisito di complessità per un utente malintenzionato, che in genere è esattamente quello che desideri, dal momento che ora sarà necessario violare il livello dell'applicazione per ottenere le chiavi, oltre al livello del database.

La violazione di Patreon è generalmente il mio esempio preferito di come la crittografia del database aiuta a mitigare il fallout di un incidente importante.

    
risposta data 24.07.2018 - 14:14
fonte
2

Difficile rispondere in modo generico, perché dipende dal caso d'uso reale. Quindi fornirò alcuni suggerimenti e domande che potrebbero essere importanti per fare la scelta.

  • è la crittografia del database richiesta per soddisfare alcune regole normative o normative? Se la risposta è sì ed è sufficiente per soddisfare il requisito, non preoccuparti di più.
  • hai effettuato un'analisi dei rischi? se la risposta è no, dovrebbe essere considerata prima di ogni altra azione
  • l'analisi del rischio ha concluso che dovresti evitare di essere responsabile di una fuga di dati a tutti i costi? se la risposta è sì, allora si dovrebbe avere una soluzione di crittografia lato client: se non si possiede la chiave, non si può essere ritenuti responsabili di una fuga di dati
  • l'analisi del rischio ha concluso che è necessario proteggere gli utenti da una possibile perdita di password / chiave? se la risposta è sì, l'enciclopedia lato client non è un'opzione

Il problema quando si esegue la crittografia sul lato server è che la chiave deve esistere in una forma invertibile sul server. Quindi non è una bacchetta magica (come la crittografia lato client) ma solo un elemento di difesa approfondita. L'autore dell'attacco deve:

  • trova un exploit sul server
  • usa quell'exploit per accedere al database
  • usa quell'exploit per trovare la chiave di crittografia

Ci vorrà un po 'di tempo per utilizzare ogni fase per respingere l'attacco.

Per quanto riguarda la tua domanda sui dump di database, è principalmente una preoccupazione quando il database non si trova nello stesso datacenter e potrebbe avere una protezione inferiore. È anche una preoccupazione non appena i tuoi attacchi interni sono considerevoli. Una connessione di amministrazione a un server di applicazioni per cercare una chiave di crittografia non è un'operazione standard e potrebbe essere notata, mentre una connessione al database per estrarre un dump è spesso un'operazione di manutenzione standard, quindi è probabile che non venga notata.

    
risposta data 24.07.2018 - 17:30
fonte

Leggi altre domande sui tag