Pojawiło się to w komentarzu do innego pytania i bardzo bym chciał, gdyby ktoś mógł mi wyjaśnić przyczyny tego.
Zasugerowałem, aby Apache zarejestrował błędy dla danego VHost w katalogu osobistym użytkownika. Zostało to zestrzelone, ponieważ było niepewne. Czemu?
Poprosiłem o wyjaśnienie w komentarzu do odpowiedzi, ale jedyne, co otrzymałem, to to, że pisanie roota w folderze nie będącym własnością roota jest niepewne. Czy ktoś mógłby to wyjaśnić?
Dzięki,
Bart.
linux
security
permissions
Bart B.
źródło
źródło
Odpowiedzi:
Ponieważ użytkownik zło może złośliwie próbują wskazać plik pisze w innym miejscu . To nie jest takie proste, ale naprawdę możliwe.
root
Na przykład, jeśli użytkownik znajdzie sposób na utworzenie dowiązania symbolicznego z domniemanego dziennika Apache do, powiedzmy, / etc / shadow , nagle będziesz mieć bezużyteczny system. Apache (
root
) nadpisze dane uwierzytelniające użytkowników, powodując awarię systemu.Jeśli plik access.log nie jest zapisywalny przez użytkownika, przejęcie go może być trudne, ale lepiej jest unikać tej możliwości!
Opcją może być użycie programu logrotate do wykonania zadania , tworząc łącze do pliku, który już nie istnieje, ale ten program logrotate zostanie nadpisany, gdy tylko dzienniki wzrosną:
Uwaga :
Symlink metoda jest tylko jednym z możliwych ataków, biorąc pod uwagę jako dowód koncepcji.
Bezpieczeństwo musi być zapewnione przez umysł Białej Listy , a nie umieszczanie na czarnej liście tego, o czym wiemy, że jest problemem.
źródło
+t
ustawiony jest bit lepki ), nawet jeśli nie mają one uprawnień do zapisu do samych plików (ponieważ unlink () to zapis do katalogu, a nie plik). Nawet jeśli root utworzy plik wcześniej, właściciel katalogu nadal może go usunąć i zastąpić dowiązaniem symbolicznym do czegoś innego.Ogólna zasada, zgodnie z którą procesy nie zapisują się do katalogu, którego nie są właścicielami lub którym nie ufają, jest dobra. Ale w tym konkretnym przypadku uzasadnione jest zaufanie, że kod Apache otwiera dziennik za pomocą
O_NOFOLLOW
etc: logowanie do katalogu domowego użytkownika to powszechna konfiguracja.źródło