it-swarm.dev

Il vicepresidente dell'IT afferma di non aver nascosto il 100% delle PW di tutti i 16.000 dipendenti. Ci sta mentendo?

Lavoro per un'azienda con circa 16.000 dipendenti. Periodicamente, il nostro vicepresidente dell'IT invia una newsletter con "suggerimenti tecnici" e materiale IT misto. L'argomento della newsletter di questa settimana è stato "sicurezza della password". Il paragrafo introduttivo ha attirato la mia attenzione:

Abbiamo appena decifrato tutte le password degli utenti in uso per vedere se i dipendenti utilizzano password complesse. Abbiamo usato una combinazione di forza bruta, rcracki, hashcat/oclHhashcat e strumenti john-the-ripper per decrittografare le password.

Questa è stata seguita da una tipica newsletter che parlava delle buone pratiche relative alle password: non usare parole del dizionario; assicurarsi di usare maiuscole/simboli misti; non scrivere la password su un giallo appiccicoso dal monitor; eccetera...

Ora, non sono un mago della crittografia, ma ero scettico sul fatto che avesse "decifrato tutte le password degli utenti". Posso credere che forse abbiano eseguito tutti gli hash attraverso i loro strumenti e "decifrato" una grande parte di essi, ma è davvero ragionevole che avrebbero le risorse informatiche per dichiarare di averle violate tutte ? (A proposito, è "decifrato" anche corretto in questo contesto?)

Gli ho mandato un'e-mail chiedendogli se intendeva dire che avevano eseguito tutte le password ATTRAVERSO gli strumenti di cracking, e ho semplicemente trovato un gran numero di quelli più deboli. Tuttavia ha risposto che, no, avevano effettivamente decifrato TUTTE le password degli utenti.

Posso apprezzare la lezione di sicurezza che sta cercando di insegnare qui, ma la mia password è di 8 caratteri casuali, generati da KeePass. Ho pensato che fosse abbastanza buono, è qualcosa di simile a Q6&dt>w} (ovviamente non è proprio così, ma è simile a quello).

I moderni strumenti di cracking sono davvero così potenti? O questo ragazzo probabilmente mi sta solo prendendo in giro in nome di una buona lezione di sicurezza?

Post scriptum Ho risposto alla sua e-mail chiedendo se poteva dirmi quali erano gli ultimi due caratteri della mia password. Ancora nessuna risposta, ma aggiornerò se riesce a produrlo!


EDIT: Alcune risposte stanno discutendo la mia particolare lunghezza della password. Nota che non solo sta sostenendo che hanno decifrato la MIA password (il che è credibile se mi hanno individuato), ma sostiene che lo hanno fatto per TUTTI gli utenti - e abbiamo oltre 10.000 dipendenti !! Non sono così ingenuo da pensare che ciò significhi 10.000 buone password sicure, ma se anche l'1% degli utenti ha una buona password, sono comunque 100 buone password sicure che dichiarano di aver violato!

73
loneboat

Ci sono alcune possibilità qui, alcune delle quali sono già state richiamate. Ognuno di questi renderebbe abbastanza banale che il tuo VP (IT) abbia "decifrato tutte le password degli utenti" indipendentemente dalla definizione che sta usando per "decifrare".

  1. Le password in questione vengono, infatti, archiviate con crittografia reversibile.
    • Il tuo vicepresidente potrebbe fare riferimento alle password per un'applicazione Web interna, in cui ha scelto di utilizzare la crittografia anziché l'hash.
    • Il tuo vicepresidente potrebbe effettivamente fare riferimento alle password di Windows e i criteri di gruppo della tua azienda consentono l'archiviazione con crittografia reversibile.
  2. Le password a cui fa riferimento il tuo VP vengono archiviate utilizzando algoritmi di hashing deboli e/o vengono hash senza sali per utente.
    • L'hash LM è un esempio di algoritmo debole, comune alle implementazioni di Windows ottimizzate per la compatibilità con le versioni precedenti.
    • Il mancato utilizzo di un salt per utente semplifica gli attacchi da dizionario e arcobaleno alle tabelle molto.
  3. Le password a cui fa riferimento il tuo vicepresidente potrebbero in realtà essere archiviate in testo normale e sta solo dicendo che sono state "decodificate" per nascondere il fatto che non sono mai state crittografate/hash in primo luogo.
  4. I dipendenti della tua azienda in realtà fanno tutti usano molto password deboli.
    • Indipendentemente da quanto sia casuale la tua password, 8 caratteri non sono stati considerati "forti" per un po 'di tempo.

Ritengo che il punto 4 di tale elenco sia piuttosto improbabile, quindi a meno che uno qualsiasi degli altri tre non sia vero, è del tutto possibile che il tuo vicepresidente stia esagerando un po '. Tuttavia, a meno che tu non abbia l'orecchio di qualcuno al livello C della tua azienda, dubito che ci sia molto che puoi fare per modificare qualsiasi cosa tranne la forza effettiva della tua password. A quello scopo:

  • Alcuni dicono che "12 è il nuovo 8". Dico di andare per 15. Questo non solo renderà la password naturalmente più forte, ma impedirà anche a Windows di memorizzarla nel formato hash LM debole. L'hash LM può gestire solo password lunghe fino a 14 caratteri. Windows può generare un messaggio di avviso quando si modifica la password in lunghezza di almeno 15 caratteri, ma questo (nella maggior parte dei casi) può essere tranquillamente ignorato.
  • Non utilizzare la stessa password su più applicazioni. Per lo meno, ti suggerisco di mantenere la tua password di lavoro diversa dalle password utilizzate per gli account personali. Idealmente, due applicazioni non dovrebbero usare la stessa password.
  • Tieni il resto delle cose buone che stai facendo. Generare casualmente le tue password da un intero ASCII è ottimo. Assicurati solo che il prodotto finale includa tutti e quattro i tipi di caratteri e non parole reali.
28
Iszi

L'unico modo realistico in cui il 100% delle password è stato violato è se stai memorizzando hash LM su Windows. Gli hash LM sono suddivisi in 2 blocchi di sette caratteri che rendono praticabili gli attacchi di forza bruta/arcobaleno (sono anche insensibili alle maiuscole per una maggiore facilità). Esistono tavoli arcobaleno per questo ed è facilmente fattibile.

Inoltre, chiunque abbia una password di oltre 10 caratteri che non si trova in un dizionario (o che si trova mutando le parole del dizionario) non verrà violato su alcun sistema ragionevole, anche con algoritmi deboli (ad esempio md5) e senza sale. Le tabelle AFAIK Rainbow non sono pratiche su password così lunghe (per riferimento tabelle Rainbow gratuite hanno un 2.8 TB pacchetto di hash MD5 che supera alcune password di nove caratteri ( set di caratteri non completo).

Un punto che vorrei sottolineare è che se fossi il vicepresidente dell'IT, mi concentrerei sull'eliminazione degli hash LM piuttosto che sul parlare semplicemente delle buone pratiche di password proprio perché è stato in grado di recuperare il 100% delle password :)

60
Rory McCune

"Decrittografato" non è il termine giusto. Cioè, le password potrebbero essere crittografate anziché essere sottoposte a hash, ma quindi la decrittografia sarebbe semplice da chiunque conosca la chiave di crittografia (che è anche la chiave di decrittazione ); non avrebbe senso applicare strumenti di cracking come John the Ripper .

Pertanto, il VP utilizza una terminologia approssimativa. È quindi plausibile che abbia usato anche sintassi e grammatica approssimative. Molto probabilmente, hanno inviato le password 10k + agli strumenti di cracking e hanno rotto alcune (una proporzione abbastanza sostanziale per imporre un intervento VP, ma non tutti). Il suo uso di "tutto" è solo, diciamo, entusiasmo eccessivamente enfatico.

Ora sono pronto a credere che potrebbe aver rotto la metà delle password. È stato documentato che Morris worm , nel 1988, poteva spezzare circa il 10% delle password esistenti con un dizionario di meno di mille parole ...

28
Thomas Pornin

Decifrato non è la parola giusta, ma probabilmente stava cercando leggibilità piuttosto che precisione tecnica. Concordo anche sul fatto che probabilmente non ha ricevuto tutti di essi, ma piuttosto una porzione elevata.

Ora, la tua password ha un problema: 8 caratteri non sono molto lunghi se la tua azienda utilizza un hash veloce come MD5 o LM. Un cracker decente basato su GPU può raggiungere circa 50M di hash MD5/sec. Se si assumono 100 caratteri stampabili su una tastiera QWERTY, questo è uno spazio chiave di 10.000.000.000.000.000 per una password di otto caratteri, che è un tempo di cracking previsto di ~ 3.15 anni. È improbabile che abbia catturato il tuo, ma non è particolarmente sicuro.

In alternativa, potrebbe avere un gigantesco tavolo Rainbow di 8 caratteri per un set completo di caratteri, che catturerebbe immediatamente la tua password.

8
Polynomial

C'è qualcosa a cui riesco a pensare su come li hanno risolti così in fretta:

  • Stanno usando LM Hash nella tua azienda per Windows (molto pericoloso e quindi hai un problema più grande di semplici password deboli)
  • Hanno usato un attacco da tavolo arcobaleno e hanno un tavolo arcobaleno molto grande (sono possibili 8 personaggi)
  • Hanno le tue password archiviate crittografate anziché con hash e le hanno decifrate con la loro chiave

Ad ogni modo 8 caratteri sono considerati abbastanza forti dagli standard attuali per la maggior parte degli utenti normali, ma consiglio sempre di usarne almeno 12. Se parliamo di amministratori di sistema o persone con accesso ad alcuni sistemi critici, consiglio sempre 16. Alcune persone lo considerano "eccessivo" ma piuttosto li rendo "troppo" forti piuttosto che troppo deboli. Se stai usando KeePass per proteggere le tue password, non devi preoccuparti di ciò che sono perché non è necessario ricordare comunque.

5
Lucas Kauffman

Ho fatto un esercizio simile presso un client (hash di Windows LM) e ho ottenuto oltre il 75% delle password degli utenti con strumenti simili menzionati nel poster originale. Questo tipo di attacco di solito ottiene oltre il 90% di password derivate da 8 caratteri umani (lingua occidentale e inglese). Più lunga è la password, più ampio è il set di caratteri, più diventa difficile e più bassa è la velocità di trasmissione. Al mio cliente, molte delle password erano 8 caratteri o meno che mi rendevano la vita abbastanza semplice. Il 25% era costituito da caratteri lunghi o contenuti non presenti nelle tabelle Rainbow.

Se il tuo vicepresidente dell'IT avesse speso soldi per questo, avrebbe potuto usare una delle liste passwd commerciali o una soluzione SaaS che ha repository davvero enormi di tutte le password disponibili per ampi set di caratteri (la maggior parte non includere £ per esempio) e se le password erano generalmente inferiori a 10 caratteri, allora ci sono buone probabilità che abbia un tasso di successo vicino al 100%.

4
Callum Wilson

Molte persone lo hanno menzionato in modo molto più elaborato mentre sto per farlo, e molti di loro sono tecnicamente corretti con le opzioni fornite (prestano particolare attenzione alla risposta di Iszi in quanto tecnologicamente solida e completa). Tuttavia, volevo solo dare i miei due centesimi e dire che probabilmente sta accadendo una delle due cose.

  1. Stanno memorizzando le password usando la crittografia reversibile (un'opzione di Criteri di gruppo di AD), quindi utilizza solo la crittografia e le ha davvero "decifrate". Questa è un'idea orribile, ma le persone lo fanno per il controllo delle password o per la compatibilità con applicazioni legacy.

  2. Sta mentendo e hanno violato la maggior parte delle password, ma non tutte.

C'è anche la possibilità che stiano memorizzando gli hash LM; il motivo per cui non penso che sia quello che stanno facendo è perché in quel caso avrebbero una grave mancanza di adeguata sicurezza.

Creo password continuamente nel mio lavoro e devo dire che non le ho mai crackate. Lavoro per un'azienda con circa 50.000 dipendenti e in genere creeremo circa 8.000 password con 1 ora di sforzo, ovvero il frutto basso.

Una volta superata la fase di sforzo di 1 ora, diventa esponenzialmente più difficile decifrare le password (dal momento che in genere sono parole non-dizionario complesse di lunghezza sufficiente a quel punto), quindi in genere ci fermiamo a meno che non stiamo provando a dimostrare un indicare o decifrare una password specifica. La maggior parte dei team di sicurezza non è in grado di monitorare e controllare le password di ogni singolo dipendente in ogni momento in una grande azienda, quindi scegliamo il modo più semplice per decifrare e ri-decifrare le password su base trimestrale.

3
JZeolla

Permettetemi di dire che se il vostro vicepresidente IT ha effettivamente violato il 100% delle password, avete alcuni evidenti buchi di sicurezza MODO sopra e oltre la relativa debolezza o forza della password in chiaro scelta dagli utenti.

Alcune possibilità:

  • In realtà non stai usando un hash. Molte librerie di sicurezza "integrate", come per Criteri di gruppo o ASP.NET, rendono le password crittografate anziché con hash un'opzione. Lo scopo è consentire a un amministratore di recuperare un account la cui password è stata persa senza eliminare completamente l'account. Ma, se è progettato per essere reversibile in modo efficiente, allora, beh, può essere invertito in modo efficiente. Se qualcuno avesse quel tipo di accesso per decifrare le password legittimamente, è il CIO, ma potrebbe aver usato gli strumenti di cracking solo per illustrare che non ha necessità accesso amministratore.
  • Stai usando un hash compromesso. MD5, LMHash, ecc. Sono danneggiati e dovrebbero mai essere utilizzati per la memorizzazione della password.
  • Stai usando un hash tecnicamente cripto-forte, ma non adatto a password, come SHA1/2. Questo di solito è per uno dei due motivi:
    • L'hash è troppo veloce per essere calcolato, rendendo possibile un attacco parallelo come una GPU o un cracker basato su botnet.
    • Le password, anche buone, hanno un'entropia relativamente bassa rispetto ad altre cose per cui viene utilizzato un hash sicuro, come digest dei messaggi/checksum. A meno che l'entropia non sia aumentata artificialmente usando un sale casuale, in genere un cracker a forza bruta impiega meno tempo a trovare una password di collisione che a trovare un messaggio di collisione di dimensioni di input maggiori.

Chiedi al VP di mostrarti cosa ha fatto per ottenere le password in chiaro e le stesse password. NON avrebbe dovuto essere così facile. Se hai qualche controllo sulla funzione di hashing utilizzata (nel senso che non è integrata, come per i Criteri di gruppo), vorrei passare a un hash progettato appositamente per l'hash delle password, come bcrypt o scrypt. Questi due funzionano bene perché sono molto lenti e non solo sono lenti ora, ma possono essere configurati per essere sempre lenti, usando le funzioni di derivazione chiave che prendono il sale ed eseguono un'operazione variabile di complessità esponenziale su "caldo" up "l'hash basato sulla crittografia. BCrypt è un hash completo, con KDF e cifratura integrati; scrypt è solo il KDF, che può essere associato a qualsiasi crittografia sicura, come AES.

3
KeithS

Indubbiamente lo hanno fatto senza un'enorme (irrealizzabile) potenza di elaborazione (per la parte della forza bruta, a meno che non costituisse solo una piccola parte dell'intero processo. Un algoritmo di hashing di qualità è quasi impossibile da decifrare, quindi se lo ha fatto "decifrare" le password, probabilmente DID deve usare principalmente la forza bruta.

Inoltre, "decifrare" non è il termine corretto, decifrare ovviamente implica che le password erano una volta crittografate e la crittografia implica una funzione a due vie. L'hash è solo una funzione a senso unico, ovvero non può essere retroingegnerizzata (beh, in un certo senso, ma questo va oltre lo scopo di questa risposta).

1
Phillip Schmidt

8 caratteri non sono sufficienti! (permettimi di spiegare di seguito)

Innanzitutto, però, vorrei aggiungere, per tutta la correttezza che le password 16k possono essere tutte violate se sono state tratteggiate con un algoritmo debole. In primo luogo, si romperà ciò che a volte può persino essere più della metà di essi (a seconda del QI medio e della disattenzione dei colleghi) con un attacco del dizionario, quindi si bruta il resto usando le tabelle Rainbow (diciamo che è MD5 non salato). Ci vorrà del tempo, ma non anni, a meno che ovviamente molte persone non abbiano una password molto lunga. Ci vorrà molto tempo per potenziare la forza, forse troppo a lungo, ma quali sono le probabilità, "la maggioranza intellettuale" non si preoccupa delle buone password, e anche quando ad esempio piaci a te, usano 8 caratteri. ;)

-E tornare alla lunghezza della password-

Anche se dipenderà molto da ciò che l'amministratore usa per eseguire l'hash della tua password

Come ad esempio bcrypt, o forse anche meglio scrypt, con un elevato numero di iterazioni migliorerà drasticamente la sicurezza di qualsiasi password (accettabile).

Ma quando parli di un'azienda con 16.000 dipendenti, c'è la possibilità di cose come lo spionaggio aziendale. Le persone che fanno queste cose sono per lo più molto esperte di tecnologia e molto probabilmente avranno una botnet non molto grande ma comunque decente che hanno acquisito con un piccolo trogolo di virus scritto personalmente e distribuito, ad esempio un videogioco che hanno messo su pirate bay.

Ho usato questo esempio per illustrare come prendono di mira i giocatori con questo, , il che significa che avranno un sacco di gpu che possono fare sanguisuga quando necessario .

In questo modo il "tempo di cracking previsto di ~ 3,15 anni", come suggerito rapidamente da Polynomial, è diviso per dire un migliaio di computer con schede gpu molto decenti che possono essere lasciate inattive quando sono inattive.

Ora la tua password con hash MD5 è craccata solo in ~ 1.149 giorni

(quindi supponiamo che l'1% abbia una password generata casualmente di 8 caratteri come te, ovvero 160 x 1.149 = 221.37 giorni, quindi ci vorrà poco più di sei mesi per testare tutte le password.)

Sebbene Lucas Kauffman sopra abbia affermato correttamente che una password di 12 o addirittura 16 caratteri è tecnicamente più appropriata, io stesso preferisco comunque una passphrase .

Jeff Atwood il creatore di questo stesso sito li ha da tempo sostenuti!

Quindi inizia a usarne uno! Facile da ricordare, improbabile da decifrare.

1
Happy

Poche cose che mi infastidiscono in questa storia che mi fanno credere che stia bluffando (o almeno così voglio crederci)

  • Esistono strumenti per applicare la politica delle password a livello aziendale, è più veloce ed economico usarli che decifrare tutte le password degli utenti solo per educarli a utilizzare password migliori/più sicure

  • Ha detto di aver decifrato le password, il che è un brutto segno, allude al fatto che stanno usando una crittografia bidirezionale e non un hash unidirezionale + casuale, per utente salt (e una funzione di hashing lenta come bcrypt, scrypt o PBKDF2) , probabilmente è più facile ripararlo che andare a craccare tutte le 16.000 password. Mostrando che la mancanza di attenzione alla terminologia della sicurezza, non va di pari passo con le abilità degli hacker rockstar necessarie per decifrare 16.000 password.

  • Qualunque sia il sistema che queste password proteggono non sembrano avere alcun meccanismo di ritardo per tentativi falliti (che consente attacchi di forza bruta) in modo da avere accesso a un database interno e bypassare qualsiasi meccanismo di blocco/ritardo o non avere tali protezioni sul loro sistema.

Spero davvero che la tua azienda non gestisca i soldi delle persone, gestisca processi medici sensibili o qualsiasi cosa abbia a che fare con la vita delle persone, poiché è un paradiso per gli hacker. Assicurati che il nome della tua azienda rimanga anonimo in quanto non suona bene da qui.

Per quanto riguarda il vicepresidente dell'IT, spero davvero che stesse scherzando, ma è un problema 22, se è riuscito a fare quello che ha fatto, significa solo che non sta facendo bene il suo lavoro, e se non l'ha fatto, allora lo è solo disonesto ed è altrettanto male.

1
Eran Medan

Con un set di Rainbow tables è del tutto possibile che abbiano violato tutte le password dell'azienda. Le tabelle arcobaleno sono insiemi di hash precompilati creati prima dei tentativi di cracking della password che vengono utilizzati per decifrare la password molto più velocemente dei metodi di forza bruta. rcracki è uno degli strumenti elencati nella tua domanda che fa proprio questo. hashcat e JtR sono strumenti a forza bruta sebbene possano essere utilizzati anche per creare tabelle Rainbow.

Quindi non c'è dubbio che ciò che dice sia del tutto possibile.

A proposito, una password di 8 caratteri non è sufficiente in questi giorni, utilizzare almeno 9.

0
GdD