Am 10. Dezember 2021 wurde eine neue Sicherheitslücke in der gefunden Apache Log4j 2-Bibliothek. Die Sicherheitslücke wird Log4Shell genannt. Die Apache Log4j-Bibliothek wird weltweit häufig in Software verwendet und ist daher eine beliebte Wahl für die Protokollierung.
Update 18.12.2021, wieder eine neue Sicherheitslücke (CVE-2021-45105) wurde in der log4j-Bibliothek gefunden. Diese Sicherheitsanfälligkeit wurde in Version 2.17 behoben, die an diesem Wochenende veröffentlicht wurde. Im Gegensatz zu den beiden vorherigen Sicherheitslücken hat diese nur Auswirkungen auf die Verfügbarkeit, nicht jedoch auf Integrität und Vertraulichkeit. Mendix hat auf ihrer Statusseite dass „Daten und Apps von Kunden, die unsere Richtlinien bisher befolgt haben, sicher sind. Wir haben Maßnahmen getroffen, um Verfügbarkeitsprobleme in der Mendix Cloud zu verhindern, die durch diese Sicherheitslücke verursacht werden.“ Dennoch muss das Risiko durch ein Upgrade auf Version 2.17 gemindert werden.
Update 15.12.2021, Eine neue Sicherheitslücke (CVE-2021-45046) wurde in der ersten Korrektur der Log4Shell-Sicherheitslücke (log4j V2.15) gefunden. Wir empfehlen dringend, auf die neueste Version zu aktualisieren. Bitte überprüfen Sie die Apache Website für aktuelle Informationen.
Warum sollten Sie sich über diese Sicherheitsanfälligkeit Sorgen machen?
Die Log4Shell-Sicherheitslücke hat einen maximalen CVSS-Score von 10,0. Was macht sie so gefährlich? Es sind nicht viele Fähigkeiten erforderlich, um die Sicherheitsanfälligkeit auszunutzen. Es ist extrem einfach auszuführen. Der Angreifer kann Arbitrary Code auf jeder anfälligen Anwendung ausführen und diese Fähigkeit nutzen, um einen Angriff auszuführen. Dies macht es zu einer sehr gefährlichen Sicherheitslücke.
Die Sicherheitslücke ist sogar noch gefährlicher, da Hacker das Internet aktiv nach Servern durchsuchen, die sie ausnutzen können, was ihr eine Ausnutzungsbewertung als ausgereift einstuft. Techcrunch berichtet:
„Die Computer-Notfallteam (CERT) für Neuseeland, CERT der Deutschen Telekom, und die Graues Geräusch Webüberwachungsdienste haben alle davor gewarnt, dass Angreifer aktiv nach Servern suchen, die für Log4Shell-Angriffe anfällig sind.“
Aber jetzt kommt der interessante Teil, was ist, wenn Sie Mendix verwenden? Es ist nicht immer einfach, Programmierpraktiken und Sicherheitslücken auf Mendix-Anwendungen zu übertragen. Sollten Sie sich Sorgen machen oder nicht?
Kurz gesagt, ja, Sie sollten sich Sorgen machen und das ernst nehmen.
Wir beginnen mit den Auswirkungen auf die Mendix-Plattform selbst, konzentrieren uns dann auf Ihre Mendix-Anwendung und geben Ihnen einige Hinweise, was zu tun ist.
Wirkt sich die Log4Shell-Sicherheitslücke auf die Mendix-Plattform aus?
Mendix hat angegeben, dass die Mx-Laufzeit nicht von der Log4Shell-Sicherheitslücke betroffen ist, da sie nur die Log4j-API-Bibliothek verwenden, die von dem Exploit nicht betroffen ist.
Mendix hat sowohl auf ihrer Statusseite als auch auf der Slack-Community die folgende Ankündigung gemacht:
„Standardmäßig sind Mendix-Anwendungen nicht anfällig für diesen Exploit.
- Die Mendix-Runtime hängt nur von der log4j-api-Bibliothek ab, nicht von der log4j-core-Bibliothek, die die Klasse enthält, die ausgenutzt werden kann. Wie von den Entwicklern der Bibliothek angegeben: „Wenn Sie nur von log4j-api abhängig sind, sind Sie von dieser Sicherheitslücke nicht betroffen“.
- Nicht alle Java-Versionen sind für diesen Exploit anfällig. JDK-Versionen, die größer als 6u211, 7u201, 8u191 und 11.0.1 sind, scheinen von diesem Angriff nicht betroffen zu sein. Das liegt daran, dass diese Versionen gesetzt sind
com.sun.jndi.ldap.object.TrustURLCodeBase
zufalsch
standardmäßig. In der Mendix Cloud werden Apps auf Mendix 7 auf einer Java-Version ausgeführt, die höher als 8u191 (1.8.0.191) ist. Apps, die auf Mendix 8 und 9 laufen, werden auf einer Java-Version ausgeführt, die höher als 11.0.1 ist.
Wir untersuchen die anderen Teile der Plattform und werden in Kürze ein ausführlicheres Update veröffentlichen.
Wir identifizieren und bekämpfen aktiv Versuche, diese Sicherheitslücke in der Mendix Cloud auszunutzen.“
Die ursprüngliche Mendix-Nachricht.
Wir empfehlen, die neuesten Updates über die Mendix-Statusseite zu verfolgen: Status von Mendix Technology B.V..
Es scheint, dass die Mendix-Plattform selbst nicht betroffen ist, aber wir empfehlen, der Mendix-Statusseite zu folgen, bis Mendix die Untersuchung abgeschlossen hat.
Wenn die Log4Shell-Sicherheitslücke keine Auswirkungen auf die Mendix-Plattform hat, kann sie sich trotzdem auf meine Mendix-Anwendung auswirken?
Auch wenn die Mendix-Plattform selbst möglicherweise nicht betroffen ist und die log4j-Bibliothek keine Standardbibliothek der Mendix-Plattform ist. Es besteht immer noch die Möglichkeit, dass Ihre App die Sicherheitsanfälligkeit enthält, da die JAR-Bibliothek aus dem Mendix App Store heruntergeladen oder selbst hinzugefügt werden kann.
Wenn Sie ins Detail gehen, betrifft die Sicherheitsanfälligkeit die folgenden Versionen der log4j-Bibliothek <= 2.14.1. Einige Quellen weisen darauf hin, dass nur dann eine Sicherheitslücke besteht, wenn sie mit JDK-Versionen < als 6u211, 7u201, 8u191 und 11.0.1 verwendet wird. Dies setzt jedoch voraus, dass die Sicherheitsanfälligkeit nur durch eine bestimmte Methode ausgenutzt werden kann.
Aus Sicherheitsgründen empfehlen wir den folgenden Mindestschwellenwert, entweder auf die neueste Version der JAR-Datei zu aktualisieren, die die Sicherheitsanfälligkeit behebt, oder sie vollständig zu entfernen. Es macht keinen Sinn, es zu knapp zu machen.
Wie finde ich heraus, ob meine Anwendung dieses spezielle Glas enthält?
Es gibt verschiedene Möglichkeiten, dies herauszufinden.
- Sie können manuell im Userlib-Ordner Ihres Mendix-Projekts suchen. Zum Beispiel Mendix\ AppName-BranchName\ userlib\ und suchen Sie nach der Log4j-JAR-Datei.
- Sie können die Java-Bibliotheksfunktion im CLEVR Application Code Reviewer verwenden. ACR weist darauf hin, dass Sie eine kritische Sicherheitslücke haben, die auf dem CVSS-Standard basiert. Bitte lesen Sie unsere Produktdokumentation, um besser zu verstehen, wie unsere Java-Bibliotheksfunktion Ihnen hilft, die Sicherheit zu kontrollieren.
Ich habe das 'veraltete' log4j-Jar in meiner App; was nun?
Es gibt verschiedene Möglichkeiten, dieses Problem zu lösen. Lassen Sie mich jedoch zunächst betonen, dass eine JAR-Datei im Prinzip nur dann gefährlich ist, wenn sie von der Runtime ausgeführt wird. Daher besteht nur dann eine aktive Sicherheitslücke, wenn eine Java-Aktion in der Laufzeit das log4j verwendet. Entferne es trotzdem einfach aus Sicherheitsgründen und technischen Gründen, wenn du es nicht verwendest.
Benutzt du es?
Die meisten Mendix-Anwendungen enthalten Gläser, die nicht mehr verwendet werden. Wenn Sie beispielsweise Inhalte aus dem App Store entfernen, werden die Gläser nicht gelöscht. Sie müssen also zunächst beurteilen, ob Ihre Mendix-Anwendung das Jar verwendet. In den meisten Fällen können Sie im Userlib-Ordner sehen, ob eine Bibliothek noch verwendet wird und von welchem Modul die (*.requiredLib) Dateien betrachtet werden.
Ein bisschen mehr Arbeit, aber Sie können die Jars auch aus der Userlib in einen anderen Ordner verschieben, Ihre Anwendung starten, die Fehler überprüfen, welche Jars fehlen, und diese wieder verschieben. Nachdem Sie alle Fehler behoben haben, haben Sie alle von der Anwendung verwendeten Gläser hinzugefügt und effektiv alle unbenutzten Gläser entfernt.
Meine Anwendung verwendet das log4j-JAR; was nun?
Ihre Mendix-Anwendung verwendet die log4j-Bibliothek, daher müssen Sie auf die neueste Version des log4j-JARs aktualisieren, in der die Sicherheitsanfälligkeit behoben ist. Ungefähr gibt es zwei Situationen: Sie haben die Java-Aktion, die die Bibliothek verwendet, selbst erstellt oder Sie haben Inhalte aus dem App Store heruntergeladen.
Sie oder jemand im Unternehmen hat die Java-Aktion erstellt
Sie können die neueste Version der log4j-JAR-Datei herunterladen und installieren, die alte entfernen und die Java-Aktion entsprechend anpassen.
Inhalt des App Stores
Das kann schwieriger sein. Hier gibt es drei Möglichkeiten:
- Im Idealfall ist für den App Store-Inhalt eine neue Version verfügbar, in der die Sicherheitsanfälligkeit durch Aktualisierung der Jar behoben wurde. Hier müssen Sie den App Store-Inhalt aktualisieren und die alte JAR-Datei aus dem Userlib-Ordner löschen.
Im Folgenden haben Sie zwei Optionen, falls der App Store-Inhalt noch nicht aktualisiert wurde:
- Wenn der App Store-Inhalt noch nicht aktualisiert wurde, können Sie die Abhängigkeit manuell auf eine neuere Version aktualisieren und den Java-Code korrigieren. Bitte denken Sie daran, dass bei der Aktualisierung automatisch alle Änderungen an vorhandenen App Store-Inhalten überschrieben werden. Duplizieren Sie also zuerst das Modul und nehmen Sie dann Änderungen vor.
- Ist dies nicht der Fall, können Sie die Funktionalität mithilfe der log4j-Bibliothek entfernen oder löschen, indem Sie das Modul in der Mendix-Anwendung mithilfe der Bibliothek entfernen oder ausblenden, sodass es nicht gestartet wird oder/und nicht ausgenutzt werden kann.
Dies sollte als vorübergehende Lösung betrachtet werden. Wir empfehlen, zurück zum Inhalt des App Stores zu wechseln, sobald die Sicherheitsanfälligkeit behoben ist. Dies gewährleistet Wartbarkeit und zukünftigen Support.
Wir hoffen, dieser Blog hat Ihnen geholfen, das Risiko in Ihrer Mendix-Anwendung zu mindern. Die Situation zeigt deutlich, wie wichtig es ist, Ihre App regelmäßig auf bekannte Sicherheitslücken zu überprüfen. Wir empfehlen dringend, DevSecOps in Low-Code-Umgebungen anzuwenden, und die Verwendung unseres CLEVR Application Code Reviewer kann Ihnen das Leben erheblich erleichtern.
Bitte wenden Sie sich an CLEVR, wenn Sie Hilfe benötigen. Wir sind dabei, unser Produktportfolio gründlich zu durchsuchen, aber wenn wir aus irgendeinem Grund ein Problem übersehen haben, melden Sie es bitte an security@clevr.com.
Finden Sie heraus, wie CLEVR die Wirkung Ihres Unternehmens steigern kann
FAQ
Can't find the answer to your question? Just get in touch