Kiedy sprawdzam /var/log
, znajduję coś bardzo dziwnego
me@me:~$ ls -lt /var/log |head -6 '
total 160368
-rw-r----- 1 syslog adm 19919118 Jan 15 16:55 auth.log
-rw-r----- 1 syslog adm 139702302 Jan 15 16:55 syslog
-rw-r----- 1 syslog adm 191122 Jan 15 16:55 mail.log
-rw-r----- 1 syslog adm 2210432 Jan 15 16:32 kern.log
-rw-r--r-- 1 root root 1741863 Jan 15 14:22 dpkg.log
Zauważ, że właścicielem pierwszych czterech plików dziennika jest syslog
. To dziwne, ponieważ w moim systemie jest tylko jeden użytkownik:
me@me~$ users
me
Dlaczego nazwa pliku może syslog
być użytkownikiem?
/etc/passwd
kiedyś. Liczę 36 użytkowników roli, z wyłączeniem root. Spróbujman users
także - przyjmujesz (niepoprawnie), co robi polecenie.Odpowiedzi:
Ma to związek z bezpieczeństwem i uprawnieniami dostępu do systemu.
I nie, masz znacznie więcej użytkowników niż tylko własnego użytkownika. Istnieją „root”, „demon”, „bin”, „gry”, „nikt” i „lista”.
Zrób
more /etc/passwd
dla listy użytkowników w twoim systemie. Zobaczysz wiele wierszy z „/ usr / sbin / nologin”. Oznacza to, że nie można ich używać jako zwykłego użytkownika z loginem, jak Twój własny użytkownik. Trzecia kolumna to identyfikator użytkownika. Wszystkie identyfikatory użytkowników poniżej 1000 są pseudo użytkownikami. Twój pierwszy użytkownik sudo (ten, który zainstalował system) ma domyślnie 1000.Zasadniczo syslog użytkownika może korzystać z
/var/log/
katalogu ustawionego jako katalog należący do roota . Aby nie musieć narażać uprawnień na katalog (tj. Obniżać uprawnień, aby inni użytkownicy mogli z niego korzystać), ten użytkownik został utworzony.To samo dzieje się z użytkownikiem Apache i MySQL (zobaczysz użytkownika i grupę danych www oraz użytkownika i grupę MySQL podczas instalacji), ale jest on używany do wielu rzeczy. Istnieje „dialout” grupy, który służy do uzyskiwania dostępu do urządzeń zewnętrznych. Użytkownicy zostają dodani do tej grupy, aby umożliwić użytkownikowi korzystanie z tych urządzeń. W przeciwnym razie otrzymasz błąd odmowy uprawnień. Działa na dwa sposoby: odmowa dostępu użytkownika oznacza usunięcie grupy.
źródło
Usługa syslog, która zapisuje komunikaty dziennika tworzone przez jądro i inne usługi w różnych plikach dziennika, konsoli i / lub innych miejscach docelowych, działa pod własnym, specjalnym kontem użytkownika. Podobnie jak wiele innych usług. Ma to na celu wdrożenie zasady najmniejszych uprawnień :
W celu zminimalizowania możliwego wpływu zepsutej lub wadliwej usługi (np. Usługa z błędem, która z kolei zostaje wykorzystana przez atakującego, lub usługa z błędem, który powoduje błąd, to wykonywanie losowych niepożądanych działań lub usługa, która został specjalnie zaprojektowany przez złośliwego programistę do robienia złych rzeczy), chcesz, aby każda usługa miała dostęp tylko do tego, czego potrzebuje do działania i nic więcej.
W dowolnym systemie operacyjnym uniksopodobnym (obejmującym wszystkie dystrybucje GNU / Linux, takim jak Ubuntu), możesz najłatwiej przypisać uprawnienia (to w większości prawo do odczytu i / lub zapisu z / do niektórych plików lub rzeczy podobnych do plików, takich jak węzły urządzeń) na podstawie użytkowników i grup. Istnieją inne możliwości, ale często są bardziej nużące i podatne na błędy w konfiguracji lub działają tylko w określonych kontekstach.
Tak więc usługa syslog działa na koncie użytkownika syslog. Jeśli teraz, na przykład, osoba atakująca może zmusić usługę syslog do wykonania tego, co im powie, zamiast tego, co powinna, usługa syslog jest nadal ograniczona (wymuszona przez jądro na podstawie konta użytkownika, niewymagana przez syslog samo oprogramowanie, które byłoby bezużyteczne, ponieważ jest zagrożone), aby zapisywać tylko do plików dziennika (jedyne pliki, do których użytkownik syslog ma prawo zapisu). Dlatego osoba atakująca nie może użyć zaatakowanej usługi syslog do np. Zmiany zawartości strony internetowej lub bazy danych hostowanej na tym samym komputerze, ponieważ odpowiednie pliki są skonfigurowane do zapisu tylko przez określony zestaw innego użytkownika (ludzkiego lub systemowego ) kont, nie przez konto użytkownika syslog.
Aby wyrządzić więcej szkody niż tylko usunięcie / modyfikacja plików dziennika i odczytanie plików „publicznych” (z uprawnieniem „odczytu” dla wszystkich), atakujący musiałby najpierw wykorzystać drugi błąd, albo w jądrze, albo w jakimś oprogramowaniu który jest zainstalowany, aby działał z innymi uprawnieniami niż użytkownik, który go wywołał ( setuid ), a tym samym zyskał dodatkowe uprawnienia ( eskalacja uprawnień ).
users
Polecenie użyte, zgodnie z jego strony człowieka , pokazuje tylko użytkownicy, którzy są obecnie zalogowany . Ponieważ użytkownik syslog jest użytkownikiem systemu , nigdy się nie zaloguje, więc nigdy nie pojawi się na tej liście. Możesz zajrzeć do pliku/etc/passwd
lub użyć dowolnej z innych opisanych tutaj metod , aby uzyskać listę wszystkich (ludzkich i systemowych) użytkowników w systemie.źródło
Ponieważ syslog nie jest plikiem; jest to demon używany przez system do przechowywania demonów systemowych i komunikatów aplikacji (debugowanie, błąd, ostrzeganie i informacje) w plikach.
Przeczytaj tutaj, aby uzyskać krótką historię syslog.
W innych dystrybucjach, na przykład opartych na systemie Red Hat Linux, dane wyjściowe syslog dla systemu są przechowywane w pliku o nazwie
/var/log/messages
. To zależy od konfiguracji.Jak mówi Rinzwind, ze względów bezpieczeństwa różne składniki systemu operacyjnego działają z określonym użytkownikiem, a każdy użytkownik ma swoje własne prawa. Na przykład syslog ma przynajmniej uprawnienia do zapisu w
/var/log
folderze.System ma wiele usług i zwykle są użytkownicy dla każdej usługi lub dla małej grupy usług. Na przykład
apache get www-data|httpd|apache
. Zwykle ci użytkownicy demonów nie uzyskują dostępu Bash, aby uniknąć wycieków zabezpieczeń.źródło