Како скенирати и поправити рањивост Лог4ј?

Ranjivost Log4j predstavlja jedan od najozbiljnijih sigurnosnih izazova u modernim informacionim sistemima.

Logovanje je ključna funkcija savremenih aplikacija, a biblioteka za logovanje, Log4j, je lider u ovoj oblasti.

Ova biblioteka je prisutna u većini aplikacija, servisa i sistema. Shodno tome, sve aplikacije koje koriste Log4j su potencijalno ugrožene ovom ranjivošću otkrivenom prošle godine.

Usled sve većih problema sa sajber bezbednošću širom sveta, organizacije i pojedinci preduzimaju korake za zaštitu svojih aplikacija, sistema i podataka.

Kada je ova ranjivost otkrivena, to je dodatno uznemirilo stručnjake i kompanije.

Stoga je detektovanje i rešavanje Log4j ranjivosti od suštinske važnosti za zaštitu vaših podataka, mreže, reputacije i poverenja klijenata.

U ovom tekstu, razmotrićemo šta je tačno Log4j ranjivost, kao i korake za njeno otkrivanje i popravljanje.

Počnimo sa razumevanjem Log4j i njegovog značaja.

Šta je Log4j?

Log4j je open-source alatka napisana u Java programskom jeziku, prvenstveno namenjena za čuvanje, formatiranje i objavljivanje log zapisa generisanih od strane aplikacija i sistema, te njihovu analizu radi otkrivanja grešaka. Log zapisi mogu biti raznovrsni, od podataka o web stranici i pretraživaču, do tehničkih detalja sistema u kojem Log4j funkcioniše.

Umesto pisanja koda od nule, programeri mogu koristiti Log4j biblioteku, integrišući njen kod u svoje aplikacije.

Korišćenjem Log4j, programeri mogu pratiti sve događaje vezane za njihove aplikacije, uz precizne podatke logovanja. To im pomaže u monitoringu aplikacija, ranom otkrivanju problema i njihovom rešavanju pre nego što eskaliraju u veće teškoće u performansama i/ili bezbednosti.

Ovu biblioteku, baziranu na Javi, napisao je Ceki Gülcü i objavljena je 2001. godine pod Apache licencom 2.0. Ona koristi Java Naming and Directory Interface (JNDI) usluge kako bi omogućila aplikacijama komunikaciju sa drugim aplikacijama, kao što su LDAP, DNS, CORBA, itd., i da obezbedi funkciju imenovanja i direktorijuma za aplikacije zasnovane na Javi. Log4j ima tri komponente za obavljanje svojih zadataka:

  • Rukovaoci za snimanje zapisa
  • Izgledi za formatiranje log zapisa u različitim stilovima
  • Dodaci za objavljivanje log zapisa na različitim lokacijama

Log4j je, zapravo, jedna od najpoznatijih biblioteka za logovanje na internetu i koriste je organizacije iz različitih industrija i zemalja. Oni su integrisali ovu biblioteku u mnoge aplikacije, uključujući i vodeće cloud servise od strane Google, Microsoft, Apple, Cloudflare, Twitter, itd.

Njen developer, Apache Software Foundation, razvio je Log4j 2, nadogradnju na Log4j kako bi se rešili problemi pronađeni u prethodnim verzijama. Prošle godine je otkrivena ranjivost u Log4j, koja, ukoliko se ne adresira, može omogućiti napadačima da prodru u aplikacije i sisteme, kradu podatke, inficiraju mrežu i obavljaju druge zlonamerne aktivnosti.

Hajde da to bolje razumemo.

Šta je Log4Shell – Log4j ranjivost?

Log4Shell je kritična ranjivost u sajber bezbednosti u Log4j biblioteci, koja utiče na osnovnu funkcionalnost biblioteke. Ona omogućava napadaču da preuzme kontrolu nad uređajem ili aplikacijom povezanim na internet, kroz daljinsko izvršavanje koda. Kada to uspeju, oni mogu:

  • Pokrenuti bilo koji kod na uređaju ili sistemu
  • Pristupiti svim mrežama i podacima
  • Izmeniti ili šifrirati bilo koju datoteku na ugroženoj aplikaciji ili uređaju

Ovu ranjivost je prvi put prijavio 24. novembra 2021. Chen Zhaojun, istraživač bezbednosti u Alibabi (kineskom gigantu e-trgovine). Ranjivost je uticala na njihove Minecraft servere, što je Alibabin tim za bezbednost u oblaku otkrio 9. decembra.

Zatim je NIST objavio ovu ranjivost u Nacionalnoj bazi podataka o ranjivostima i nazvao je CVE-2021-44228. Apache Software Foundation je zatim ocenio ovu ranjivost sa 10 u CVSS ozbiljnosti. Ovo se retko dodeljuje i vrlo je ozbiljno jer ima potencijal da bude široko i lako eksploatisano, što dovodi do ogromne štete za organizacije i pojedince.

Apache je, kao odgovor, izdao zakrpu za ovu ranjivost, ali su i dalje neki delovi ostali nerešeni, što je dovelo do drugih ranjivosti:

  • CVE-2021-45046 koji je olakšao napade uskraćivanja usluge (DoS) putem JNDI pretrage
  • CVE-2021-45105 omogućava hakerima da kontrolišu informacije mape konteksta niti i izazivaju DoS napade interpretirajući kreirani string
  • CVE-2021-44832 utiče na sve verzije Log4j 2 putem daljinskog ubacivanja koda (RCE)

Kako funkcioniše Log4Shell?

Da biste razumeli ozbiljnost i štetu koju Log4Shell može da napravi, važno je saznati kako ova ranjivost Log4j funkcioniše.

Log4Shell ranjivost omogućava napadaču da daljinski ubaci bilo koji proizvoljni kod u mrežu i dobije potpunu kontrolu nad njom.

Ova sekvenca sajber napada počinje bibliotekom logovanja, kao što je Log4j, koja prikuplja i čuva informacije dnevnika. Ako ne postoji biblioteka za logovanje, svi podaci sa servera će biti arhivirani odmah nakon što se podaci prikupe.

Međutim, ako želite analizirati ove podatke ili preduzeti određene radnje na osnovu određenih log informacija, potrebna vam je biblioteka za logovanje da bi raščlanila podatke dnevnika pre arhiviranja.

Zbog Log4j ranjivosti, svaki sistem ili aplikacija koji koristi Log4j postaje ranjiv na sajber napade. Biblioteka logovanja izvršava kod na osnovu ulaznih podataka. Haker može naterati biblioteku dnevnika da izvrši štetan kod, jer im ranjivost omogućava da manipulišu ulazom.

U pozadini se dešava mnogo toga. Kada Log4j primi posebno kreiran string, on će pozvati LDAP server i preuzeti kod iz njegovog direktorijuma kako bi ga izvršio. Na ovaj način napadači mogu kreirati LDAP server za čuvanje zlonamernog koda koji im može pomoći da kontrolišu bilo koji server na kome se kod izvršava. Zatim će poslati string koji usmerava njihov zlonamerni kod na ciljanu aplikaciju ili sistem i preuzima potpunu kontrolu nad njim.

Dakle, na ovaj način se može iskoristiti ranjivost Log4j:

  • Napadač pronalazi server sa ranjivom verzijom Log4j.
  • Oni će poslati ciljanom serveru zahtev za dobijanje sa vezom ka svom zlonamernom LDAP serveru.
  • Ciljani server će se, umesto verifikacije zahteva, direktno povezati sa ovim LDAP serverom.
  • Napadači će sada poslati ciljanom serveru odgovor LDAP servera koji sadrži zlonamerni kod. Zbog ranjivosti Log4j-a, koja omogućava prijem koda i njegovo izvršavanje bez verifikacije, haker može iskoristiti ovu slabost da upadne na ciljni server i iskoristi povezane sisteme, mreže i uređaje.

Kako Log4j ranjivost može naškoditi korisnicima?

Log4j ranjivost je zabrinjavajuća, jer se koristi u širokom spektru softverskih aplikacija i sistema.

Pošto je logovanje ključna karakteristika većine softverskih aplikacija, a Log4j je vodeće rešenje u toj sferi, Log4j je prisutan u različitim softverskim sistemima.

Neke od popularnih usluga i aplikacija koje koriste Log4j su Minecraft, AWS, iCloud, Microsoft, Twitter, internet ruteri, alati za razvoj softvera, sigurnosni alati i tako dalje. Dakle, napadači mogu ciljati veliki broj aplikacija, usluga i sistema, od kućnih korisnika, programera koda, pružalaca usluga i drugih srodnih stručnjaka i pojedinaca.

Pored toga, ranjivost Log4j je izuzetno laka za napadača da iskoristi. Ceo proces zahteva manje veština, a ne nivo eksperta, da bi se izvršio napad. Zbog toga se povećava broj napada koji koriste ovu ranjivost.

Uticaj ranjivosti Log4j je:

  • DoS napadi
  • Napadi na lanac snabdevanja
  • Kopanje kriptovaluta
  • Injekcije zlonamernog softvera kao što su ransomvare i trojanski konji
  • Ubacivanje proizvoljnog koda
  • Daljinsko izvršavanje koda

I još mnogo toga.

Kao rezultat ovih napada, možete izgubiti kontrolu nad svojim aplikacijama, sistemima i uređajima, a vaši podaci mogu postati plen napadača koji mogu prodati vaše podatke, manipulisati njima ili ih izložiti javnosti. Takođe, vaše poslovanje može biti oštećeno u smislu privatnosti podataka o klijentima, poverenja, tajni organizacije, pa čak i vaše prodaje i prihoda, a da ne spominjemo rizike usklađenosti.

Prema izveštaju, više od 40% globalnih korporativnih mreža je doživelo napade zbog ove ranjivosti.

Dakle, čak i ako ne koristite nijednu ranjivu verziju Log4j-a u svojim aplikacijama, vaše integracije treće strane možda ga koriste, što vašu aplikaciju čini ranjivom na napade.

Imajte na umu da su sve verzije Log4j pre Log4j 2.17.0 pogođene; stoga morate nadograditi loger ako ga koristite. Takođe, poznati dobavljači na koje utiče ova Log4j ranjivost su Adobe, AWS, IBM, Cisco, VMware, Okta, Fortinet, itd. Ako koristite bilo koji od njih, pratite svoje aplikacije neprekidno i koristite sigurnosne sisteme da biste rešili probleme čim se pojave.

Kako otkriti programe na koje utiče Log4j i rešiti probleme

Log4Shell ranjivost ima ocenu 10 u CVSS. Dakle, svi problemi u Log4j još nisu zakrpljeni. Međutim, postoji šansa da vi ili vaš dobavljač treće strane koristite Log4j u svojoj aplikaciji.

Stoga, ukoliko želite da zaštitite svoje podatke, sisteme i mrežu, obavezno pratite određene korake sanacije.

#1. Ažurirajte svoju verziju Log4j

Ažuriranje vaše trenutne verzije Log4j na Log 4j 2.17.1 je najefikasnija tehnika sanacije, ukoliko želite da zaštitite svoj uređaj i aplikacije od napada kao rezultat Log4j ranjivosti.

Log4Shell je vrsta napada nultog dana koji potencijalno može uticati na vaš softverski ekosistem. Apache je ispravio neke od ranjivosti u nedavnim verzijama, ali ukoliko je vaš sistem bio kompromitovan pre nadogradnje, i dalje ste u opasnosti.

Stoga, uzimajući to u obzir, ne morate samo da nadogradite verziju već i da odmah započnete svoje procedure za reagovanje na incidente kako biste bili sigurni da nema ranjivosti u vašim sistemima i aplikacijama, kao i da ublažite napade. Takođe morate pregledati sve logove vašeg servera da biste pronašli indikatore kompromisa (IOC) i stalno nadgledati svoje sisteme i mrežu.

#2. Koristite najnovije zaštitne zidove i sigurnosne sisteme

Zaštitni zidovi kao što su zaštitni zid za web aplikacije (WAF) i zaštitni zidovi sledeće generacije mogu pomoći u zaštiti vašeg mrežnog perimetra od napadača, skeniranjem dolaznih i odlaznih paketa podataka i blokiranjem sumnjivih. Dakle, koristite najnovije zaštitne zidove u vašoj mreži i postavite stroga odlazna pravila na svojim serverima kako biste sprečili napade povezane sa ranjivošću Log4j.

Iako napadači mogu zaobići zaštitne zidove, i dalje ćete dobiti određeni stepen sigurnosti sa zaštitnim zidovima koji mogu blokirati zahteve napadača.

Pored toga, ažurirajte sve svoje sigurnosne sisteme, kao što su sistemi za detekciju upada (IDS), sistemi za prevenciju upada (IPS), itd., sa najnovijim potpisima i pravilima. Ovi sistemi će pomoći da se blokira ili filtrira RMI i LDAP saobraćaj od povezivanja sa zlonamernim LDAP serverom.

#3. Implementirati MFA

Podešavanje višefaktorske autentifikacije (MFA) u vašim aplikacijama i sistemu će obezbediti bolju sigurnost od napadača. To će obezbediti drugi sloj sigurnosti čak i ako napadač uspe da probije prvi sloj. To možete učiniti putem biometrije kao što su otisci prstiju, skeniranje šarenice itd., postavljanjem sigurnosnog pitanja ili omogućavanjem sigurnosnog PIN-a.

Korišćenje MFA će povećati poteškoće i vreme napadača za izvođenje potpunog napada. U međuvremenu, to vas može odmah obavestiti o incidentu kako biste mogli da preduzmete neophodne korake za sanaciju kada još budete imali vremena.

Pored toga, morate da primenite i stroge VPN politike da biste smanjili kršenje podataka. Ovo će omogućiti korisnicima da bezbedno pristupe vašim sistemima sa bilo kog mesta, bez straha od napadača.

#4. Promenite svojstva sistema

U slučaju da ne možete da nadogradite na najnoviju verziju Log4j biblioteke, odmah morate promeniti svojstva Java sistema, ukoliko koristite verziju u opsegu od Log4j 2.10 do Log4j 2.14.1.

Morate ga postaviti na način da sprečite pretragu koju napadači koriste da otkriju ranjivosti, a zatim pronađu načine da ih iskoriste.

#5. Uklonite JNDI

Razlog za ovu kritičnu sigurnosnu ranjivost leži u njenom dizajnu. Dodatak JNDI Lookup ima grešku u dizajnu kroz koju napadači mogu izvršiti napad.

JNDI se koristi za izvršavanje koda na osnovu ulaznih podataka u svom dnevniku, kojim svako može lako manipulisati, pošto loger prihvata svaki zahtev bez verifikacije.

Istraživači bezbednosti su otkrili da je ovaj dodatak uvek dozvoljavao neraščlanjene podatke od objavljivanja 2013. i da ih šalje u Log4j biblioteku.

Zbog toga je ranjivost Log4j sklona eksploataciji jednostavnim ubacivanjem stringa. Kada ga napadač unese, loger će prihvatiti operaciju zatraženu u stringu i izvršiti je odmah bez verifikacije.

Dakle, ukoliko želite da obezbedite svoje sisteme i aplikaciju, morate da onemogućite klasu – JndiLookup. Ovo će sprečiti loger da preduzme akciju na osnovu podataka logovanja.

Zapravo, JNDI pretraga je već onemogućena u Log4j 2.16.0 po podrazumevanom podešavanju, u pokušaju da se obezbede vaše aplikacije i sistemi.

Dakle, ukoliko koristite verziju Log4j nižu od 2.16.0, uverite se da ste onemogućili JNDI pretragu.

#6. Razgovarajte sa svojim prodavcima

Ako ste sve uradili kako treba, vaši zaštitni zidovi i sigurnosni sistemi su ažurirani, verzija Log4j nadograđena, JNDI pretraga onemogućena, itd., nemojte se još opuštati.

Čak i ako u svojim aplikacijama ne koristite ranjivu verziju Log4j-a, možda je koriste vaši nezavisni dobavljači. Dakle, nikada nećete saznati kako su vaša aplikacija ili sistem hakovani, jer je pravi problem bio u vašoj integraciji treće strane.

Stoga, razgovarajte sa svojim dobavljačima i uverite se da su i oni nadogradili Log4j na najnoviju verziju i primenili druge sigurnosne prakse o kojima je bilo reči.

#7. Koristite Log4j skener ranjivosti

Postoji mnogo alata za skeniranje Log4j ranjivosti dostupnih na tržištu, kako bi vam olakšali otkrivanje Log4j ranjivosti u vašim sistemima i aplikacijama.

Dakle, kada tražite ove alate, proverite njihove stope tačnosti, jer mnogi od njih generišu lažne pozitivne rezultate. Takođe, pronađite alat koji može da zadovolji vaše potrebe, jer se može fokusirati na identifikaciju Log4j ranjivosti, izveštavanje o izloženosti i otklanjanje ranjivosti.

Dakle, ako je vaš fokus otkrivanje, pronađite Log4j skener ranjivosti koji može da otkrije problem, ili koristite onaj koji može da otkrije i otkloni problem.

Neki od najboljih Log4j alata za skeniranje su:

  • Microsoft 365 Defender: Microsoft nudi niz sigurnosnih rešenja i alata koji će vam pomoći da otkrijete i sprečite zloupotrebe Log4j u vašoj mreži. Moći ćete da uočite daljinsko izvršavanje koda i pokušaje eksploatacije, štiteći vas od Log4j ranjivosti na Windows i Linux uređajima.
  • Amazon Inspector i AWS: Amazon je kreirao alat za skeniranje kako bi pronašao ranjivost Log4j u instancama Amazon EC2 i Amazon ECR.
  • CloudStrike Archive Scan Tool (CAST): CloudStrike je takođe napravio odličan alat za skeniranje za otkrivanje Log4j ranjivosti, kako bi vam pomogao da rešite probleme na vreme, pre nego što napadači mogu da je iskoriste.
  • Otkrivanje Google Cloud logovanja: Google-ovo rešenje za detekciju logova u oblaku vam omogućava da otkrijete zloupotrebe Log4j koristeći Logs Explorer. U ovom alatu možete kreirati upit za logovanje i skenirati potencijalne stringove za eksploataciju.
  • Google je takođe kreirao log4jscanner, skener sistema datoteka otvorenog koda za otkrivanje Log4j ranjivosti.
  • BurpSuite Log4j skener: Ovo je sigurnosni dodatak za profesionalce i preduzeća koji im pomaže da otkriju Log4j ranjivost.
  • Huntress Log4Shell tester ranjivosti: Ovaj alat nasumično generiše jedinstveni identifikator koji možete koristiti dok testirate svoja polja za unos. Nakon što pronađe ranjivost u aplikaciji ili polju za unos, njegov sigurni LDAP server će trenutno prekinuti zlonamernu vezu i zaštititi vas.
  • WhiteSource Log4j Detect: WhiteSource je napravio besplatnu CLI alatku, WhiteSource Log4j Detect, koja se nalazi na GitHub-u kako bi vam pomogla da otkrijete i popravite propuste Log4j – CVE-2021-445046 i CVE-2021-44228.
  • JFrog alati za skeniranje otvorenog koda za Log4j: JFrog je kreirao različita rešenja i alate otvorenog koda za pronalaženje propusta Log4j u vašim binarnim datotekama i izvornom kodu.

Zaključak

Log4j ranjivost je kritično sigurnosno pitanje. Pošto se ova biblioteka za logovanje široko koristi u raznim aplikacijama i sistemima, ranjivost Log4j je postala široko rasprostranjena, omogućavajući napadačima da iskoriste širok spektar sistema i aplikacija.

Dakle, ukoliko želite da zaštitite svoje sisteme i aplikacije od ove ranjivosti, nadogradite Log4j biblioteku na najnoviju verziju i primenite najbolje sigurnosne prakse o kojima smo govorili.