Preskoči na glavni sadržaj Preskoči na pretraživanje Preskoči na glavnu navigaciju
Meni
Važno Kibernetička sigurnost Ocjena: 8/10

Ranjivost Linux kernela: Race condition omogućuje čitanje tuđih datoteka

Ranjivost u upravljanju memorijom Linux kernela lokalnim korisnicima omogućuje čitanje zaštićenih datoteka poput SSH ključeva ili /etc/shadow. Zakrpa je već dostupna.

Što se dogodilo?

Sigurnosni istraživač pod pseudonimom _SiCK objavio je na Githubu nekoliko proof-of-concept exploita koji iskorištavaju ranjivost u upravljanju memorijom i procesima Linux kernela. Ranjivost lokalnim korisnicima bez posebnih ovlasti pod određenim uvjetima omogućuje čitanje datoteka koje su inače dostupne samo root korisniku. Riječ je već o četvrtoj sigurnosnoj ranjivosti unutar nekoliko dana koja Linux korisnicima omogućuje eskalaciju privilegija.

PoC primjer s najozbiljnijim posljedicama nosi naziv ssh-keysign-pwn. On čita privatni SSH ključ stroja – datoteku koja je u normalnim okolnostima dostupna isključivo root korisniku. Drugi primjer koristi program „chage“ kako bi tijekom njegovog izvršavanja pročitao datoteku lozinki /etc/shadow.

Detalji

Uzrok ranjivosti leži duboko u kernelu: funkcija ptrace_may_access() kod procesa koji se upravo nalaze u postupku prekida rada, propada na način koji je previše otvoren (takozvani „fail open“). Ako napadač dobije utrku uvjeta (race condition), odnosno utrku između više istovremeno pokrenutih procesa, može unatoč nedostatku ovlasti pristupiti datotekama koje je proces koji umire prethodno otvorio. Time su potencijalno pogođene sve datoteke koje otvaraju programi s root ovlastima (setuid root), primjerice /etc/shadow ili /etc/ssh/ssh_host_key.

Grešku je otkrila sigurnosna tvrtka Qualys. Linux upravitelj Linus Torvalds ispravio ju je u kasnim popodnevnim satima u četvrtak. Nedugo nakon toga osnivač grsecurityja Brad Spengler u kratkoj analizi na društvenoj mreži X skrenuo je pozornost na grešku, što je pak potaklo ambiciju korisnika _SiCK da razvije vlastite exploite. Službena CVE oznaka za ranjivost zasad ne postoji.

Zanimljivo je da je grešku već prije nekoliko godina primijetio Googleov sigurnosni stručnjak Jann Horn. Tada je već dao prijedlog za ispravak – no on nije proveden. Linux kernel 7.0.8 sada sadrži isključivo ispravak za sigurnosnu ranjivost koju iskorištava ssh-keysign-pwn. Upravitelj kernela Greg Kroah-Hartman komentirao je situaciju na Fediverseu samoironičnom primjedbom o „velikom gumbu“ na svom stolu za pokretanje novih verzija kernela.

Procjena

Za industriju sigurnosne tehnike ova je ranjivost relevantna iz više razloga. Sustavi za kontrolu pristupa, video nadzor i upravljanje alarmnim sustavima često rade na poslužiteljima temeljenima na Linuxu ili ugrađenim uređajima. Ako lokalni korisnici – primjerice putem kompromitiranih servisnih računa ili nedovoljno osiguranih pristupa – mogu čitati datoteke zaštićene root ovlastima poput SSH ključeva ili datoteka lozinki, time se otvara put za daljnje napade na cjelokupnu infrastrukturu.

Posebno je kritična okolnost da ranjivost nije nova: bila je poznata već prije nekoliko godina, ali nije ispravljena. To zorno pokazuje koliko je kontinuirano upravljanje zakrpama važno čak i za naizgled stabilne i zrele sustave. Budući da je ranjivost načelno moguća kod svake izvršne datoteke s root ovlastima (setuid root), površina napada potencijalno je vrlo široka i nije ograničena samo na dosad objavljene PoC primjere.

Praktični savjeti

  • Administratori sustava mogu privremeno primijeniti naredbu „echo 3 > /proc/sys/kernel/yama/ptrace_scope“ kako bi ublažili sve dosad poznate slučajeve ove sigurnosne ranjivosti.
  • Službeni ispravak već je uključen u Linux kernel 7.0.8 – pogođene sustave treba pravovremeno ažurirati čim odgovarajuća distribucija ponudi odgovarajući paket kernela.
  • Do dostupnosti zakrpanih paketa distribucija, spomenuto privremeno rješenje treba prioritetno provesti posebno na poslužiteljima s osjetljivim pristupnim podacima (SSH ključevi, datoteke lozinki) te na sigurnosno kritičnim sustavima poput poslužitelja za kontrolu pristupa ili video nadzor.
  • Načelno se preporučuje provjera koji lokalni korisnički računi uopće imaju pristup pogođenim sustavima, kako bi se općenito smanjila površina napada za race condition exploite.

Izgledi

Budući da velike i manje Linux distribucije sada moraju ugraditi ispravak u nove pakete kernela i isporučiti ih, prema iskustvu je za očekivati određeno kašnjenje dok svi produkcijski sustavi ne budu osigurani. U ovom prijelaznom razdoblju opisano privremeno rješenje putem Yama ptrace postavke ostaje najvažnija hitna mjera za administratore.

S obzirom na to da je riječ već o četvrtoj usporedivoj sigurnosnoj ranjivosti unutar nekoliko dana, može se pretpostaviti da će se sigurnosni istraživači i razvojni programeri kernela i dalje intenzivno baviti upravljanjem memorijom i procesima Linux kernela. Za operatere sigurnosno kritične infrastrukture – od alarmnih sustava preko sustava video nadzora do rješenja za kontrolu pristupa – ovaj slučaj naglašava potrebu za usko usklađenim procesima upravljanja zakrpama te pravovremenim uvođenjem i naizgled manjih ažuriranja kernela.