Come verificare che le password non siano archiviate in un formato leggibile

5

Sto scrivendo un piano per controllare la mia politica sulle password, e sono rimasto bloccato su uno dei miei controlli delle norme che si stava assicurando che nessuna password debba essere archiviata in un formato leggibile.

Qual è la migliore pratica che dovrei seguire per controllare questo controllo? sapendo che controllerò quasi 40 componenti.

    
posta user78455 12.06.2015 - 05:53
fonte

3 risposte

7

Sebbene l'archiviazione in chiaro delle password sia una cosa negativa, alcuni tipi di "inversione reversibile" (ad esempio codifica Base64 o "crittografia" ROT13) non sono molto migliori e dovrebbero essere rilevati.

Il modo giusto per controllare il metodo di archiviazione e verifica delle password è esaminare la specifica , cioè il documento che indica quale algoritmo è utilizzato e con quali parametri. Se quel documento esiste, basta leggerlo. Se quel documento non esiste, supponi il peggio; dal punto di vista dell'audit, un comportamento non specificato è grave quanto un comportamento debole.

Guardare il database è simile al reverse engineering: mentre tende a funzionare (si può effettivamente imparare molte cose attraverso il reverse engineering), indica anche che i progettisti non collaborano con i revisori, e ciò renderà l'audit senza significato.

(In fretta, come auditor, potresti accontentarti di una copia del codice sorgente e vedere di persona come il codice elabora le password.Il codice sorgente non è un buon sostituto per la corretta documentazione, ma è ancora molto meglio dell'inferenza da un rapido sguardo a un database.)

    
risposta data 12.06.2015 - 14:47
fonte
2

Il modo migliore per controllarlo è la revisione del codice sorgente. È necessario verificare che l'applicazione utilizzi hashing strong, come usi salt e non registri i dati sensibili. Inoltre, se il database delle password supporta l'aggiornamento hash, assicurati di prendere nota dello schema di hashing più debole che è ancora accettato e quanti utenti hanno ancora hash più vecchio / più debole.

Lo svantaggio con il controllo solo dei dati del database è che può essere difficile / impossibile distinguere tra se un campo password è hash (buono) o crittografato (non buono).

Dovresti anche controllare il log dell'applicazione, assicurati che l'applicazione non registri le password (ad es., se eccezione durante il login).

    
risposta data 12.06.2015 - 14:35
fonte
2

Vorrei controllare la memorizzazione della password per vedere se ci sono pattern evidenti (ad esempio "password1234"), o creare un 'utente test' con una password conosciuta e vedere se quella password è in chiaro negli archivi delle password.

Quest'ultima opzione consente la possibilità di test automatici.

Per lo più, questo tipo di audit deve essere eseguito solo una volta e in seguito alle modifiche al modo in cui le password vengono archiviate. Potresti semplicemente verificare manualmente che le password siano hash (ciò significa che tendono ad avere la stessa lunghezza e nessuna "parola").

Modifica

Tom Leek ha il modo più corretto di controllare la corretta gestione delle password, il che indica un punto debole del tuo controllo: dovresti avere un controllo che si occupa di una gamma di modi accettabili per gestire la memorizzazione di password più robuste che semplicemente " non leggibile'.

Detto questo, è anche importante esaminare la memoria per vedere se viene applicata nel modo previsto.

    
risposta data 12.06.2015 - 07:03
fonte

Leggi altre domande sui tag