Kernel Security: Patching Strategy (Artikel 344)
Der Architektur-Guide für Kernel-Sicherheit. Erfahren Sie alles über Patch-Zyklen, Kernel-Livepatching ohne Reboot und die Absicherung des Herzstücks Ihres Betriebssystems.
# Kernel Security: Strategien für ein lückenloses Patch-Management
TL;DR / Management Summary Der Kernel ist das mächtigste und zugleich verwundbarste Teil des Systems. Ein Exploit hier bedeutet den totalen Kontrollverlust. In diesem Modul entwickeln wir eine Patching-Strategie: Wir unterscheiden zwischen Standard-Updates mit geplanten Reboots und Livepatching-Technologien (kpatch, kgraft), die kritische Lücken im laufenden Betrieb schließen. Ein Senior Admin sorgt dafür, dass kein Kernel älter als 30 Tage ungepatcht bleibt.
# 1. Einführung & Architektur
Warum Kernel-Patches anders sind.
Ein Kernel-Update tauscht das Binary auf der Disk aus (/boot/vmlinuz). Damit die Änderungen wirksam werden, muss der Kernel neu in den RAM geladen werden – was normalerweise einen Reboot erfordert.
# Die Patching-Optionen (Mermaid)
graph TD
A[New Kernel Vulnerability Found] --> B{Urgency?}
B -->|Normal| C[Standard Patching: dnf / apt upgrade]
C --> D[Scheduled Reboot]
B -->|Critical| E{Livepatch available?}
E -->|Yes| F[Apply Livepatch: No Reboot]
E -->|No| G[Immediate Emergency Reboot]
F --> H[System Secured in Runtime]
H --> D
# 2. Standard-Verfahren (Der ‘Sichere’ Weg)
Vollständiger Austausch.
# Unter RHEL / Rocky
sudo dnf upgrade kernel
# Prüfen ob Neustart nötig (erfordert dnf-utils)
needs-restarting -r
# Unter Debian / Ubuntu
sudo apt update && sudo apt install linux-image-generic
# Prüfen ob Neustart nötig
[ -f /var/run/reboot-required ] && echo "REBOOT NEEDED"
# 3. Livepatching: Sicherheit ohne Downtime
Operation am offenen Herzen.
Livepatching-Tools ersetzen Funktionen im laufenden Kernel-Memory durch umgeleitete (gepatchte) Versionen.
# Die Technologien im Überblick
- Canonical Livepatch: Für Ubuntu LTS. Kostenlos für bis zu 3 Systeme.
- kpatch: Die Red Hat Lösung (für RHEL/Rocky).
- kgraft: Die SUSE Lösung (für SLES).
# Beispiel: kpatch auf RHEL
sudo dnf install kpatch
# Suche nach verfügbaren Patches für die aktuelle Version
sudo dnf install kpatch-patch-$(uname -r | sed 's/-/_/g')
# 4. Day-2 Operations: Automatisierung
Kein manuelles Tippen mehr.
Nutzen Sie unattended-upgrades (Artikel 029), um Kernel-Updates automatisch herunterzuladen.
- Wichtig: Kombinieren Sie dies mit einem automatisierten Reboot-Management (z.B. Wartungsfenster jeden Dienstag um 03:00 Uhr).
# 5. Troubleshooting & “War Stories”
Wenn der neue Kernel hakt.
# Story 1: “Der hängende Boot nach Update”
Symptom: Nach dem Kernel-Update und Reboot bleibt der Server im GRUB-Menü oder einer Kernel-Panic hängen.
Ursache: Das Initramfs wurde nicht korrekt generiert oder ein Drittanbieter-Treiber (z.B. Nvidia oder DRBD) ist inkompatibel zum neuen Kernel.
Lösung: Booten Sie den vorherigen Kernel im GRUB-Menü. Deinstallieren Sie den defekten Kernel und bauen Sie das Initramfs manuell neu: dracut -f (RHEL) oder update-initramfs -u (Debian).
# Story 2: “Das Livepatch-Limit”
Symptom: Ein Livepatch lässt sich nicht installieren, obwohl die CVE kritisch ist. Ursache: Livepatches können nur logische Fehler beheben. Wenn die Änderung eine neue Datenstruktur im Kernel-Memory erfordert, kann dies nicht via Livepatch gelöst werden. Lösung: Hier hilft nur der klassische Reboot. Livepatching ist kein Ersatz für Reboots, sondern nur ein Mittel, um Zeit bis zum nächsten Wartungsfenster zu gewinnen.
# 6. Fazit & Empfehlung
- Priorität: Patchen Sie Kernel-Lücken mit einem Score (CVSS) > 7.0 innerhalb von 48 Stunden.
- Wahl: Nutzen Sie Livepatching für Load-Balancer und Web-Frontends, um die Uptime zu maximieren.
- Wartung: Halten Sie nie mehr als 2-3 Kernel-Versionen vor, um
/bootnicht zu füllen (Artikel 219).
# Anhang: Cheatsheet
| Aufgabe | Befehl |
|---|---|
| Aktuellen Kernel sehen | uname -r |
| Installierte Kernel (RPM) | rpm -q kernel |
| Installierte Kernel (DEB) | `dpkg -l |
| Reboot nötig? | ls /var/run/reboot-required |
| Livepatch Status | canonical-livepatch status |
| Kernel Log prüfen | dmesg -T |
| Letzte Boots sehen | journalctl --list-boots |
| Alten Kernel entfernen | dnf remove --oldinstallonly --setopt installonly_limit=2 kernel |
| Boot-Parameter sehen | cat /proc/cmdline |