Sur Redhat, que signifie «kernel.suid_dumpable = 1»?

9

J'exécute un script bash pour copier certains fichiers journaux, puis redémarrer un service sur une boîte Red Hat. Chaque fois que j'exécute le script, j'obtiens ce qui suit sur ma console:

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

Que signifie "kernel.suid_dumpable = 1" dans ce cas?

Merci, IVR Avenger

IVR Avenger
la source

Réponses:

13

Quelques antécédents:

Le bit setuid:
le bit setuid sur un fichier exécutable fait en sorte que les exécutables exécutés par n'importe quel utilisateur soient exécutés comme s'ils étaient exécutés par le propriétaire de l'exécutable. Donc, si setuid est défini sur un programme appartenant à root, peu importe qui l'exécute, il sera exécuté avec les privilèges root. Ce n'est bien sûr pas si simple, consultez cet article wikipedia ou obtenez une copie de la programmation de Steven dans l'environnement Unix.

Un core dump:
un core dump est un vidage de la mémoire de travail du programme dans un fichier. Voir cet article wikipedia .

suid_dumpable :
Ceci contrôle si le noyau peut être vidé d'un programme setuid comme décrit ci-dessus. Voir ci-dessous. Ceci est un noyau ajustable, vous pouvez le changer avec:

sudo sysctl -w kernel.suid_dumpable=2

Vous trouverez des informations sur cet accordable dans la documentation de votre code source qui, s'il est installé, peut se trouver dans un répertoire comme: /usr/src/linux-source-2.6.27/Documentation/sysctl/. Dans ce cas, la référence ci-dessous se trouve dans fs.txt dans ce répertoire. Utilisez la uname -acommande pour connaître la version de votre noyau.

Pourquoi est-ce important:

Cela pourrait être un risque pour la sécurité:
L'idée est donc que s'il existe des vidages de mémoire et qu'un utilisateur régulier peut les lire, il pourrait trouver des informations privilégiées. Si le programme est correctement sauvegardé, il contient des informations privilégiées en mémoire et que l'utilisateur peut lire le vidage, il peut découvrir ces informations privilégiées.

Référence:

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
la source
fs.txt est également en ligne ici: kernel.org/doc/Documentation/sysctl/fs.txt
Sundae
1

Il détermine si vous pouvez ou non obtenir des vidages de mémoire à partir de processus setuid.

Quelques informations du patch d'origine

+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
la source
Donc, c'est strictement informatif? Cela me dit quel type de vidage je peux obtenir du processus que je commence?
IVR Avenger