Na Redhat co oznacza „kernel.suid_dumpable = 1”?

9

Uruchamiam skrypt bash, aby skopiować niektóre pliki dziennika, a następnie ponownie uruchomić usługę w polu Red Hat. Za każdym razem, gdy wykonuję skrypt, na konsoli pojawiają się następujące informacje:

[root@servername ~]# sh /bin/restart_nss.sh
kernel.suid
_dumpable = 1
Stopping Service: [ OK ]
Starting Service: [ OK ]
[root@servername ~]#

Co w tym przypadku oznacza „kernel.suid_dumpable = 1”?

Dzięki, IVR Avenger

IVR Avenger
źródło

Odpowiedzi:

13

Niektóre tło:

Bit setuid: bit
setuid w pliku wykonywalnym powoduje, że pliki wykonywalne uruchamiane przez dowolnego użytkownika są uruchamiane tak, jakby były uruchamiane przez właściciela pliku wykonywalnego. Więc jeśli setuid jest ustawiony w programie, który jest własnością root, bez względu na to, kto go uruchomi, zostanie uruchomiony z uprawnieniami roota. Oczywiście nie jest to takie proste, zobacz ten artykuł na Wikipedii lub uzyskaj kopię Programowania Stevena w środowisku Unix.

Zrzut rdzenia: Zrzut
rdzenia to zrzut pamięci roboczej programu do pliku. Zobacz ten artykuł w Wikipedii .

suid_dumpable :
Kontroluje, czy rdzeń może być zrzucony z programu setuid, jak opisano powyżej. Patrz poniżej. To jest dostrajalne jądro, możesz je zmienić za pomocą:

sudo sysctl -w kernel.suid_dumpable=2

Dowiesz się o tym dostrajaniu w dokumentacji swojego kodu źródłowego, który, jeśli jest zainstalowany, możesz znaleźć w katalogu takim jak: /usr/src/linux-source-2.6.27/Documentation/sysctl/. W takim przypadku poniższe odniesienie znajduje się w fs.txt w tym katalogu. Użyj uname -apolecenia, aby sprawdzić wersję jądra.

Dlaczego jest to ważne:

Może to stanowić zagrożenie dla bezpieczeństwa:
pomysł polega na tym, że jeśli istnieją zrzuty pamięci, a zwykły użytkownik może je odczytać, może znaleźć uprzywilejowane informacje. Jeśli program jest dobrze zrzucony, ma uprzywilejowane informacje w pamięci, a użytkownik może odczytać zrzut, może znaleźć te uprzywilejowane informacje.

Odniesienie:

This value can be used to query and set the core dump mode for setuid
or otherwise protected/tainted binaries. The modes are

0 - (default) - traditional behaviour. Any process which has changed
   privilege levels or is execute only will not be dumped
1 - (debug) - all processes dump core when possible. The core dump is
   owned by the current user and no security is applied. This is
   intended for system debugging situations only.
2 - (suidsafe) - any binary which normally not be dumped is dumped
   readable by root only. This allows the end user to remove
   such a dump but not access it directly. For security reasons
   core dumps in this mode will not overwrite one another or 
   other files. This mode is appropriate when adminstrators are
   attempting to debug problems in a normal environment.
Kyle Brandt
źródło
fs.txt jest również dostępny tutaj: kernel.org/doc/Documentation/sysctl/fs.txt
Sundae
1

Określa, czy można uzyskać zrzuty rdzeniowe z procesów setuid.

Niektóre informacje z oryginalnej łatki

+suid_dumpable:
+
+This value can be used to query and set the core dump mode for setuid
+or otherwise protected/tainted binaries. The modes are
+
+0 - (default) - traditional behaviour. Any process which has changed
+   privilege levels or is execute only will not be dumped
+1 - (debug) - all processes dump core when possible. The core dump is
+   owned by the current user and no security is applied. This is
+   intended for system debugging situations only.
+2 - (suidsafe) - any binary which normally not be dumped is dumped
+   readable by root only. This allows the end user to remove
+   such a dump but not access it directly. For security reasons
+   core dumps in this mode will not overwrite one another or 
+   other files. This mode is appropriate when adminstrators are
+   attempting to debug problems in a normal environment.
Travis Campbell
źródło
Czy to jest ściśle pouczające? Mówi mi, jaki zrzut mogę uzyskać z procesu, który zaczynam?
IVR Avenger,