Normale Benutzer können / etc / passwd lesen. Ist dies eine Sicherheitslücke?

19
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?

Ankur Agarwal
quelle

Antworten:

49

Tatsächliche Passwort-Hashes werden in gespeichert /etc/shadow, die von normalen Benutzern nicht gelesen werden können. /etc/passwdEnthält weitere Informationen zu Benutzer-IDs und Shells, die von allen Benutzern gelesen werden können müssen, damit das System funktioniert.

Michael
quelle
3
Nicht wirklich - historisch gesehen wurden Passwörter in / etc / passwd aufbewahrt - aber dies machte den Brute-Force-Abgleich unkompliziert - daher moderne Systeme, die / etc / shadon mit pam_unix und ähnlichem verwenden.
Symcbean
4
Modernes Linux verwendet /etc/shadow. Die BSDs verwenden /etc/master.passwd. Solaris verwendet /etc/security/passwd. HP-UX verwendet /.secure/etc/passwdund die Liste geht weiter ...
Chris S
16

In der Regel werden die gehashten Kennwörter /etc/shadowauf den meisten Linux-Systemen gespeichert :

-rw-r----- 1 root shadow 1349 2011-07-03 03:54 /etc/shadow

(Sie werden in gespeichert /etc/master.passwdauf BSD - Systemen .)

Programme, die eine Authentifizierung durchführen müssen, müssen weiterhin mit rootBerechtigungen ausgeführt werden:

-rwsr-xr-x 1 root root 42792 2011-02-14 14:13 /usr/bin/passwd

Wenn Sie die setuid rootProgramme 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 rootProgramme auf dem System drastisch reduziert werden.

Sarnold
quelle
13

Passwörter werden seit /etc/passwdJahren 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.

Geekosaurier
quelle
2
Die Lesbarkeit der Welt ist eine Designentscheidung, keine Notwendigkeit
Ben Voigt
@Ben: Ist es also vernünftig, dass niemand Dateien identifizieren kann, die jemand anderem gehören? Heutzutage ist es das lokale Geschäft für NSS, nicht für PAM, trotz seines Namens.
Geekosaurier
1
Es ist durchaus möglich, dass ein privilegierter Dienst uid -> Namensübersetzung ausführt, ohne dass nichtprivilegierte Benutzer die gesamte Benutzerliste auflisten können. Einige Betriebssysteme wählen diese Option.
Ben Voigt
1
@joechip Aktuelle Betriebssysteme dienen nicht dazu, Benutzer voneinander zu verbergen. Alle Benutzer können auf viel mehr Arten als / etc / passwd aufgelistet werden. ls -la / home unter Linux, ls -la / Users unter MacOS X, Verzeichnis C: \ Users unter Windows 7, ps -afux unter Unix. Das Ändern der Designauswahl, auf die Ben Voigt anspielt, macht das Leben schwierig, ohne die Sicherheit zu ändern.
Magicianeer
1
@Magicianeer - Nur zu sagen, dass das Windows-Beispiel nicht ganz richtig ist. Sie können die Benutzer auf andere Weise ermitteln. Wenn Sie sich jedoch den Ordner C: \ users ansehen, werden nur die angemeldeten Benutzer aufgelistet. keine Systembenutzer.
burnt_hand
6

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 rootdie, 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.

BillThor
quelle