linux-security security monitoring updates automation alerting slack

Advisory Monitoring: Automated Notifications (Artikel 346)

Automatisierung der Überwachung von Sicherheitsmitteilungen. Erfahren Sie, wie Sie Benachrichtigungen für verfügbare Patches einrichten und Prozesse identifizieren, die nach einem Update einen Neustart erfordern.

# Advisory Monitoring: Den Überblick bei tausenden Updates behalten

TL;DR / Management Summary Ein Senior Admin wartet nicht auf den wöchentlichen Report. Er will sofort wissen, wenn ein kritischer Patch für seine Systeme bereitsteht. In diesem Modul lernen wir, wie wir die Paketmanager-Metadaten (updateinfo) anzapfen, um automatisierte Alarme an Slack oder Discord zu senden. Zudem implementieren wir needrestart, um nach einem Update sofort die Prozesse zu finden, die noch alte, unsichere Bibliotheken im RAM halten.


# 1. Einführung & Architektur

Metadaten statt Pakete.

Moderne Paketmanager (DNF, Zypper) laden nicht nur Pakete, sondern auch Metadaten über deren Sicherheitsrelevanz herunter. Wir nutzen diese Daten für unser Monitoring.

# Die Alarm-Kette (Mermaid)

graph LR
    A[Distro Repository] -->|Publish Advisory| B[Package Metadata]
    C[Cron / Timer: Check Script] -->|Query| B
    C -->|If Critical| D[Alert: Slack / Webhook]
    E[Admin: Run Update] --> F[Check RAM: needrestart]
    F -->|Result| G[Restart Service X, Y, Z]

# 2. automatisierte Prüfung (CLI)

Wissen, was ansteht.

# Unter RHEL / Rocky

Nutzen Sie das dnf-plugin-security:

# Zeige Zusammenfassung der verfügbaren Sicherheits-Updates
sudo dnf updateinfo summary

# Unter SUSE / SLES

# Zeige alle anwendbaren Sicherheits-Patches
sudo zypper patches --category security

# 3. Benachrichtigungen automatisieren (Lab)

Slack-Alert bei kritischen Patches.

# Das Monitoring-Skript (security_check.sh)

#!/bin/bash
COUNT=$(dnf updateinfo list security --severity critical | grep -c "critical")

if [[ $COUNT -gt 0 ]]; then
    curl -X POST -H 'Content-type: application/json' \
    --data "{\"text\":\"[$(hostname)] CRITICAL SECURITY UPDATES: $COUNT\"}" \
    https://hooks.slack.com/services/TXXX/BXXX/XXXX
fi

# 4. Day-2 Operations: needrestart

Die Gefahr im RAM.

Ein Paket-Update ersetzt nur die Datei auf der Disk. Der Prozess im RAM läuft weiter mit der alten, unsicheren Library.

# Installation & Nutzung

sudo apt install needrestart # Debian/Ubuntu
sudo dnf install needrestart # RHEL/Rocky (via EPEL)

# Scannt alle Prozesse und schlägt Neustarts vor
sudo needrestart

Profi-Tipp: needrestart kann auch so konfiguriert werden, dass es Dienste nach einem apt upgrade automatisch neu startet.


# 5. Troubleshooting & “War Stories”

Wenn die Metadaten lügen.

# Story 1: “Der ignorierte Kernel-Restart”

Symptom: Alle Vulnerability-Scanner melden “Vulnerable”, obwohl dnf update keine neuen Pakete mehr findet. Ursache: Ein Kernel-Update wurde installiert, aber der Server wurde nicht neu gestartet. Der alte, verwundbare Kernel läuft noch. Lösung: Nutzen Sie needrestart -k. Es zeigt Ihnen genau an, ob der aktuell laufende Kernel zum installierten Image passt.

# Story 2: “Metadata Cache Out-of-Sync”

Symptom: Das Monitoring-Skript meldet 0 Fehler, aber ein manueller Scan mit Trivy (Artikel 343) findet kritische Lücken. Ursache: Der DNF/Zypper Cache ist veraltet. Die Sicherheits-Metadaten wurden seit Tagen nicht aktualisiert. Lösung: Erzwingen Sie einen Refresh der Metadaten vor dem Check: dnf makecache --refresh.


# 6. Fazit & Empfehlung

  • Automation: Bauen Sie den Sicherheits-Check in Ihren täglichen Workflow ein.
  • Hygiene: Installieren Sie needrestart auf jedem Server. Es ist das einzige Tool, das Ihnen ehrlich sagt, ob ein Patch wirklich “aktiv” ist.
  • Wahl: Nutzen Sie für große Flotten den SUSE Manager oder Red Hat Insights, die diese Benachrichtigungen nativ beherrschen.

# Anhang: Cheatsheet

Aufgabe RHEL / Rocky SUSE / SLES
Sicherheits-Summary dnf updateinfo zypper patches
Nur Security-Update dnf upgrade --security zypper patch
Neustart-Check (Libs) needrestart needrestart
Neustart-Check (Full) needs-restarting -r zypper ps
Advisory Details dnf updateinfo <CVE-ID> zypper patch-info <ID>
Slack Notification curl -X POST ... curl -X POST ...
Metadata Refresh dnf clean all && dnf makecache zypper ref -f