Die einzigen von FHS vorgeschriebenen Verzeichnisse, die allgemein von der Welt beschreibbar sind, sind /tmp
und/var/tmp
. In beiden Fällen sind sie zum Speichern temporärer Dateien vorgesehen, die von jedem erstellt werden können.
Ebenfalls häufig ist /dev/shm
, als ein tmpfs (Dateisystem von RAM gesichert), für schnellen Zugriff auf mittelgroße Daten zwischen Prozessen gemeinsam genutzt, oder einfach nur Erstellen von Dateien , die beim Neustart zerstört werden garantiert werden.
Es kann auch ein /var/mail
oder /var/spool/mail
und manchmal andere Spoolerverzeichnisse geben. Diese werden verwendet, um E-Mails vor der Verarbeitung vorübergehend zurückzuhalten. Sie sind nicht immer von der Welt beschreibbar, abhängig von den verwendeten Werkzeugen. Wenn dies der Fall ist, können Dateien dort von Benutzerprogrammen zur Verarbeitung durch Dämonen erstellt werden.
Bei all diesen Verzeichnissen ist normalerweise das Sticky-Bit ( t
) gesetzt, was bedeutet, dass nur der Eigentümer einer Datei oder des Verzeichnisses die darin enthaltenen Dateien verschieben oder löschen kann.
Jedes Programm, das als Benutzer ausgeführt wird, kann Dateien in diesen Verzeichnissen erstellen, und es ist Sache des Erstellers, das Richtige zu tun, was die Sicherheit seiner Daten angeht. Es gibt kein spezielles allgemeines Sicherheitsproblem außer jemandem, der möglicherweise das Dateisystem ausfüllt, aber viel Spielraum für ein Programm, um es falsch zu machen.
Es wurden einige Schritte in Richtung dienstspezifischer /tmp
Verzeichnisse unternommen . Dies vermeidet einige der potenziellen Fehler, die auftreten können. Daher ist es für das Programm nicht so wichtig, fehlerfrei zu sein, wenn es das Verzeichnis verwendet.
Sie finden die weltweit beschreibbaren Verzeichnisse auf Ihrem System unter:
find / -maxdepth 3 -type d -perm -777
/var/lock
→/run/lock
/tmp
Es ist riskant, da Sie zusätzlichen Code hinzufügen müssen, um es sicher zu verwenden. Offensichtlich wird dies übersehen.
Ein aktuelles Beispiel ist Steve Kemp. http://blog.steve.org.uk/sometimes_reading_code_makes_you_scream_.html
Wenn Sie (der Angreifer) / tmp / shadow vor der zweiten Zeile ersetzen, müssen Sie das Kennwort aller ersetzen. (Ich schätze, der Angriff erfordert, dass Sie die Datei vor der ersten Zeile erstellen und die Datei für die Welt beschreibbar machen.)
Mit Systemd on Linux können solche Schwachstellen durch Isolieren von / tmp für viele Systemdienste verringert werden. (Ausgenommen solche, die "/ tmp als Speicherort für IPC-Sockets und andere Kommunikationsprimitive missbrauchen").
In Fedora Linux - http://fedoraproject.org/wiki/Features/ServicesPrivateTmp
Systembeschreibung - http://0pointer.de/blog/projects/security.html
quelle
fopen
überschrieben, die Berechtigungen werden jedoch nicht zurückgesetzt, sodass der böswillige Benutzer weiterhin Änderungen vornehmen kann. Ein böswilliger Benutzer hätte auch etwasln -s /bin/bash /tmp/shadow
vor der ersten Zeile tun können, sodass eine wichtige Systembinärdatei überschrieben würde.Mit können Sie weltweit beschreibbare Verzeichnisse finden
Für Dateien ändern Sie den Typ auf
f
Für Symlinks geben Sie an
l
So setzen Sie ein klebriges Bit:
quelle