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 -a
comando 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.