Hardening/Linux/Dateisystem: Unterschied zwischen den Versionen
Erscheinungsbild
Die Seite wurde neu angelegt: „'''Hardening/Linux/Filesystem''' == Beschreibung == Härtung auf Dateisystemebene reduziert die Auswirkungen lokaler Angriffe, Fehlkonfigurationen und Post-Exploitation-Aktivitäten durch Einschränkung von Schreib- und Ausführungsrechten sowie Trennung von Datenbereichen. == Ziele == * Begrenzung von Ausführbarkeit und Privileg-Eskalation (SUID/SGID, Device-Nodes) * Reduzierung persistenter Artefakte (z.B. temporäre Verzeichnisse) * Isolierung von D…“ |
|||
| Zeile 84: | Zeile 84: | ||
* read-only ''/'' (in Appliances/immutable Setups mit Overlay-Konzept) | * read-only ''/'' (in Appliances/immutable Setups mit Overlay-Konzept) | ||
; Hinweis | |||
* Update-Mechanismen benötigen definierte Wartungsfenster | |||
== Konfiguration == | == Konfiguration == | ||
Aktuelle Version vom 18. Dezember 2025, 17:49 Uhr
Hardening/Linux/Filesystem
Beschreibung
Härtung auf Dateisystemebene reduziert die Auswirkungen lokaler Angriffe, Fehlkonfigurationen und Post-Exploitation-Aktivitäten durch Einschränkung von Schreib- und Ausführungsrechten sowie Trennung von Datenbereichen.
Ziele
- Begrenzung von Ausführbarkeit und Privileg-Eskalation (SUID/SGID, Device-Nodes)
- Reduzierung persistenter Artefakte (z.B. temporäre Verzeichnisse)
- Isolierung von Daten- und Systembereichen durch separate Mountpoints
- Minimierung von Schäden bei volllaufenden Partitionen (insb. /var, /var/log)
Partitionierung und Trennung
- Grundprinzip
Getrennte Dateisysteme ermöglichen restriktivere Mount-Optionen und begrenzen Seiteneffekte (z.B. Vollschreiben, Manipulation von Executables, Persistenz).
- Mountpoints
- /home – Benutzerdaten
- /var – variable Daten (Caches, Spools, DBs)
- /var/log – Logs (optional separat)
- /tmp und /var/tmp – temporäre Dateien
- /srv – Anwendungs-/Servicedaten
- /boot – Bootloader/Kernel (typisch restriktiv)
Mount-Optionen
- Übersicht
| Option | Beschreibung | Einsatzorte | Hinweise |
|---|---|---|---|
| nodev | Device-Dateien werden nicht als Geräte interpretiert | /home, /tmp, /var/tmp, /srv | Auf /dev nicht setzen |
| nosuid | SUID/SGID-Bits werden ignoriert | /home, /tmp, /var/tmp, /srv | Reduziert Privileg-Eskalation über SUID-Binaries |
| noexec | Ausführung von Binärdateien auf dem Dateisystem unterbunden | /tmp, /var/tmp | Interpreter können weiterhin Skripte ausführen (z.B. python /tmp/script.py) |
| ro | Read-only Mount | /boot | Updates benötigen temporär rw oder alternative Update-Strategie |
Empfohlene Mountpoints
- Base
| Pfad | Empfohlene Optionen | Begründung |
|---|---|---|
| /tmp | nodev,nosuid,noexec | Temporäre Artefakte. Reduzierte Ausführung und SUID-Missbrauch |
| /var/tmp | nodev,nosuid,noexec | Wie /tmp, aber persistenter. dennoch restriktiv |
| /home | nodev,nosuid | Verhindert Device-/SUID-Missbrauch in Benutzerdaten |
| /srv | nodev,nosuid | Service-Daten i.d.R. ohne SUID/Devices. noexec nur falls kompatibel |
| /boot | ro,nodev,nosuid,noexec | Schutz von Boot-Artefakten. Änderungen nur kontrolliert |
- Hinweis
- noexec auf /home und /srv kann Build-/Deploy-Prozesse brechen
- Separate /var/log-Partition reduziert Risiken durch Log-Flooding
tmpfs
- Ziel
Reduzierung persistenter Spuren und automatische Bereinigung beim Reboot
- /tmp als tmpfs
- /run ist i.d.R. bereits tmpfs
- fstab-Beispiel
tmpfs /tmp tmpfs rw,nosuid,nodev,noexec,mode=1777 0 0
- Hinweis
- Bei der Verwendung von tmpfs sind die Kapazitätsgrenzen von RAM und Swap zu berücksichtigen
- Bei großen temporären Dateien ggf. klassisches Dateisystem verwenden
Read-only-Dateisysteme
- Ziel
Ein read-only Root-Dateisystem reduziert Persistenz und erschwert Manipulation von Systemdateien.
- Varianten
- /boot read-only
- /usr read-only
- read-only / (in Appliances/immutable Setups mit Overlay-Konzept)
- Hinweis
- Update-Mechanismen benötigen definierte Wartungsfenster
Konfiguration
- /etc/fstab
Mount-Optionen werden typischerweise in /etc/fstab gepflegt
UUID=XXXX /tmp ext4 defaults,nodev,nosuid,noexec 0 2
UUID=YYYY /home ext4 defaults,nodev,nosuid 0 2
UUID=ZZZZ /boot ext4 ro,nodev,nosuid,noexec 0 2
- systemd Mount Units (Alternative)
Für systemd-basierte Systeme können Mounts als Units abgebildet werden (z.B. tmp.mount)
[Mount]
What=UUID=XXXX
Where=/tmp
Type=ext4
Options=defaults,nodev,nosuid,noexec
- Änderungen sollten mit Console oder Rescue-Zugriff abgesichert werden
Wechselwirkungen
- MAC-Systeme
- Mount-Optionen ergänzen MAC, ersetzen es aber nicht.
- MAC kontrolliert Zugriffe pro Prozess, Mount-Optionen wirken global pro Dateisystem.
- Container/VMs
- In Containern sind Mount-Optionen oft durch Host oder Runtime vorgegeben
- Härtung erfolgt primär auf Host-Ebene oder via Runtime-Policies