RegreSSHion kao nova ranjivost u OpenSSH serveru
Nova ranjivost omogućava napadačima da dobiju root privilegije na Linux serverima. Koliko je lako da se CVE-2024-6387 upotrebi – i kako sprečiti potencijalni napad možete pročitati u ovom članku.
Otkrivena je ranjivost u OpenSSH-u, popularnom serveru otvorenog koda za daljinsko upravljanje *nix sistemima. Ranjivost omogućava neautentifikovanom napadaču da izvrši proizvoljan kod na pogođenom sistemu i stekne root privilegije. Ranjivost je nazvana „regreSSHion“ i dodeljen joj je ID CVE-2024-6387. S obzirom na to da je OpenSSH server integrisan u većinu operativnih sistema i mnoge IoT uređaje, kao i firewall-ove, opis ove ranjivosti zvuči kao početak nove epidemije u razmerama WannaCry-a i Log4Shell-a. U praksi, situacija je nešto složenija. Raširena eksploatacija ranjivosti je malo verovatna. Ipak, svi administratori servera koji koriste OpenSSH moraju hitno rešiti ovu ranjivost.
Gde se sve koristi OpenSSH?
OpenSSH server je praktično svuda prisutan. Ovo je popularna implementacija SSH (secure shell) protokola i integrisana je u većinu Linux distribucija, kao i u operativne sisteme OpenBSD, FreeBSD, macOS, kao i u specijalizovane uređaje poput onih baziranih na Junos OS-u. Pošto mnogi televizori, pametna zvonca, monitori za bebe, mrežni plejeri za medije, pa čak i robotski usisivači koriste Linux sisteme, OpenSSH se često koristi i u njima. Počevši od Windowsa 10, OpenSSH je dostupan i na Microsoft-ovim operativnim sistemima, mada je opcionalna komponenta koja nije podrazumevano instalirana. Nije preterivanje reći da OpenSSH radi na desetinama miliona uređaja.
Kako se može pokrenuti ranjivost regreSSHion?
Tokom pokušaja autentifikacije putem SSH-a, korisnik ima vremensko ograničenje za završetak procesa, sa podrazumevanim podešavanjem od 120 sekundi. Ako autentifikacija ne uspe u tom periodu, SSH server asinhrono poziva specijalnu funkciju „sigalarm“, koja zatim pokreće funkcije za upravljanje memorijom na sistemskom nivou. Ovo je urađeno na način koji nije bezbedan za asinhrono izvršavanje. Pod određenim uslovima i sa malom verovatnoćom, ovo može pokrenuti trku uslova (race condition), što dovodi do kršenja granica memorije i izvršenja proizvoljnog koda.
Da bi iskoristio ovu ranjivost, napadač treba da izvrši oko 10.000 pokušaja u proseku, a ciljani sistem mora biti zasnovan na Linux verzijama koje koriste GNU C biblioteku (glibc), kao što su sve varijante Debian-a. Pored toga, napadači moraju da pripreme memorijske strukture prilagođene specifičnoj verziji glibc-a i Linux-a. Istraživači su uspeli da reprodukuju napad na 32-bitnim Linux sistemima, ali teoretski, moguće je iskoristiti ovu ranjivost i na 64-bitnim sistemima — iako sa nižom stopom uspeha. Adresni prostor sa nasumičnim rasporedom (ASLR) usporava proces eksploatacije, ali ne pruža potpunu zaštitu.
Zanimljivo je da je ranija verzija ove ranjivosti već ispravljena od strane OpenSSH tima 2006. godine, kada je dobila oznaku CVE-2006-5051. Dakle, nova ranjivost je regresija — ponovna pojava već poznatog „defekta“ zbog nekih promena uvedenih u kod. Zato se nova ranjivost naziva „regreSSHion“.
Verovatnoća je da će se CVE-2024-6387 iskorišćavati u „divljini“
Ranjivost su otkrili istraživači i odgovorno je prijavili programerima. Zbog toga je neposredna eksploatacija malo verovatna. Pored toga, tehničke složenosti koje su iznad opisane čine masovnu eksploataciju nepraktičnom. Deset hiljada pokušaja autentifikacije sa standardnim OpenSSH podešavanjima bi trajalo šest do osam sati po serveru. Takođe, potrebno je znati koja verzija Linux-a se koristi na serveru. Ako server ima bilo kakvu zaštitu protiv brute force napada i DDoS napada, te mere bi verovatno blokirale napad.
Uprkos svemu tome, ciljana eksploatacija je prilično moguća. Strpljivi napadači mogu sprovesti izviđanje i zatim sa različitih IP adresa vršiti niskofrekventne pokušaje, pa bi pre ili kasnije mogli uspeti.
Kako se serveri mogu zaštititi od regreSSHion-a?
Verzije OpenSSH-a do 4.4p1, kao i verzije od 8.5p1 do 9.7p1 koje rade na glibc-Linux, su podložne ovoj ranjivosti. Serveri bazirani na OpenBSD-u nisu pogođeni, tako da administratori tih sistema mogu biti mirni; međutim, svi ostali bi trebalo da ažuriraju OpenSSH server na verziju 9.8.
Ako iz nekog razloga nije moguće odmah izvršiti ažuriranje, administratori mogu kao privremenu meru postaviti vremensko ograničenje za prijavljivanje na nulu (LoginGraceTime=0 u sshd_config). Međutim, programeri upozoravaju da ovo čini SSH server podložnijim DDoS napadima.
Još jedna moguća mera je stroža kontrola pristupa za SSH, koja se može sprovesti korišćenjem firewall-a i drugih alata za mrežnu sigurnost, kao što je naprimer fail2ban, CSF firewall i ostalo. Jedna od mera je svakako i zamena porta, pa vaš server neće biti automatski skeniran od strane napadača jer će dobiti odgovor da je port 22 zatvoren.
Bez komentara