Sicherheitslücke Log4Shell: Steam, Apple, Minecraft und viele mehr sind verwundbar

Sicherheitslücke Log4Shell: Steam, Apple, Minecraft und viele mehr sind verwundbar

Dominik Bärlocher
Dominik Bärlocher
Zürich, am 14.12.2021

Log4Shell ist eine der grössten Sicherheitslücken der vergangenen Jahre. Das betroffene Logging Tool Log4j befindet sich in praktisch jeder Java-Anwendung. Es drohen Datenverlust und Schlimmeres.

Seit dem 9. Dezember 2021 gilt Log4j für alle User von PCs, Smartphones, Spielekonsolen und dem Internet generell als Gefahr. Denn Log4j hat eine Schwachstelle, die es einem bösartigen Hacker erlaubt, beliebigen Code in ein System einzuschleusen. Das nennt sich Remote Code Execution.

Ausserhalb von Entwicklerkreisen sagt Log4j niemandem etwas. Soll es auch nicht, denn die Logging-Komponente liest im Hintergrund von Java-Applikationen mit und gibt Entwicklern Aufschluss über Fehler und andere Prozesse. Aber es ist diese Programmbibliothek, die bösartigen Hackern Tür und Tor öffnet. Das Problem ist, dass Log4j extrem weit verbreitet ist, weshalb extrem viele Systeme verwundbar sind.

Unter anderem sind betroffen:

  • Apple
  • Tencent
  • Steam
  • Twitter
  • Baidu
  • CloudFlare
  • Amazon
  • Tesla
  • Minecraft
  • VMWare
  • WebEx
  • LinkedIn

Diese Liste ist nicht abschliessend und soll nur eine Idee vermitteln, wie gross das Problem ist.

Die Schwachstelle ist Log4Shell getauft worden.

Was können User gegen Log4Shell tun? Wie kann ich mich schützen?

Du bist Log4Shell zu grossen Teilen ausgeliefert. Sicherheitsexperte Manuel Atug rät zu folgenden Massnahmen:

  1. Backup aller persönlichen Daten
  2. Alle Updates, die in den kommenden Tagen angeboten werden, installieren

Was können Administratoren gegen Log4Shell tun?

Administratoren haben eines der stärksten Mittel zur Verfügung. Mit einer kleinen Änderung ihres Systems können sie Log4Shell für immer von ihren Servern verbannen.

Log4Shell wird durch ein Update behoben. Wenn Log4j auf Version 2.16.0 läuft, dann ist die Schwachstelle nicht mehr im Code.

Dieses Update ist bereits vor der Veröffentlichung Log4Shells im offiziellen Repository eingepflegt worden. Das nennt sich «Responsible Disclosure». Die Entdecker von Alibaba haben mit der Apache Software Foundation zusammengearbeitet und sich zur Verschwiegenheit verpflichtet, bis Apache einen Fix veröffentlicht hatte.

Um herauszufinden, ob eine verwundbare Version Log4js auf deinem System läuft, hat die Sicherheitsfirma Huntress Labs die Software log4shell-tester veröffentlicht. Diese zeigt an, wenn auf deinem System log4j in einer nicht-aktuellen Version läuft.

Was ist Log4j?

Log4j ist eine Logging-Komponente. Sie zeichnet Systemevents auf, die von Server-Betreibern studiert werden können, um Fehler zu beseitigen oder die Performance zu verbessern.

Log4j ist keine neue Komponente, sie wird aber regelmässig aktualisiert. Erfunden wurde es vom Coder Ceki Gülcü und im Jahre 2001 veröffentlicht. Das jüngste Update vor der Veröffentlichung der Schwachstelle datiert auf den 6. Dezember 2021. In diesem Update wurde der Fix für die Schwachstelle eingebunden.

Log4j ist open source und kann von allen verwendet werden.

Log4j ist in der Programmiersprache Java geschrieben und wird von Java-Applikationen verwendet. Java wird häufig bei der Entwicklung von Web-Applikationen verwendet.

Log4j ist sogar so weit verbreitet, dass der Security-Hersteller Malwarebytes sagt, dass die Schwachstelle «überall» ist – sogar auf dem Mars.

Was ist Log4Shell?

Die Schwachstelle in Log4j hat aufgrund ihres Schweregrades einen eigenen Namen verpasst bekommen. Sie heisst «Log4Shell». Der Begriff «Shell» suggeriert in Security-Kreisen, dass eine Angreiferin mit der Schwachstelle auf dem verwundbaren Computer eigenen Code ausführen kann.

Log4Shell passiert nicht nur auf deinem Smartphone oder deinem Computer. Die Schwachstelle ist in allen Applikationen, die Log4j verwenden. Darunter sind viele Server, da auf ihnen Software mit Log4j läuft.

Nach seiner Entdeckung hat Log4Shell eine Bewertung erhalten, die aussagt, wie schlimm die Schwachstelle ist. Sie hat auf einer Skala von 1 bis 10 eine 10 erhalten und vom Mitre, der internationalen Verwaltung der Schwachstellen, die Kennnummer CVE-2021 -44228 zugeteilt bekommen.

Kurz: Ein bösartiger Hacker kann beliebigen Schad-Code auf vielen Servern dieser Welt laufen lassen. Oder Middleware-Komponenten wie Netzwerk-Switches der Marke Cisco, zum Beispiel.

Noch schlimmer: Log4Shell ist extrem einfach auszunutzen.

Was ist Remote Code Execution?

Remote Code Execution wird übersetzt mit «entfernt Code ausführen». Eine Angreiferin kann auf den Bahamas sitzen und Code auf einem Schweizer Computer ausführen und diesen sogar kontrollieren. Das sollte in der Regel nicht sein. Sogar auf einem Windows- oder macOS-System kannst du nicht allen Code ausführen, den du ausführen willst. Wenn ein System schädlichen Code bemerkt, zeigt es eine Fehlermeldung an und führt den Code nicht aus.

Remote Code Execution umgeht das. Ein Angreifer kann alles mit deinem System anstellen. Egal, ob er einfach deinen Minecraft Server zum Abstürzen bringt, oder in deinem Webshop eine Kopie aller Kundendaten herunterlädt.

Im Falle Log4Shells genügt eine simple Zeichenfolge, um auf den Servern der Gaming-Vertriebsplattform Steam fremden Code auszuführen – ohne, dass die Sicherheitsmechanismen anschlagen.

Wie funktioniert Log4Shell?

Log4Shell funktioniert in mehreren Schritten. So hat es die Schwachstelle geschafft, über ein Jahrzehnt unentdeckt zu überleben. Log4Shell wird nur dann ausgelöst, wenn Log4j Befehle für das «Java Naming and Directory Interface» (JNDI) erhält. Dieser Schadcode, in der Fachsprache «Payload» genannt, sieht im Falle des folgenden abstrakten Beispiels so aus:

Es braucht nur eine Code-Zeile, damit der Angriff zum Erfolg wird.
Es braucht nur eine Code-Zeile, damit der Angriff zum Erfolg wird.

attacker.com ist eine Website, die vom Angreifer kontrolliert wird.

Die Sicherheitsfirma LunaSec beschreibt den Ablauf von Log4Shell wie folgt:

  1. Daten des Angreifers werden über ein beliebiges Protokoll an den Server übermittelt.
  2. Der Server schreibt die Daten in ein von Log4j erstelltes Log. Wenn diese Daten die Payload enthalten und JNDI ansprechen, dann sendet Log4j einen Request an die Website des Angreifers.
  3. Die Antwort der Website des Angreifers enthält den zweiten Teil des Angriffs. Als Beispiel gibt LunaSec den Code http://second-stage.attacker.com/Exploit.class an.
  4. Die Antwort von attacker.com wird vom verwundbaren Prozess, der auf dem Server läuft, ausgeführt. Das ist die eigentliche Code Injection.
  5. Dieser injected Code öffnet dem Angreifer Tür und Tor, um weiteren Code auszuführen.

Die erste Phase des Angriffs verschafft der Angreiferin Shell-Zugriff, die zweite Phase verschafft dem Angriff Flexibilität, richtet Schaden an oder klaut Daten.

Wer hat Log4Shell entdeckt?

Log4Shell wurde von Chen Zhaojun, Mitglied des Alibaba Cloud Security Teams, entdeckt. Er informierte die Entwickler Log4js und veröffentlichte die Schwachstelle gemeinsam mit ihnen am 9. Dezember 2021. Dies gab den Developern genug Zeit, die Schwachstelle zu reparieren, die Reparatur zu testen und den Patch ins Github Repository einzupflegen. So können Betroffene ihre Systeme sofort reparieren. In der Fachsprache wird in so einem Fall von «Responsible Disclosure» gesprochen.

Die Schwachstelle in JNDI ist nicht neu. Bereits im Jahre 2016 haben die Hacker Alvaro Muñoz und Oleksandr Mirosh an der Sicherheitskonferenz Black Hat über die Schwachstelle in JNDI gesprochen.

Wird Log4Shell von bösartigen Hackern verwendet?

Ja, es sind über 500 Angriffe von Unbekannten bekannt geworden, die nur wenige Stunden nach der Entdeckung Log4Shells die Methode ausnutzen wollen. Die Angriffe sind aber so weit bekannt, nicht gezielt gewesen. Müssen sie auch nicht sein, da Log4j überall eingesetzt wird. Alles, was ein Script eines bösartigen Hackers tun muss, ist den ersten Teil des Angriffs an beliebige Server zu übermitteln. Wenn eine Antwort kommt, dann wird die zweite Phase des Angriffs automatisch gestartet. Wenn keine Antwort kommt oder der Versuch blockiert wird, dann ist das halt so.

Es ist nicht von allen Angriffen bekannt, was in der Payload übermittelt wurde. Der Security Researcher John Hammond spricht von «Botnets und Bitcoin Miner», aber auch von Ransomware oder Trojanern.

Und bei uns?

«Unsere Eigenentwicklungen, unter anderem die Shops, sind nicht von Log4Shell betroffen. Sie verwenden kein Java», sagt Martin Wrona, Security Software Engineer bei Digitec Galaxus.

Trotzdem waren unsere Security Engineers beschäftigt. Einige interne Systeme, mit denen du als Endkunde nie in Kontakt kommst – Lagersysteme, zum Beispiel – sind javabasiert. Genau wie andere Teile der Infrastruktur des Unternehmens. Wo Java ist, da sind Log4j und auch Log4Shell. «Da hatten wir doch einiges zu tun, aber aktuell sind alle Systeme gepatcht oder durch Konfiguration mitigiert», gibt Martin Entwarnung.

58 Personen gefällt dieser Artikel


Dominik Bärlocher
Dominik Bärlocher

Senior Editor, Zürich

Journalist. Autor. Hacker. Ich bin Geschichtenerzähler und suche Grenzen, Geheimnisse und Tabus. Ich dokumentiere die Welt, schwarz auf weiss. Nicht, weil ich kann, sondern weil ich nicht anders kann.

Diese Beiträge könnten dich auch interessieren

  • Skeleton Loader

    Skeleton Loader

  • Skeleton Loader

    Skeleton Loader

  • Skeleton Loader

    Skeleton Loader