Mentre @gowenfawr raggiunge i punti principali, ne ho aggiunti alcuni:
La maggior parte dei sistemi, ma non tutti , nasconde le password effettive in /etc/shadow
. Per vedere se il tuo sistema è vulnerabile, controlla un account utente reale. Se sembra
stighemmer:x:...
Quindi le tue password sono al sicuro.
Se sembra
stighemmer:kjsaashgdkwqvbm:...
Quindi le tue password sono NOT safe.
Sì, la password è offuscata utilizzando una funzione hash unidirezionale, ma ciò non è sufficiente. Avere questo file consente all'hacker di verificare se un determinato utente ha una certa password senza effettivamente tentare di accedere.
Nel 1970, questo controllo era lento e le cose erano ragionevolmente sicure. Oggi un hacker può controllare milioni di password al secondo. Se one dei tuoi utenti ha una password indovinabile, l'account dell'utente verrà violato. E il limite per ciò che è "ipotizzabile" viene spinto con ogni generazione di processore.
Ora hai controllato e hai trovato che le tue password sono archiviate in modo sicuro in /etc/shadow
. Bene, problema risolto.
Non proprio. /etc/passwd
contiene ulteriori informazioni.
Contiene il nome completo di ogni utente. Questo è molto utile per gli attacchi di social engineering.
Contiene un elenco di utenti del sistema, che indica quale software è installato.
Quindi, ricevo una email "Hey Stig, ho dimenticato la password di Postgres. Potresti ricordarmi di aver firmato Signed, Other Real User". Dal momento che il mio utile client di posta elettronica non mostra l'indirizzo email completo, non noterò che questa email proviene da un paese remoto. Rispondo, "È 'S3CR37'". Oops, il database aziendale è stato appena violato.
Ovviamente, questo non è l'unico modo in cui i nomi completi vengono esposti, devi comunque insegnare agli utenti gli attacchi di social engineering.