Einige Hintergrundinformationen:
Das setuid-Bit:
Das setuid-Bit in einer ausführbaren Datei bewirkt, dass ausführbare Dateien, die von einem beliebigen Benutzer ausgeführt werden, so ausgeführt werden, als würden sie vom Eigentümer der ausführbaren Datei ausgeführt. Wenn setuid für ein Programm festgelegt ist, das root gehört, wird es mit Root-Rechten ausgeführt, unabhängig davon, wer es ausführt. Es ist natürlich nicht so einfach, lesen Sie diesen Wikipedia- Artikel oder holen Sie sich eine Kopie von Stevens Programmierung in der Unix-Umgebung.
Ein Core-Dump:
Ein Core-Dump ist ein Dump des Arbeitsspeichers des Programms in eine Datei. Siehe diesen Wikipedia-Artikel .
suid_dumpable :
Hiermit wird gesteuert, ob der Core wie oben beschrieben aus einem setuid-Programm ausgegeben werden kann. Siehe unten. Dies ist ein Kernel-Tunable, den Sie ändern können mit:
sudo sysctl -w kernel.suid_dumpable=2
Informationen dazu finden Sie in der Dokumentation zu Ihrem Sourcode. Wenn diese installiert ist, finden Sie sie möglicherweise in einem Verzeichnis wie: /usr/src/linux-source-2.6.27/Documentation/sysctl/. In diesem Fall befindet sich die folgende Referenz in fs.txt in diesem Verzeichnis. Verwenden Sie den uname -a
Befehl, um Ihre Kernelversion herauszufinden.
Warum es wichtig ist:
Dies könnte ein Sicherheitsrisiko darstellen:
Wenn also Core-Dumps vorhanden sind und ein normaler Benutzer sie lesen kann, findet er möglicherweise privilegierte Informationen heraus. Wenn das Programm gut gesichert ist, hat es privilegierte Informationen im Speicher, und der Benutzer kann den Speicherauszug lesen, er kann diese privilegierten Informationen herausfinden.
Referenz:
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.