linux-security security kernel patching livepatch updates administration

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

  1. Canonical Livepatch: Für Ubuntu LTS. Kostenlos für bis zu 3 Systeme.
  2. kpatch: Die Red Hat Lösung (für RHEL/Rocky).
  3. 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 /boot nicht 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