En Redhat, ¿qué significa "kernel.suid_dumpable = 1"?

9

Estoy ejecutando un script bash para copiar algunos archivos de registro y luego reiniciar un servicio en un cuadro de Red Hat. Cada vez que ejecuto el script, obtengo lo siguiente en mi consola:

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

¿Qué significa "kernel.suid_dumpable = 1" en este caso?

Gracias, IVR Avenger

Vengador IVR
fuente

Respuestas:

13

Algunos antecedentes:

El bit setuid:
el bit setuid en un archivo ejecutable hace que los ejecutables ejecutados por cualquier usuario se ejecuten como si el propietario del ejecutable los ejecutara. Entonces, si setuid se configura en un programa propiedad de root, no importa quién lo ejecute, se ejecutará con privilegios de root. Por supuesto, no es tan simple, vea este artículo de Wikipedia u obtenga una copia de la Programación de Steven en el entorno Unix.

Un volcado de núcleo:
un volcado de núcleo es un volcado de la memoria de trabajo del programa en un archivo. Ver este artículo de Wikipedia .

suid_dumpable :
controla si el núcleo se puede volcar desde un programa setuid como se describió anteriormente. Vea abajo. Este es un kernel sintonizable, puede cambiarlo con:

sudo sysctl -w kernel.suid_dumpable=2

Encontrará información sobre este sintonizable en la documentación de su código de origen, que si está instalado, puede encontrarlo en un directorio como: /usr/src/linux-source-2.6.27/Documentation/sysctl/. En este caso, la referencia a continuación está en fs.txt en ese directorio. Use el uname -acomando para averiguar la versión de su kernel.

Por qué es importante:

Podría ser un riesgo de seguridad: por lo
tanto, la idea es que si hay volcados de núcleo y un usuario normal puede leerlos, podrían encontrar información privilegiada. Si el programa se volcó bien, tenía información privilegiada en la memoria, y el usuario puede leer el volcado, podrían descubrir esa información privilegiada.

Referencia:

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
fuente
fs.txt también está en línea aquí: kernel.org/doc/Documentation/sysctl/fs.txt
Sundae
1

Determina si puede obtener volcados de núcleo de procesos setuid o no.

Alguna información del parche original

+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
fuente
Entonces, ¿esto es estrictamente informativo? ¿Me dice qué tipo de volcado puedo obtener del proceso que estoy comenzando?
IVR Avenger