ls -l /etc/passwd
daje
$ ls -l /etc/passwd
-rw-r--r-- 1 root root 1862 2011-06-15 21:59 /etc/passwd
Tak więc zwykły użytkownik może odczytać plik. Czy to dziura w zabezpieczeniach?
ls -l /etc/passwd
daje
$ ls -l /etc/passwd
-rw-r--r-- 1 root root 1862 2011-06-15 21:59 /etc/passwd
Tak więc zwykły użytkownik może odczytać plik. Czy to dziura w zabezpieczeniach?
Odpowiedzi:
Rzeczywiste skróty haseł są przechowywane /etc/shadow
, co nie jest czytelne dla zwykłych użytkowników. /etc/passwd
przechowuje inne informacje o identyfikatorach użytkowników i powłokach, które muszą być czytelne dla wszystkich użytkowników, aby system mógł działać.
/etc/shadow
. Używają BSD /etc/master.passwd
. Używa Solaris /etc/security/passwd
. HP-UX używa, /.secure/etc/passwd
a lista jest długa ...
Zazwyczaj hashowane hasła są przechowywane w /etc/shadow
większości systemów Linux:
-rw-r----- 1 root shadow 1349 2011-07-03 03:54 /etc/shadow
(Są one przechowywane w /etc/master.passwd
sprawie systemów BSD ).
Programy, które muszą przeprowadzić uwierzytelnianie, nadal muszą działać z root
uprawnieniami:
-rwsr-xr-x 1 root root 42792 2011-02-14 14:13 /usr/bin/passwd
Jeśli nie podoba ci się setuid root
program i jeden plik zawierający wszystkie zaszyfrowane hasła w twoim systemie, możesz go zastąpić modułem Openwall TCB PAM . Zapewnia to każdemu użytkownikowi swój własny plik do przechowywania zaszyfrowanego hasła - w rezultacie liczba setuid root
programów w systemie może zostać drastycznie zmniejszona.
Hasła nie były przechowywane /etc/passwd
od lat; nazwa jest starsza, funkcja bycia lokalną bazą danych użytkowników pozostaje i w tym celu musi być czytelna dla wszystkich.
W pewnym stopniu jest tak, ponieważ można zidentyfikować użytkowników. W przeszłości można było również odebrać ich hasła. Jednak jedynym identyfikatorem użytkownika, który naprawdę warto złamać, root
jest dobrze znany bez pliku hasła.
Na ogół użyteczność odczytu pliku haseł na świecie znacznie przewyższa ryzyko. Nawet jeśli nie byłoby to czytelne dla świata, działające getent passwd
polecenie unieważniłoby zysk bezpieczeństwa.
Zniknie zdolność użytkowników innych niż root do identyfikowania plików należących do innych osób. Możliwość identyfikacji posiadanych (użytkownika w pliku passwd) i nie posiadanych plików (użytkownika nie ma w pliku passwd) może być przydatna podczas przeglądania zawartości systemu plików. Chociaż byłoby to możliwe do rozwiązania za pomocą odpowiednich setuid
programów, dodałoby to ogromny wektor ataku za pośrednictwem tych programów.
Ostatecznie jest to kwestia równowagi, a w tym przypadku powiedziałbym, że równowaga opiera się na czytelnym świecie haseł.