Frage Gewöhnliche Benutzer können / etc / passwd lesen, ist das ein Sicherheitsloch?


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 ein Sicherheitsloch?


19
2017-07-04 00:06


Ursprung




Antworten:


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


49
2017-07-04 00:09



Nicht wirklich - historische Passwörter wurden in / etc / passwd aufbewahrt - aber dies machte Brute-Force-Übereinstimmungen einfach - daher moderne Systeme, die / etc / shadon mit pam_unix und ähnlichem verwenden. - symcbean
Modern Linux Verwendet /etc/shadow. Die BSDs verwenden /etc/master.passwd. Solaris verwendet /etc/security/passwd. HP-UX verwendet /.secure/etc/passwd und die Liste geht weiter... - Chris S


Normalerweise Hashed Passwörter werden in gespeichert /etc/shadow auf den meisten Linux-Systemen:

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

(Sie sind in gespeichert /etc/master.passwd auf BSD-Systeme.)

Programme, die eine Authentifizierung durchführen müssen, müssen noch mit ausgeführt werden root Privilegien:

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

Wenn du das nicht magst setuid root Programme und eine einzige Datei, die alle gehashten Passwörter auf Ihrem System enthält, können Sie durch die ersetzen Openwall TCB PAM Modul. Dies bietet Jeder einzelne Benutzer hat seine eigene Datei zum Speichern seines Hash-Passworts - als Folge die Anzahl von setuid root Programme auf dem System können drastisch reduziert werden.


16
2017-07-04 00:13





Passwörter wurden nicht gespeichert /etc/passwd seit Jahren; Der Name ist alt, die Funktion, die lokale Benutzerdatenbank zu bleiben, bleibt bestehen Muss zu diesem Zweck für alle lesbar sein.


13
2017-07-04 00:07



Weltlesbarkeit ist eine Designentscheidung, keine Notwendigkeit - Ben Voigt
@Ben: Es ist also vernünftig, dass niemand Dateien identifizieren kann, die jemand anderem gehören? Es ist der lokale Laden für NSS in diesen Tagen, nicht für PAM trotz seines Namens. - geekosaur
Es ist durchaus möglich, dass ein privilegierter Dienst uid -> name translation ausführt, ohne dass unprivilegierte Benutzer die gesamte Benutzerliste aufzählen können. Einige Betriebssysteme wählen diese Option. - Ben Voigt
@joechip Aktuelle Betriebssysteme sind nicht dazu gedacht, Benutzer gegenseitig zu verbergen. Alle Benutzer können auf vielerlei Weise als / etc / passwd aufgelistet werden. ls -la / home unter Linux, ls -la / Benutzer unter MacOS X, Verzeichnis C: \ Benutzer in Windows 7, ps -afux in Unix-Systemen. Die von Ben Voigt vorgeschlagene Designwahl macht das Leben schwierig, ohne die Sicherheit zu ändern. - Magicianeer
@Magicianeer - Nur zu sagen, das Windows-Beispiel ist nicht ganz richtig. Sie können die Benutzer über andere Methoden abrufen, aber wenn Sie sich den Ordner C: \ Benutzer ansehen, werden nur Benutzer aufgelistet, die sich angemeldet haben. keine Systembenutzer. - burnt_hand


In gewissem Maße ist es, wie Sie Benutzer identifizieren können. In der Vergangenheit konnten Sie auch ihre Passwörter abholen. Allerdings lohnt es sich die eine userid wirklich zu knacken root das ist ohne die Passwortdatei bekannt.

Die Verwendbarkeit der allgemein lesbaren Passwortdatei überwiegt das Risiko weit. Selbst wenn es nicht weltlesbar wäre, funktionierte es getent passwd Befehl würde den Sicherheitsgewinn ungültig machen.

Die Fähigkeit für Nicht-Root-Benutzer, Dateien zu identifizieren, die anderen gehören, würde verschwinden. In der Lage zu sein, eigene (Benutzer in passwd-Datei) und nicht-gespeicherte Dateien (Benutzer nicht in passwd-Datei) zu identifizieren, kann beim Überprüfen des Inhalts eines Dateisystems nützlich sein. Es wäre zwar möglich, dies mit entsprechenden zu lösen setuid Programme, die über diese Programme einen riesigen Angriffsvektor hinzufügen würden.

Am Ende ist es eine Frage des Gleichgewichts, und in diesem Fall würde ich sagen, dass das Gleichgewicht fest darauf steht, dass das Passwort weltweit lesbar ist.


6
2017-07-04 04:19