ls -l /etc/passwd
gibt
$ ls -l /etc/passwd
-rw-r--r-- 1 root root 1862 2011-06-15 21:59 /etc/passwd
So kann ein gewöhnlicher Benutzer die Datei lesen. Ist das eine Sicherheitslücke?
ls -l /etc/passwd
gibt
$ ls -l /etc/passwd
-rw-r--r-- 1 root root 1862 2011-06-15 21:59 /etc/passwd
So kann ein gewöhnlicher Benutzer die Datei lesen. Ist das eine Sicherheitslücke?
Antworten:
Tatsächliche Passwort-Hashes werden in gespeichert /etc/shadow
, die von normalen Benutzern nicht gelesen werden können. /etc/passwd
Enthält weitere Informationen zu Benutzer-IDs und Shells, die von allen Benutzern gelesen werden können müssen, damit das System funktioniert.
/etc/shadow
. Die BSDs verwenden /etc/master.passwd
. Solaris verwendet /etc/security/passwd
. HP-UX verwendet /.secure/etc/passwd
und die Liste geht weiter ...
In der Regel werden die gehashten Kennwörter /etc/shadow
auf den meisten Linux-Systemen gespeichert :
-rw-r----- 1 root shadow 1349 2011-07-03 03:54 /etc/shadow
(Sie werden in gespeichert /etc/master.passwd
auf BSD - Systemen .)
Programme, die eine Authentifizierung durchführen müssen, müssen weiterhin mit root
Berechtigungen ausgeführt werden:
-rwsr-xr-x 1 root root 42792 2011-02-14 14:13 /usr/bin/passwd
Wenn Sie die setuid root
Programme und eine einzelne Datei mit allen Hash-Passwörtern auf Ihrem System nicht mögen , können Sie sie durch das Openwall TCB PAM-Modul ersetzen . Auf diese Weise erhält jeder einzelne Benutzer eine eigene Datei zum Speichern seines Hash-Passworts. Dadurch kann die Anzahl der setuid root
Programme auf dem System drastisch reduziert werden.
Passwörter werden seit /etc/passwd
Jahren nicht mehr gespeichert . Der Name ist Legacy, die Funktion der lokalen Benutzerdatenbank bleibt erhalten und es muss zu diesem Zweck für alle lesbar sein.
Zum Teil ist es so, wie Sie Benutzer identifizieren können. In der Vergangenheit konnten Sie auch ihre Passwörter abrufen. Die einzige User-ID, die es wirklich wert ist, geknackt zu werden, ist root
die, die ohne die Passwortdatei bekannt ist.
Der Nutzen der Lesbarkeit der Kennwortdatei-Welt überwiegt bei weitem das Risiko. Auch wenn es nicht weltlesbar wäre, ein funktionierendesgetent passwd
Befehl den Sicherheitsgewinn ungültig machen.
Die Möglichkeit für Nicht-Root-Benutzer, Dateien zu identifizieren, die anderen gehören, würde verschwinden. Das Identifizieren von besessenen (Benutzer in passwd-Datei) und nicht besessenen Dateien (Benutzer nicht in passwd-Datei) kann hilfreich sein, um den Inhalt eines Dateisystems zu überprüfen. Es wäre zwar möglich, dies mit entsprechenden zu lösensetuid
Programmen , würde dies über diese Programme einen riesigen Angriffsvektor hinzufügen.
Am Ende ist es eine Frage des Gleichgewichts, und in diesem Fall würde ich sagen, dass es darauf ankommt, dass die Passwortwelt lesbar ist.