No Redhat, o que significa “kernel.suid_dumpable = 1”?

9

Estou executando um script bash para copiar alguns arquivos de log e depois reiniciar um serviço em uma caixa Red Hat. Toda vez que executo o script, recebo o seguinte no meu console:

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

O que significa "kernel.suid_dumpable = 1" neste caso?

Obrigado, IVR Avenger

IVR Avenger
fonte

Respostas:

13

Alguns antecedentes:

O bit setuid:
o bit setuid em um arquivo executável faz com que os executáveis ​​executados por qualquer usuário sejam executados como se estivessem sendo executados pelo proprietário do executável. Portanto, se setuid estiver definido em um programa de propriedade do root, não importa quem o execute, ele será executado com privilégios de root. Obviamente, não é tão simples assim, consulte este artigo da wikipedia ou obtenha uma cópia da Programação de Steven no ambiente Unix.

Um core dump:
um core dump é um dump da memória de trabalho do programa para um arquivo. Veja este artigo da Wikipedia .

suid_dumpable :
controla se o núcleo pode ser despejado de um programa setuid como descrito acima. Ver abaixo. Este é um kernel ajustável, você pode alterá-lo com:

sudo sysctl -w kernel.suid_dumpable=2

Você descobriria esse ajuste na documentação do seu código-fonte, que se instalado, poderá encontrar em um diretório como: /usr/src/linux-source-2.6.27/Documentation/sysctl/. Nesse caso, a referência abaixo está em fs.txt nesse diretório. Use o uname -acomando para descobrir sua versão do kernel.

Por que isso importa:

Pode ser um risco à segurança:
portanto, a idéia é que, se houver dumps principais e um usuário comum puder lê-los, eles poderão descobrir informações privilegiadas. Se o programa for bem despejado, ele possui informações privilegiadas na memória e o usuário pode ler o despejo, ele pode descobrir essas informações privilegiadas.

Referência:

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
fonte
fs.txt está online aqui também: kernel.org/doc/Documentation/sysctl/fs.txt
Sundae
1

Determina se você pode ou não obter dumps principais de processos setuid.

Algumas informações do patch 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
fonte
Então, isso é estritamente informativo? Está me dizendo que tipo de despejo posso obter do processo que estou iniciando?
IVR Avenger