Wyjaśnienie nodev i nosuid w fstab

44

Widzę te dwie opcje stale sugerowane w Internecie, gdy ktoś opisuje, jak zamontować tmpfs lub ramfs. Często także z noexec, ale szczególnie interesują mnie nodev i nosuid. Zasadniczo nienawidzę po prostu ślepo powtarzać, co ktoś zasugerował, bez prawdziwego zrozumienia. A ponieważ widzę tylko instrukcje dotyczące kopiowania / wklejania w sieci dotyczące tego, pytam tutaj.

To jest z dokumentacji:
nodev - Nie interpretuj bloków specjalnych urządzeń w systemie plików.
nosuid - Zablokuj działanie bitów suid i sgid.

Chciałbym jednak praktyczne wyjaśnienie, co może się stać, jeśli ich nie uwzględnię. Powiedzmy, że skonfigurowałem tmpfs lub ramfs (bez tych dwóch wymienionych opcji), które są dostępne (odczyt i zapis) dla określonego użytkownika (innego niż root) w systemie. Co ten użytkownik może zrobić, aby uszkodzić system? Z wyjątkiem przypadku zużywania całej dostępnej pamięci systemowej w przypadku ramfs

Ivan Kovacevic
źródło
1
To dobra odpowiedź na twoje pytanie: unix.stackexchange.com/questions/188601/...
Eliptyczny widok

Odpowiedzi:

36

Nie musisz przestrzegać tego na ślepo jako twardej zasady. Ale uzasadnienie sytuacji bardziej skoncentrowanych na bezpieczeństwie jest następujące.

  • Opcja montowania nodev określa, że ​​system plików nie może zawierać specjalnych urządzeń: Jest to środek bezpieczeństwa. Nie chcesz, aby światowy system plików użytkownika, taki jak ten, miał potencjał do tworzenia urządzeń postaci lub dostępu do losowego sprzętu.

  • Opcja montowania nosuid określa, że ​​system plików nie może zawierać ustawionych plików ID użytkownika. Zapobieganie plikom binarnym setuid w zapisywanym na świecie systemie plików ma sens, ponieważ istnieje ryzyko eskalacji katalogu głównego lub innej okropności.

Ze względu na swoją wartość często nie używam tych parametrów ... tylko w systemach publicznych, w których istnieją inne względy zgodności.

ewwhite
źródło
1
Mam system publiczny, ponieważ oprogramowanie działa na tym koncie, które jest narażone na działanie sieci. Zastanawiam się więc nad scenariuszami „co, jeśli”. Co się stanie, jeśli ktoś uzyska dostęp do powłoki przez jakąś lukę? Oczywiście są inne rzeczy, które mógłby zrobić, aby zwiększyć prawa, ale wolałbym je zminimalizować. Zastanawiam się na przykład, czy dla suid użytkownik nadal nie byłby w stanie zmienić tej flagi, niezależnie od tego, czy system plików na to pozwala, czy nie. Czy wtedy opcja nosuid zapobiega jedynie przypadkowemu źle skonfigurowanemu oprogramowaniu (przez root)? A może użytkownik może wykorzystać to sam?
Ivan Kovacevic
1
@IvanKovacevic Nie musisz używać zalecanych opcji montowania systemu plików. Są tam, aby zmniejszyć wektor ataku. Jednak badanie scenariuszy „co, jeśli” może wykraczać poza zakres tego pytania.
ewwhite
3
@ewwhite: niepokój nosuidnie jest ignorowany? (zamiast The nosuid mount option specifies that the filesystem cannot contain set userid files)
user2284570 11.04.16