Database compromesso e alcune password incrinate

1

Gestisco un gioco MMORPG e oggi mentre si sposta da un server a un altro, apache ha fallito e ha elencato alcuni dati sul server incluso un back-up di tutto il codice sorgente + database che alcune persone hanno scaricato

Quando ho capito che è successo, ho forzato una modifica della password su tutti gli utenti e ho immediatamente cambiato la password del mio database

Le password sono state crittografate con SHA1 e, come ho capito, alcuni utenti sono stati hackerati (quindi immagino che le loro password siano state violate) dopo aver chiesto agli utenti che sono stati hackerati quali erano le loro password, erano soprattutto password numeriche che erano incrinate. Gli account che sono stati hackerati hanno ingame azioni che riguardano l'intero gameplay e quindi sono costretto a ripristinare il mio ultimo backup del database (che è anche il database degli hacker)

Ora, una volta che lo faccio. Le password per gli utenti sarebbero rimaste invariate (quelle incrinate) quindi mi chiedevo come avrei potuto ripristinare il backup del mio database e anche assicurarmi che gli utenti fossero al sicuro

Ho pensato di generare password casuali per ogni utente + salt e inviarle via e-mail con la nuova password, così hanno una nuova password che gli hacker non hanno, e dopo il login saranno anche costrette a cambiarle. Sarebbe la migliore pratica? Qualcuno ha un'idea migliore?

    
posta Sins 26.07.2014 - 03:42
fonte

2 risposte

2

Generare password casuali e inviarle agli utenti va bene. Ma la cosa più importante da fare, se non già fatto, è di avvertire TUTTI gli utenti che le loro password sono state compromesse e se usano lo stesso su qualunque altro sito / app devono assolutamente cambiarle.

    
risposta data 26.07.2014 - 04:19
fonte
1

Supponendo che tu abbia una funzione di reimpostazione della password (sarei sorpreso se non lo facessi), avrei solo annullato / sostituito gli hash con qualcosa di vuoto / inutile. In questo modo, nessuno può accedere e l'utente corretto può reimpostare la propria password per riottenere l'accesso.

Dovresti prendere in considerazione l'utilizzo di una tecnica di hashing migliore rispetto a SHA-1. Per le password semplici, ci sono le tabelle di Rainbow e altri elenchi di password precomputed per SHA-1 (non salato). Come minimo, dovresti salare gli hash e preferibilmente usare una tecnica come PBKDF2, bcrypt o scrypt per generare hash in un modo che rende molto più difficile per un futuro utente malintenzionato decifrare gli hash.

    
risposta data 26.07.2014 - 04:21
fonte