Dies kam in einem Kommentar zu einer anderen Frage auf und ich würde mich freuen, wenn mir jemand die Gründe dafür erklären könnte.
Ich schlug vor, dass Apache die Fehler für einen bestimmten VHost im Home-Verzeichnis eines Benutzers protokolliert. Dies wurde abgeschossen, weil es unsicher war. Warum?
Ich habe in einem Antwortkommentar um Klarstellung gebeten, aber alles, was ich bekam, war, dass es unsicher ist, Root-Schreibzugriff in einem Ordner zu haben, der nicht root gehört. Könnte das nochmal jemand erklären?
Vielen Dank,
Bart.
linux
security
permissions
Bart B
quelle
quelle
Antworten:
Da ein böser Benutzer in böswilliger Absicht versuchen kann, darauf hinzuweisen, dass die Datei
root
an einen anderen Speicherort geschrieben wird . Das ist nicht so einfach, aber wirklich möglich.Wenn ein Benutzer beispielsweise den Weg finden würde, einen Symlink vom angeblichen Apache-Protokoll zu / etc / shadow zu erstellen, ist das System plötzlich unbrauchbar. Apache (
root
) würde die Anmeldeinformationen Ihrer Benutzer überschreiben und das System fehlerhaft machen.Wenn die Datei access.log für den Benutzer nicht beschreibbar ist, kann es schwierig sein, sie zu hijacken. Es ist jedoch besser, diese Möglichkeit zu umgehen !
Eine Möglichkeit besteht darin, logrotate zu verwenden, um die Aufgabe zu erledigen und den Link zu einer Datei zu erstellen, die noch nicht vorhanden ist. Dieses Logrotate wird jedoch überschrieben, sobald die Protokolle größer werden:
Hinweis :
Die Symlink- Methode ist nur einer der möglichen Angriffe, die als Proof-of-Concept angegeben werden.
Sicherheit muss auf der weißen Liste stehen , nicht auf der schwarzen Liste, von der wir wissen , dass sie ein Problem darstellt.
quelle
+t
Bit ist gesetzt), auch wenn er keine Schreibberechtigung für die Dateien selbst hat (da unlink () ein Schreibzugriff auf das Verzeichnis ist, nicht auf das Datei). Selbst wenn root die Datei im Voraus erstellt, kann der Verzeichnisinhaber sie möglicherweise löschen und durch einen Symlink zu einer anderen Datei ersetzen.Das allgemeine Prinzip, dass Prozesse nicht in ein Verzeichnis geschrieben werden, das sie nicht besitzen oder dem sie nicht vertrauen, ist gut. In diesem speziellen Fall ist es jedoch vernünftig, darauf zu vertrauen, dass der Apache-Code das Protokoll mit
O_NOFOLLOW
etc öffnet : Die Anmeldung beim Home-Verzeichnis eines Benutzers ist eine übliche Einrichtung.quelle