Alcuni retroscena:
Il bit setuid:
il bit setuid su un file eseguibile lo rende così eseguibili che vengono eseguiti da qualsiasi utente, vengono eseguiti come se fossero stati eseguiti dal proprietario dell'eseguibile. Pertanto, se setuid è impostato su un programma di proprietà di root, indipendentemente da chi lo esegue, verrà eseguito con i privilegi di root. Ovviamente non è così semplice, vedi questo articolo di Wikipedia , o ottieni una copia della programmazione di Steven nell'ambiente Unix.
Un dump principale:
un dump principale è un dump della memoria di lavoro del programma su un file. Vedi questo articolo di Wikipedia .
suid_dumpable :
controlla se il core può essere scaricato da un programma setuid come descritto sopra. Vedi sotto. Questo è un parametro sintonizzabile del kernel, puoi cambiarlo con:
sudo sysctl -w kernel.suid_dumpable=2
Scoprirai questo sintonizzabile nella documentazione per il tuo codice sorgente, che se installato, potresti trovare in una directory come: /usr/src/linux-source-2.6.27/Documentation/sysctl/. In questo caso, il riferimento di seguito è in fs.txt in quella directory. Usa il uname -a
comando per scoprire la tua versione del kernel.
Perchè importa:
Potrebbe essere un rischio per la sicurezza:
quindi l'idea è che se ci sono core dump e un utente normale può leggerli, potrebbero scoprire informazioni privilegiate. Se il programma viene scaricato correttamente, conteneva informazioni privilegiate in memoria e l'utente può leggere il dump, potrebbe scoprire tali informazioni privilegiate.
Riferimento:
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.