Log4Shell, interreta vundebleco, lastatempe influis milionojn da maŝinoj. Log4j, obskura sed preskaŭ ĉiea programaro, kaŭzas ĝin.
Log4j estas uzata por registri ĉiujn agojn, kiuj okazas malantaŭ la scenoj en diversaj komputilaj sistemoj.
Ĝi baziĝas sur malfermfonta registradbiblioteko, kiu estas uzata de entreprenoj kaj eĉ registaraj organizoj en plej multaj aplikoj.
Estante unu el la plej malbonaj cibersekurecaj truoj iam malkovritaj, estas grave protekti viajn sistemojn kontraŭ ĉi tiu vundebleco. Sed kiel?
Ni esploru la vundeblecon de Log4j detale kaj ĉiujn eblajn solvojn por ĝi.
Kio estas Log4j?
Log4j estas an malfermfonto registra kadro kiu ebligas programistojn registri malsamajn datumojn ene de siaj aplikoj. Ĝi estas komponanto de la projekto Apache Logging Services, kiu estas prizorgita de la Apache Programaro Fondaĵo.
Centoj da retejoj kaj aplikaĵoj uzas Log4j por fari kritikajn operaciojn kiel ekzemple registri datumojn por senararigado kaj aliaj uzoj.
Kiam vi enigas aŭ alklakas malbonan interretan ligilon kaj ricevas 404-eraran avizon, ĉi tio estas ofta ekzemplo de Log4j ĉe la laboro. La retservilo, kiu administras la domajnon de la retligilo, kiun vi provis aliri, informas vin, ke tia retpaĝo ne ekzistas. Ĝi ankaŭ registras la eventon en Log4j por la sistemadministrantoj de la servilo.
Ĉie en softvaraĵoj, similaj diagnozaj signaloj estas utiligitaj. En la interreta ludo Minecraft, ekzemple, la servilo uzas Log4j por registri agadon kiel totalan RAM uzatan kaj uzantajn instrukciojn senditajn en la konzolon.
Kiel okazas la vundebleco?
Serĉoj estas nova funkcio enkondukita en Log4j 2.0, kiu helpas korpigi pliajn informojn en protokolaj enskriboj. Unu el ĉi tiuj serĉoj estas la serĉo JNDI (Java Naming and Directory Interface), kio estas Java API por komuniki kun adresara servo.
Uzante ĉi tiun aliron, internaj uzantidentigiloj povas esti mapitaj al faktaj uzantnomoj. Ĉi tiu demando elmontras la lastatempe malkovritan RCE-vundeblecon, ĉar unu el la datumtipoj liveritaj de la LDAP-servilo estas URI montranta al Java klaso, kiu tiam estas ŝarĝita en memoron kaj prizorgita de la kazo Log4j.
Pro malforto en la eniga validumado de la biblioteko Log4j, eblas injekti arbitran LDAP-servilon de nefidinda fonto. Ĉar programistoj supozas, ke datumoj senditaj al protokoloj estos traktataj kiel klarteksto, neniu ekstra enigvalidigo estas entreprenita, kaj danĝera uzanta enigo eniras la protokolojn.
Protokolo-deklaro povus aspekti jene:
Malica uzanto nun enigus JNDI-serĉon rilatantan al friponeca LDAP-servilo en URL-parametron. La serĉo de JNDI estus kiel sekvas:
La Biblioteko Log4j tiam parolas kun ĉi tiu LDAP-servilo ĉe attacker.com por akiri dosierujan informojn, inkluzive de valoroj por la Java Factory kaj Java Codebase.
Ĉi tiuj du valoroj inkluzivas la Java-klason de la atakanto, kiu tiam estas ŝarĝita en memoron kaj ekzekutita de la kazo Log4j, kompletigante la kodan ekzekuton.
Kiu riskas?
La vundebleco de Log4j estas nekredeble larĝa, influante komercajn aplikojn, enkonstruitajn aparatojn kaj iliajn subsistemojn. Afektaj programoj inkluzivas Cisco Webex, Minecraft kaj FileZilla FTP.
Tamen ĉi tio tute ne estas tuta listo. La difekto eĉ efikas la helikopmision Ingenuity Mars 2020, kiu uzas Apache Log4j por registrado de eventoj.
La sekureca komunumo kompilis a listo de vundeblaj sistemoj. Gravas noti, ke ĉi tiuj listoj estas kontinue ĝisdatigitaj, do se certa programo aŭ sistemo ne estas prezentita, ne supozu, ke ĝi ne estas tuŝita.
Eksponiĝo al ĉi tiu vundebleco estas sufiĉe verŝajna, kaj eĉ se specifa te stacknika stako ne aplikas Java, sekurecaj oficuloj devus atendi kritikajn provizantoj, SaaS-provizantoj, nubaj gastigaj provizantoj kaj retservilprovizantoj fari tion.
Kiel kontroli la vundeblecon de Log4j?
La unua paŝo estas determini ĉu atako jam okazis. Vi povas fari tion kontrolante la sistemajn protokolojn por RCE-utilŝarĝaj fragmentoj.
Se serĉo de terminoj kiel "jndi", "ldap", aŭ "$::" donas iujn protokolojn, sekurecaj esploristoj devus esplori plu por vidi ĉu ĝi estis legitima atako aŭ nur fingrospurado.
Multaj atakoj en natura medio estis malkovritaj kiuj ne liveris iujn ajn damaĝajn utilajn ŝarĝojn. Tamen, ili estis efektivigitaj de sekurecaj fakuloj por determini kiom da programoj estis vundeblaj al ĉi tiu atako.
La sekva paŝo estas uzi la bibliotekon Log4j por identigi ĉiujn projektojn. Se versioj inter 2.0-beta9 kaj 2.14.1 estas uzataj, la projekto povas esti susceptible.
Konsiderante la malfacilecon por determini kie ĉi tiu vundebleco ekzistas, povas esti preferinde supozi, ke la projekto estas sentema kaj ke ĝisdatigi la bibliotekon estas la plej bona procedmaniero por forigi la danĝeron de koda ekzekuto.
La projekto ne estas vundebla se la uzata versio estas malpli ol 2.0-beta 9, kvankam la biblioteko Log4j ankoraŭ devus esti ĝisdatigita ĉar versioj en la gamo 1.x estas malnovaj kaj ne plu ricevas ĝisdatigojn.
Ĉu akceptebla projekto estas malkovrita, estas konsilite, ke ĝi estu kontrolita por vidi ĉu iu ajn informo registrita per Log4j enhavas informojn, kiujn la uzanto povas ŝanĝi. URLoj, petaj parametroj, kaplinioj kaj kuketoj estas ekzemploj de ĉi tiuj datumoj. Se unu el ĉi tiuj estas registrita, la projekto estas en danĝero.
Ĉi tiu scio povas helpi vin pliprofundiĝi en la sistemajn protokolojn kaj determini ĉu via retejo jam estis atakita.
Estas senpagaj interretaj iloj, kiuj povas detekti ĉu retejo-apliko estas vundebla. Unu el ĉi tiuj programoj estas Log4Shell ĉasistino. Ĝi estas malfermfonta kaj havebla sur GitHub.
Se malkovras vundebla areo de kodo en la reta aplikaĵo, la utila ŝarĝo provizita de la malkaŝita ilo povas esti uzata por injekti ĝin en la retejon. La testa ilo malkaŝus la ligojn faritajn inter via TTT-aplikaĵo kaj ilia LDAP-servilo se la vundebleco estus ekspluatata.
Solvoj por ripari la vundeblecon de Log4j
La unua paŝo estas ĝisdatigi Log4j, kion vi povas fari uzante la normalajn pakaĵadministrilojn aŭ elŝutante ĝin rekte de ĉi tiu. paĝo.
Eblas ankaŭ malpliigi la ekspluateblecon de la vundebleco agordante la mediovariablon FORMAT MSG NO LOOKUPS al vera. Ĉi tiu kontraŭrimedo tamen aplikeblas nur al versioj de Log4j pli grandaj ol aŭ egalaj al 2.10.
Ni nun konsideru alternativajn elektojn.
1. Solvoj por Log4j versio 2.17.0
Estas certe forte konsilite uzi Log4j-version 2.15.0 por protekti kontraŭ Log4Shell, tamen, se tio ne eblas, aliaj solvoj estas disponeblaj.
Versioj 2.7.0 kaj pli postaj de Log4j: Estas fareble protekti kontraŭ ajna atako ŝanĝante la formaton de la eventoj registritaj uzante la sintakson de procento m nolookups por la datumoj liveritaj de la uzanto. Ĉi tiu ĝisdatigo postulas redakti la agordan dosieron Log4j por generi novan version de la programo. Kiel rezulto, antaŭ deploji ĉi tiun novan version, la teknikaj kaj funkciaj validaj stadioj devas esti ripetitaj.
Log4j-versioj 2.10.0 kaj poste: Eblas ankaŭ protekti kontraŭ ajna atako agordante la agordan parametron log4j2.formatMsgNoLookups al vera, ekzemple, kiam oni ekfunkciigas la Java virtualan maŝinon per la opcio -Dlog4j2." formatMsgNoLookups = vera, Alia opcio estas forigi la klason JndiLookup el la argumento de klasvoja, kiu forigos la ĉefan atakvektoron (la esploristoj ne forĵetas la eblecon de alia atakvektoro).
Amazon Retejaj Servoj disponigas varman diakilon, kiu "devas esti uzata je via propra risko". Aliaj "teknikoj", kiel Logout4Shell, kiu "uzas ĉi tiun vundeblecon kontraŭ si mem", estis publikigitaj. La fakulo pri sekureco pridubas la laŭleĝecon de ĉi tiu movo, kiu implikas "haki maŝinon por ripari ĝin."
2. La problemo estis solvita en Log4j v2.17.0.
Por versioj pli grandaj ol 2.10: Log4j2.formatMsgNoLookups estu agordita al vera.
Por versioj 2.0 ĝis 2.10.0: Rulu la sekvan komandon por forigi la LDAP-klason de Log4j.
Log4j2.formatMsgNoLookups devus esti agordita al vera en la sistemaj agordoj.
Mildigo en JVM
Mildigo kun JVM-parametroj ne plu estas eblo. Aliaj mildigaj metodoj daŭre estas sukcesaj. Ĝisdatigu al Log4j versio 2.17.0 se eble. Estas migradgvidilo disponebla por Log4j v1.
Se ĝisdatigo ne eblas, certigu, ke la klientflankaj kaj servilflankaj komponantoj havas la -Dlog4j2.formatMsgNoLookups = veran sisteman posedaĵon aro.
Bonvolu noti, ke Log4j v1 atingis sian finon de vivo (EOL) kaj ne plu ricevos cimojn. Aliaj RCE-vektoroj ankaŭ estas sentemaj al Log4j v1. Tial ni instigas, ke vi ĝisdatigu al Log4j 2.17.0 kiel eble plej baldaŭ.
3. Mildigaj mezuroj
Nunaj ekspluatoj ne povas funkcii eĉ se Log4j estas sentema en iuj okazoj, kiel se la gastiga maŝino rulas Java-version pli altan ol 6u212, 7u202, 8u192 aŭ 11.0.2.
Ĉi tio ŝuldiĝas al pli bona protekto de la ŝarĝa klaso de malproksima klaso de Java Naming and Directory Interface (JNDI) en nunaj versioj, kio estas necesa por ke la atako funkciigu.
Krome, kun Log4j-versioj pli grandaj ol 2.10, la problemo povas esti evitita fiksante la formatMsgNoLookups sistemvaloron al vera, provizante la JVM-argumenton -Dlog4j2.formatMsgNoLookups = true, aŭ forigante la JndiLookup klason de la klaspado.
Intertempe, ĝis la vundeblaj okazoj estas fiksitaj, la vundebleco povas esti traktita uzante la teknikojn sube:
- Agordu la sisteman posedaĵon log4j2.formatMsgNoLookups al vera por >=2.10.
- Agordu la medio-opcion LOG4J FORMAT MSG NO LOOKUPS al vera por >=2.10.
- Forigu JndiLookup.class de la klasvojo por 2.0-beta9 al 2.10.0: zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
Unu rekomendinda plej bona praktiko estas limigi elirtrafikon al la interreto nur al la taŭgaj havenoj.
Kvankam la plej multaj atakoj en la kampo estas liveritaj per HTTP, la vundebleco povus esti ekspluatata per iu ajn protokolo, kiu registras uzantajn enigajn datumojn per Log4j.
Tamen, ĝisdatigi al log4j 2.17.0 estas la plej bona rimedo ĉar iu povas malkovri plian aliron al la afero. Krome, multaj eldonejoj kaj produktantoj anoncis plibonigojn al siaj servoj aŭ programoj.
4. Log4Shell vundebleco diakilo
Log4j estas ĉiea, precipe nun kiam la vundebleco estas ekspluatata. Por resumi, ĉio, kion vi devas fari, estas inkluzivi la sekvajn signojn en la protokolojn inspektitaj de Log4j.
Kaj ĉi tio elŝutos kaj ekzekutos la Java-dosieron situantan ĉe la fino de la URL. Ĝi estas tiel simpla kiel drameca.
Kiel vi konscias, estas grave ĝisdatigi log4j al versio >= 2.17.0 por solvi ĉi tiun vundeblecon de Log4Shell (CVE-2021-44228).
Se ĉi tio ne eblas:
Por aplikaĵoj, kiuj uzas Log4j-bibliotekan versiojn 2.10.0 kaj postajn, ankaŭ eblas protekti kontraŭ ajna atako agordante la agordan parametron log4j2.formatMsgNoLookups al vera, ekzemple, dum lanĉado de la Java virtuala maŝino per la -Dlog4j2.formatMsgNoLookups = true opcio.
Alia opcio estas forigi la klason JndiLookup de la argumento de klasvoja, kiu forigos la ĉefan atakvektoron (la esploristoj ne ekskludas la ekziston de alia atakvektoro).
noto
Organizoj, kiuj hezitas aŭ ne volas fari alĝustigojn al akcepteblaj sistemoj (aŭ kiuj nur volas instali ekstrajn sekurigilojn) devus pensi pri:
- Certigu, ke la tuta trafiko estas direktita per iSensor/WAF/IPS. Ĉi tio povas malhelpi la atakon akiri aliron al la sistemo.
- Limigi la kvanton de trafiko kiu povas atingi la akcepteblan sistemon Se la sistemo ne bezonas esti konektita al la interreto, limigu aliron al nur esencaj kaj fidindaj IPS kaj intervaloj.
- Reduktante la rajtigitan eksiĝintan trafikon de la gastiganto. Ĉar ĉi tiu atako funkcias per konekto al fripona servilo, ĉiuj superfluaj IP-adresoj kaj havenoj devus esti blokitaj sur fajroŝirmilo.
- Se la servo ne plu estas bezonata, ĝi devus esti malŝaltita ĝis riparo estas preta.
konkludo
La difektoj de Log4j ŝokis nian komunumon kaj rememorigis al ni ĉiujn, kiel ni dependas de malfermfonta programaro.
Log4j estas unika. Ĝi estas nek operaciumo, nek retumilo, nek programaro. Prefere, ĝi estas tio, kion programistoj nomas biblioteko, pakaĵo aŭ kodmodulo. Ĝi nur servas unu celon, tio estas, konservi registron pri tio, kio okazas en servilo.
Homoj, kiuj skribas kodon, preferas koncentriĝi pri tio, kio karakterizas sian programaron. Ili ne interesiĝas reinventi la radon. Kiel rezulto, ili dependas de amaso da ekzistantaj kodbibliotekoj, kiel ekzemple Log4j.
La modulo Log4j devenas de Apache, la plej vaste uzata retservila programaro. Tial ĝi povas esti malkovrita sur milionoj da serviloj. Sekve, pliigante la sekurecajn minacojn.
Mi esperas, ke la supraj solvoj helpos vin konservi viajn aparatojn sekuraj.
Restu agordita al HashDork por pliaj helpemaj informoj de la teknologia mondo.
Lasi Respondon