Log4j / log4shell

| Kommentar hinterlassen

Mit der Schwachstelle in der Java Library log4j ist erneut eine Sicherheitslücke mit erheblichen Konsequenzen aufgetaucht. User-Eingaben, welche an den Logging Dienst geschickt werden, können so manipuliert werden, dass auf dem Server Befehle ausgeführt werden (Remote Code Execution).

Weitere Informationen:

https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-44228

Gravity erkennt die Schwachstelle, allerdings ist sie nicht immer abschliessend und zuverlässig zu diagnostizieren, da man sich darauf verlassen muss, dass die Callbacks zur Verifizierung funktionieren und nicht unterwegs geblockt werden. Der Scanner schickt eine Payload, welche log4j dazu veranlasst, eine ldap Anfrage beim Scanner zu starten, falls die Verwundbarkeit besteht.

Verlässlicher funktioniert es über privilegierte Scans. In diesem Fall sucht der Scanner lokal auf dem System nach der betroffenen Library. Doch der Erfolg hängt auch davon ab, wo die Library liegt (z.b. nested jar oder speziell restriktive Verzeichnisse) und welche Credentials genutzt werden.

Empfehlung:

Daher empfehlen wir zusätzlich zum Scanning ein Inventar-basiertes Assessment durchzuführen, um festzustellen, welche Ihrer Java-Applikationen oder Komponenten User-Input verarbeiten und an eine betroffene Version von log4j senden.

Vorgehen:

  1. Fokussieren Sie sich zuerst auf die vom Internet her erreichbaren Systeme.
  2. Verzögert sich die Abklärung, sollten Sie den Zugang zu verdächtigen Applikationen sperren oder zumindest stark einschränken (Port schliessen oder auf IP-Bereiche einschränken).
  3. Führen Sie mit Gravity einen Web Scan oder, falls Sie spezielle Ports verwenden oder nicht sicher sind, einen PCI-DSS Scan durch. Falls Sie einen eigenen Scanner verwenden, stellen Sie sicher, dass dessen TCP und UDP Ports 53 und 389 vom getesteten System aus erreichbar sind. Darüber wird die Schwachstelle zu verifizieren versucht.
  4. Falls privilegierte Scans möglich sind, führen Sie zudem einen kompletten privilegierten Scan durch. Insbesondere die Testgruppen «Misc» und «Web Servers» sollten aktiviert sein, damit nach der betroffenen Bibliothek gesucht werden kann. Erstellen Sie hierfür eine neue Policy und hinterlegen Sie einen gültigen User mit administrativen Privilegien.
  5. Parallel zu den Scans konsultieren Sie Ihr Software-Inventar und identifizieren Sie sämtliche Java-Applikationen, die möglicherweise User Input bzw. untrusted Input loggen. Sehen Sie beim Security Advisory des Herstellers nach, ob Ihre Version betroffen ist. Ist dies nicht möglich, stellen Sie sicher, ob log4j genutzt wird und welche Version, indem Sie sich die Bibliotheken anschauen (siehe auch log4j_checker_beta).
  6. Stellen Sie sicher, dass log4j aktualisiert wird oder konfigurieren Sie dies gemäss https://logging.apache.org/log4j/2.x/security.html um die schädlichen Anfragen zu unterbinden.
  7. Wenden Sie sich danach internen Systemen zu.

Neben Gravity können Sie folgende Tools bei der Behebung unterstützen:

https://github.com/rubo77/log4j_checker_beta

https://github.com/Neo23x0/log4shell-detector

Schreiben Sie einen Kommentar

Required fields are marked *.