ls -l /etc/passwd
dà
$ ls -l /etc/passwd
-rw-r--r-- 1 root root 1862 2011-06-15 21:59 /etc/passwd
Quindi un normale utente può leggere il file. È una falla di sicurezza?
ls -l /etc/passwd
dà
$ ls -l /etc/passwd
-rw-r--r-- 1 root root 1862 2011-06-15 21:59 /etc/passwd
Quindi un normale utente può leggere il file. È una falla di sicurezza?
Risposte:
Gli hash delle password effettive sono memorizzati in /etc/shadow
, che non è leggibile dagli utenti normali. /etc/passwd
contiene altre informazioni su ID utente e shell che devono essere leggibili da tutti gli utenti affinché il sistema funzioni.
/etc/shadow
. Gli BSD usano /etc/master.passwd
. Utilizza Solaris /etc/security/passwd
. HP-UX utilizza /.secure/etc/passwd
e l'elenco continua ...
In genere, le password con hash sono archiviate /etc/shadow
sulla maggior parte dei sistemi Linux:
-rw-r----- 1 root shadow 1349 2011-07-03 03:54 /etc/shadow
(Sono memorizzati /etc/master.passwd
su sistemi BSD .)
I programmi che devono eseguire l'autenticazione devono ancora essere eseguiti con root
privilegi:
-rwsr-xr-x 1 root root 42792 2011-02-14 14:13 /usr/bin/passwd
Se non ti piacciono i setuid root
programmi e un singolo file contenente tutte le password con hash sul tuo sistema, puoi sostituirlo con il modulo Openwall TCB PAM . Ciò fornisce a ogni singolo utente il proprio file per l'archiviazione della password con hash - di conseguenza, il numero di setuid root
programmi sul sistema può essere drasticamente ridotto.
Le password non vengono memorizzate /etc/passwd
da anni ormai; il nome è legacy, la funzione di essere il database utenti locale rimane e deve essere leggibile da tutti a tale scopo.
In una certa misura, come è possibile identificare gli utenti. In passato potresti anche raccogliere le loro password. Tuttavia, l'unico userid che vale davvero la pena craccare è root
che è ben noto senza il file delle password.
L'utilità di avere un mondo di file password leggibile generalmente supera di gran lunga il rischio. Anche se non fosse leggibile dal mondo, un getent passwd
comando funzionante renderebbe nulla il guadagno di sicurezza.
La possibilità per gli utenti non root di identificare i file di proprietà di altri scomparirebbe. Essere in grado di identificare i file posseduti (utente nel file passwd) e non posseduti (utente non nel file passwd) può essere utile per rivedere il contenuto di un file system. Mentre sarebbe possibile risolverlo con setuid
programmi adeguati , ciò aggiungerebbe un enorme vettore di attacco tramite quei programmi.
Alla fine si tratta di una questione di equilibrio, e in questo caso direi che il saldo è saldamente dovuto alla leggibilità del mondo delle password.