Frage Erklärung von nodev und nosuid in fstab


Ich sehe diese beiden Optionen ständig im Internet vorgeschlagen, wenn jemand beschreibt, wie man einen tmpfs oder ramfs mount. Oft auch mit noexec, aber ich interessiere mich speziell für nodev und nosuid. Ich hasse es im Grunde, blind zu wiederholen, was jemand vorgeschlagen hat, ohne wirklich zu verstehen. Und da ich dazu im Internet nur Copy / Paste-Anweisungen sehe, frage ich hier.

Dies ist aus der Dokumentation:
Knotenpunkt - Blockieren Sie keine speziellen Geräte im Dateisystem.
Nosuid - Blockieren Sie die Operation von suid und sgid Bits.

Aber ich hätte gern eine praktische Erklärung, was passieren könnte, wenn ich diese beiden verlasse. Angenommen, ich habe tmpfs oder ramfs (ohne diese beiden erwähnten Optionen) konfiguriert, auf die von einem bestimmten Benutzer (nicht root) auf dem System zugegriffen werden kann (Lesen + Schreiben). Was kann dieser Benutzer tun, um das System zu beschädigen? Ausschließen des Falls, den gesamten verfügbaren Systemspeicher im Falle von Ramfs zu verbrauchen


32
2017-10-19 15:45


Ursprung




Antworten:


Sie müssen dem nicht blind als harte Regel folgen. Aber die Gründe für mehr sicherheitsorientierte Situationen lauten wie folgt.

  • Die Option nodev mount gibt an, dass das Dateisystem keine speziellen Geräte enthalten darf: Dies ist eine Sicherheitsmaßnahme. Sie möchten nicht, dass ein benutzerweit zugängliches Dateisystem wie dieses die Möglichkeit zur Erstellung von Zeichengeräte oder Zugriff auf zufällige Gerätehardware.

  • Die Option nosuid mount gibt an, dass das Dateisystem keine set userid-Dateien enthalten darf. Das Verhindern von setuid-Binärdateien in einem weltweit beschreibbaren Dateisystem ist sinnvoll, da dort das Risiko einer Root-Eskalation oder anderer Scheußlichkeit besteht.

Für das, was es wert ist, verwende ich diese Parameter nicht oft ... nur bei öffentlichen Systemen, bei denen es andere Compliance-Überlegungen gibt.


26
2017-10-19 16:18



Ich habe tatsächlich ein öffentliches System, weil Software unter diesem Konto läuft, das dem Netz ausgesetzt ist. Ich wundere mich über Was-wäre-wenn-Szenarien hier. Was passiert, wenn jemand durch eine Schwachstelle Zugriff auf die Shell erhält? Natürlich könnte er noch andere Dinge tun, um Rechte zu eskalieren, aber ich möchte sie lieber minimieren. Ich frage mich zum Beispiel, ob suid nicht in der Lage wäre, das Flag zu ändern, unabhängig davon, ob das Dateisystem dies zulässt oder nicht. Ist die Nosuid-Option dann nur verhindert versehentlich schlecht konfigurierte Software (von einem Stamm)? Oder kann ein Benutzer es alleine ausnutzen? - Ivan Kovacevic
@IvanKovacevic Sie müssen die empfohlenen Dateisystem-Mount-Optionen nicht verwenden. Sie sind da, um den Angriffsvektor zu reduzieren. Die Untersuchung von Was-wäre-wenn-Szenarien könnte jedoch den Rahmen dieser Frage sprengen. - ewwhite
@ewwhite: betreffendnosuidwird das Setuid-Bit nicht ignoriert? (anstattThe nosuid mount option specifies that the filesystem cannot contain set userid files) - user2284570