Bab lan Paragraf[Singidaken][Tampilake]
Log4Shell, kerentanan internet, bubar kena pengaruh mayuta-yuta mesin. Log4j, piranti lunak sing ora jelas nanging meh ana ing endi wae, nyebabake.
Log4j digunakake kanggo nyathet kabeh tumindak sing kedadeyan ing mburi layar ing macem-macem sistem komputer.
Iki adhedhasar perpustakaan logging sumber terbuka sing digunakake dening bisnis lan malah organisasi pemerintah ing umume aplikasi.
Dadi salah sawijining bolongan keamanan cyber paling awon sing durung ditemokake, penting banget kanggo nglindhungi sistem sampeyan saka kerentanan iki. Nanging carane?
Ayo goleki kerentanan Log4j kanthi rinci lan kabeh solusi sing bisa ditindakake.
Apa Log4j?
Log4j iku sawijining Open-sumber kerangka logging sing ngidini pangembang piranti lunak ngrekam data sing beda-beda ing aplikasi kasebut. Iki minangka komponèn saka proyek Layanan Logging Apache, sing dikelola dening Apache Software Foundation.
Atusan situs web lan aplikasi nggunakake Log4j kanggo nindakake operasi kritis kayata logging data kanggo debugging lan panggunaan liyane.
Nalika sampeyan ngetik utawa ngeklik link online sing ora apik lan entuk kabar kesalahan 404, iki minangka conto Log4j sing asring digunakake. Server web sing mbukak domain link web sing sampeyan coba akses ngandhani yen ora ana kaca web kasebut. Iku uga log acara ing Log4j kanggo administrator sistem server.
Sajrone program piranti lunak, sinyal diagnostik sing padha digunakake. Ing game online Minecraft, contone, server nggunakake Log4j kanggo log kegiatan kayata total RAM digunakake lan instruksi pangguna dikirim menyang console.
Kepiye kerentanan kasebut kedadeyan?
Lookups minangka fitur anyar sing dikenalake ing Log4j 2.0, sing mbantu nggabungake informasi tambahan ing entri log. Salah sawijining telusuran kasebut yaiku JNDI (Java Naming and Directory Interface) lookup, yaiku API Java kanggo komunikasi karo layanan direktori.
Nggunakake pendekatan iki, ID pangguna internal bisa dipetakan menyang jeneng pangguna sing nyata. Pitakonan iki mbabarake kerentanan RCE sing mentas ditemokake, amarga salah sawijining jinis data sing diwenehake dening server LDAP yaiku URI sing nuding menyang kelas Java, sing banjur dimuat ing memori lan ditindakake dening instance Log4j.
Amarga kekirangan ing validasi input perpustakaan Log4j, bisa nyuntikake server LDAP kasepakatan saka sumber sing ora dipercaya. Amarga pangembang nganggep yen data sing dikirim menyang log bakal ditangani minangka teks biasa, ora ana validasi input tambahan sing ditindakake, lan input pangguna sing mbebayani mlebu ing log.
Pernyataan log bisa katon kaya iki:
Pangguna ala saiki bakal nglebokake panelusuran JNDI sing nuduhake server LDAP nakal ing parameter URL. Panelusuran JNDI bakal kaya ing ngisor iki:
Pustaka Log4j banjur ngobrol karo server LDAP iki ing attacker.com kanggo entuk informasi direktori, kalebu nilai kanggo Pabrik Java lan Java Codebase.
Nilai loro iki kalebu kelas Java penyerang, sing banjur dimuat ing memori lan dieksekusi dening conto Log4j, ngrampungake eksekusi kode.
Sapa sing duwe risiko?
Kerentanan Log4j jembar banget, mengaruhi aplikasi bisnis, piranti sing dipasang, lan subsisteme. Aplikasi sing kena pengaruh kalebu Cisco Webex, Minecraft, lan FileZilla FTP.
Nanging, iki dudu dhaptar kabeh. Cacat kasebut malah nyebabake misi helikopter Ingenuity Mars 2020, sing nggunakake Apache Log4j kanggo ngrekam acara.
Komunitas keamanan wis nyusun a dhaftar sistem ngrugekke. Penting kanggo dicathet yen dhaptar iki terus-terusan dianyari, dadi yen program utawa sistem tartamtu ora ditampilake, aja nganggep manawa ora kena pengaruh.
Pajanan kanggo kerentanan iki cukup kamungkinan, lan malah yen tartamtu tumpukan tech ora ngetrapake Java, eksekutif keamanan kudu ngarepake sistem pemasok kritis, panyedhiya SaaS, panyedhiya hosting awan, lan panyedhiya server web.
Kepiye cara mriksa kerentanan Log4j?
Langkah pisanan yaiku kanggo nemtokake manawa serangan wis kedadeyan. Sampeyan bisa nindakake kanthi mriksa log sistem kanggo pecahan muatan RCE.
Yen nggoleki istilah kaya "jndi", "ldap", utawa "$::" ngasilake log apa wae, peneliti keamanan kudu njelajah luwih lanjut kanggo ndeleng manawa serangan kasebut sah utawa mung sidik jari.
Akeh serangan ing alam bébas ditemokake sing ora ngirim muatan sing mbebayani. Nanging, padha ditindakake dening para ahli keamanan kanggo nemtokake jumlah aplikasi sing rawan serangan iki.
Langkah sabanjure nggunakake perpustakaan Log4j kanggo ngenali kabeh proyek. Yen versi antarane 2.0-beta9 lan 2.14.1 digunakake, project bisa rentan.
Amarga angel nemtokake manawa ana kerentanan iki, luwih becik nganggep proyek kasebut rentan lan nganyari perpustakaan minangka cara paling apik kanggo mbusak bebaya eksekusi kode.
Proyèk iki ora ngrugekke yen versi digunakake kurang saka 2.0-beta 9, sanajan perpustakaan Log4j isih kudu nganyari amarga versi ing sawetara 1.x lawas lan ora ana maneh nganyari.
Apa proyek sing rentan ditemokake, disaranake supaya dipriksa manawa ana informasi sing dicathet nggunakake Log4j ngemot informasi sing bisa diganti pangguna. URL, parameter panjalukan, header, lan cookie minangka conto data iki. Yen salah sijine dicathet, proyek kasebut ana ing bebaya.
Kawruh iki bisa mbantu sampeyan nyelidiki log sistem lan nemtokake manawa aplikasi web sampeyan wis diserang.
Ana alat online gratis sing bisa ndeteksi yen aplikasi web rentan. Salah sawijining program kasebut yaiku Log4Shell pamburu. Iku mbukak-sumber lan kasedhiya ing GitHub.
Yen area kode sing rawan ing aplikasi online ditemokake, muatan sing diwenehake dening alat sing diungkapake bisa digunakake kanggo nyuntikake menyang aplikasi web. Alat panguji bakal mbukak sambungan sing digawe ing antarane aplikasi web lan server LDAP yen kerentanan kasebut dieksploitasi.
Solusi kanggo ndandani kerentanan Log4j
Langkah pisanan yaiku nganyari Log4j, sing bisa ditindakake kanthi nggunakake manajer paket normal utawa kanthi ndownload langsung saka iki. Kaca.
Sampeyan uga bisa nyuda exploitability kerentanan kanthi nyetel variabel lingkungan FORMAT MSG NO LOOKUPS dadi bener. Nanging, countermeasure iki mung ditrapake kanggo versi Log4j sing luwih gedhe utawa padha karo 2.10.
Ayo saiki nimbang opsi alternatif.
1. Workarounds kanggo Log4j versi 2.17.0
Iku mesthi banget menehi saran kanggo nggunakake Log4j versi 2.15.0 kanggo nglindhungi saka Log4Shell, Nanging, yen iki ora bisa, solusi liyane kasedhiya.
Versi 2.7.0 lan luwih anyar saka Log4j: Sampeyan bisa nglindhungi saka serangan apa wae kanthi ngganti format acara sing bakal dicathet nggunakake sintaks persen m nolookups kanggo data sing diwenehake dening pangguna. Nganyari iki mbutuhake nyunting file konfigurasi Log4j kanggo ngasilake versi program anyar. Akibaté, sadurunge masang versi anyar iki, tahap validasi teknis lan fungsional kudu diulang.
Log4j versi 2.10.0 lan luwih anyar: Sampeyan uga bisa nglindhungi saka serangan apa wae kanthi nyetel parameter konfigurasi log4j2.formatMsgNoLookups dadi bener, contone, nalika miwiti mesin virtual Java kanthi pilihan -Dlog4j2. formatMsgNoLookups = bener, Pilihan liyane kanggo mbusak kelas JndiLookup saka bantahan classpath, kang bakal mbusak vektor serangan utama (peneliti ora aturan metu kamungkinan saka vektor serangan liyane).
Layanan Web Amazon nyedhiyakake hotpatch sing "kudu digunakake kanthi resiko dhewe." "Teknik" liyane kayata Logout4Shell, sing "nggunakake kerentanan iki kanggo awake dhewe," wis diterbitake. Pakar keamanan takon babagan legalitas pamindhahan iki, sing kalebu "meretas mesin kanggo ndandani."
2. Masalah wis ditanggulangi ing Log4j v2.17.0.
Kanggo versi luwih saka 2.10: Log4j2.formatMsgNoLookups kudu disetel dadi bener.
Kanggo versi 2.0 nganti 2.10.0: Jalanake printah ing ngisor iki kanggo mbusak kelas LDAP saka Log4j.
Log4j2.formatMsgNoLookups kudu disetel dadi bener ing setelan sistem.
Mitigasi ing JVM
Mitigasi karo paramèter JVM ora dadi pilihan. Cara mitigasi liyane terus sukses. Nganyarke menyang Log4j versi 2.17.0 yen bisa. Ana pandhuan migrasi kasedhiya kanggo Log4j v1.
Yen nganyari ora bisa, priksa manawa ing klien-sisih lan komponen server-sisih duwe -Dlog4j2.formatMsgNoLookups = pesawat property sistem bener.
Elinga yen Log4j v1 wis tekan pungkasane urip (EOL) lan ora bakal nampa perbaikan bug maneh. Vektor RCE liyane uga rentan kanggo Log4j v1. Mula, kita ngajak sampeyan nganyarke menyang Log4j 2.17.0 sanalika bisa.
3. Langkah-langkah mitigasi
Eksploitasi saiki ora bisa digunakake sanajan Log4j rentan ing sawetara kasus, kayata yen mesin host mbukak versi Java sing luwih dhuwur tinimbang 6u212, 7u202, 8u192, utawa 11.0.2.
Iki amarga luwih apik Java Naming lan Directory Interface (JNDI) pangayoman loading kelas remot ing versi saiki, kang perlu kanggo serangan kanggo operate.
Salajengipun, karo versi Log4j luwih gedhe saka 2.10, Jeksa Agung bisa ngetokake bisa nyingkiri dening nyetel Nilai sistem formatMsgNoLookups kanggo bener, nyedhiyani bantahan JVM -Dlog4j2.formatMsgNoLookups = bener, utawa mbusak kelas JndiLookup saka classpath.
Ing sawetoro wektu, nganti kedadeyan sing rawan didandani, kerentanan kasebut bisa diatasi kanthi nggunakake teknik ing ngisor iki:
- Setel properti sistem log4j2.formatMsgNoLookups dadi bener kanggo >=2.10.
- Setel pilihan lingkungan FORMAT LOG4J MSG NO LOOKUPS dadi bener kanggo >=2.10.
- Mbusak JndiLookup.class saka classpath kanggo 2.0-beta9 kanggo 2.10.0: zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
Salah sawijining praktik paling apik sing disaranake yaiku mbatesi lalu lintas egress menyang internet mung ing port sing cocog.
Sanajan umume serangan ing lapangan dikirim liwat HTTP, kerentanan kasebut bisa dimanfaatake liwat protokol apa wae sing nyathet data input pangguna nggunakake Log4j.
Nanging, nganyari log4j 2.17.0 minangka obat sing paling apik amarga ana sing bisa nemokake pendekatan tambahan kanggo masalah kasebut. Kajaba iku, akeh penerbit lan pabrikan wis ngumumake perbaikan layanan utawa aplikasi.
4. Log4Shell tembelan kerentanan
Log4j ana omnipresent, utamane saiki kerentanan kasebut dieksploitasi. Kanggo ngringkes, sampeyan mung kudu nyakup karakter ing ngisor iki ing log sing dipriksa dening Log4j.
Lan iki bakal ngundhuh lan nglakokake file Java sing ana ing mburi URL. Iku minangka langsung minangka dramatis.
Kaya sing sampeyan ngerteni, penting banget kanggo nganyarke log4j menyang versi> = 2.17.0 kanggo ngatasi kerentanan Log4Shell iki (CVE-2021-44228).
Yen iki ora bisa:
Kanggo aplikasi sing nggunakake versi perpustakaan Log4j 2.10.0 lan mengko, iku uga bisa kanggo nglindhungi saka serangan sembarang kanthi nyetel parameter konfigurasi log4j2.formatMsgNoLookups kanggo bener, Contone, nalika miwiti mesin virtual Jawa karo -Dlog4j2.formatMsgNoLookups = bener pilihan.
Pilihan liyane yaiku mbusak kelas JndiLookup saka argumen classpath, sing bakal mbusak vektor serangan utama (peneliti ora ngilangi anane vektor serangan liyane).
cathetan
Organisasi sing ragu-ragu utawa ora gelem nggawe pangaturan kanggo sistem sing rentan (utawa sing pengin nginstal pengaman ekstra) kudu mikir babagan:
- Priksa manawa kabeh lalu lintas diarahake liwat iSensor/WAF/IPS. Iki bisa nyegah serangan saka entuk akses menyang sistem.
- Matesi jumlah lalu lintas sing bisa tekan sistem sing rentan Yen sistem ora perlu disambungake menyang internet, matesi akses menyang IPS lan kisaran sing penting lan bisa dipercaya.
- Ngurangi lalu lintas metu sing sah saka host. Amarga serangan iki beroperasi kanthi nyambungake menyang server nakal, kabeh alamat IP lan port sing berlebihan kudu diblokir ing firewall.
- Yen layanan ora dibutuhake maneh, layanan kasebut kudu dipateni nganti ndandani siap.
kesimpulan
Cacat Log4j nggumunake komunitas kita lan ngelingake kita kabeh kepiye gumantung ing piranti lunak sumber terbuka.
Log4j unik. Iku dudu sistem operasi, utawa browser, utawa piranti lunak. Nanging, iku sing diarani programer minangka perpustakaan, paket, utawa modul kode. Iku mung serves siji waé, yaiku, nyimpen rekaman apa sing kedadeyan ing server.
Wong sing nulis kode luwih seneng fokus ing apa sing ndadekake piranti lunak kasebut khusu. Padha ora kasengsem ing reinventing wheel . Akibaté, padha gumantung ing plethora perpustakaan kode sing wis ana, kayata Log4j.
Modul Log4j asale saka Apache, piranti lunak server web sing paling akeh digunakake. Mulane bisa ditemokake ing mayuta-yuta server. Mangkono, nambah ancaman keamanan.
Muga-muga solusi ing ndhuwur mbantu supaya piranti sampeyan aman.
Tetep dirungokake HashDork kanggo informasi sing luwih migunani saka jagad teknologi.
Ninggalake a Reply