SLUBStick – Linux ranjivost

Nedavno su sigurnosni istraživači Tehnološkog univerziteta u Gracu otkrili novi vektor napada pod nazivom SLUBStick koji omogućava zlonamjernim akterima da manipulišu tabelama stranica Linux jezgra sistema. Jezgro sistema je kritična komponenta svakog modernog operativnog sistema i njegova bezbjednost je najvažnija, jer svaka ranjivost može dovesti do ozbiljnih posljedica. Zbog toga je veoma zabrinjavajuće što ovaj napad ima izuzetnu stopu uspeha od 99%.

SLUBStick

SLUBStick – Linux ranjivost; Source: Bing Image Creator

SLUBSTICK RANJIVOST

SLUBStick je napredna tehnika napada koja cilja i iskorištava specifične ranjivosti u sistemu alokacije memorije pločastog sistema Linux jezgra sistema. Ovaj metod napada je privukao značajnu pažnju sigurnosnih istraživača zbog svog potencijala i značajnog uticaja na sisteme, posebno one koji pokreću kritične aplikacije ili skladište osjetljive podatke.

Dodjela memorije je suštinska komponenta Linux jezgra sistema koja upravlja dinamički dodjelom memorijom za različite strukture podataka. Pločasti alokator održava objedinjene memorijske blokove, koji se recikliraju kada više nisu potrebni, obezbeđujući efikasno korištenje dostupnih resursa. Međutim, napadači mogu da manipulišu ovim procesom kako bi dobili neovlašteni pristup i kontrolu nad sistemskom memorijom.

 

Funkcionisanje

SLUBStick radi u tri različite faze: pokretanje događaja ponovne upotrebe memorije, kontrola dodjele tabele stranica i iskorišćavanje ovih modifikacija za proizvoljne mogućnosti čitanja i pisanja.

Faza 1: Pokretanje događaja ponovne upotrebe memorije

Prvi korak podrazumijeva da napadač identifikuje i pouzdano iskorištava ranjivost gomile unutar ciljne aplikacije ili modula jezgra sistema. Uobičajene ranjivosti uključuju dvostruko slobodno, koristi kada je slobodno (eng. use-after-free – UAF) ili pisanje van granica. Ovi problemi se mogu pokrenuti slanjem posebno kreiranog ulaza ranjivim funkcijama ili kroz tehnike ubrizgavanja kôda kao što su napadi prelivanja međuspremnika (eng. buffer overflow).

Kada se ranjivost dinamičke memorije identifikuje i uspješno iskorištava, zlonamjerni akter dobija kontrolu nad procesom alokacije memorije za taj određeni dio memorije. Ova manipulacija postavlja scenu za drugu SLUBStick fazu.

Faza 2 – Kontrolisanje dodjela tabele stranica

U ovoj fazi, napadač koristi sporedne karakteristike (eng. side-channel) za vreme da odredi kada jezgro povrati recikliranu memoriju i dodjeli nove tabele stranica. Sporedne karakteristike koriste razlike u vremenu izvršenja između instrukcija koje pristupaju različitim linijama međumemorije ili strukturama podataka unutar Linux jezgra sistema. Pažljivim mjerenjem ovih varijacija, zlonamjerni akter može precizno da odredi kada će njihovom manipulisanom djelu memorije biti ponovo dodijeljen novi skup unosa u tabeli stranica.

Zlonamjerni akter zatim prepisuje tabele stranica njihovim sopstvenim vrijednostima tokom ovog perioda mogućnosti. Ova izmjena im daje kontrolu nad fizičkim stranicama koje se mapiraju na određene virtuelne adrese u korisničkom prostoru, omogućavajući proizvoljne mogućnosti čitanja i pisanja.

Faza 3 – iskorišćavanje proizvoljnih mogućnosti čitanja i pisanja

Sa mogućnošću da mapiraju bilo koju fizičku memoriju u svoj adresni prostor i izmjene je po želji, zlonamjerni akteri sada mogu da izvrše širok spektar zlonamjernih aktivnosti. Neki potencijalni ishodi uključuju:

  • Eskalacija privilegija: Dobijanjem kontrole nad kritičnim strukturama podataka kao što su tabele stranica ili tabele sistemskih poziva, protivnik može podići svoje privilegije na root pristup (najviši nivo) na ciljnom Linux Ovo im omogućava neograničene operacije i potpunu kontrolu nad osnovnom infrastrukturom,
  • Izbjegavanje kontejnera: U okruženjima u oblaku gdje su aplikacije izolovane unutar kontejnera iz bezbjednosnih razloga, SLUBStick napadi mogu da se koriste za izlazak iz ovih izolovanih zaštićenih okruženja i direktan pristup operativnom sistemu domaćina. Ovo predstavlja značajnu prijetnju, jer omogućava napadačima da zaobiđu odbranu kontejnera i potencijalno kompromituju druge sisteme na istoj infrastrukturi.
  • Post-eksploatacija: Jednom kada se izvrši inicijalna eksploatacija, SLUBStick se može koristiti za izmjenu struktura jezgra sistema ili priključaka (eng. hooks) u svrhu postojanosti. Ove izmjene otežavaju otkrivanje zlonamjernog softvera, jer su integrisani u normalan radni tok sistema. Ova faza je ključna u održavanju uporišta na kompromitovanim sistemima i širenju kontrole napadača nad njihovim ciljnim okruženjem.

 

Uticaj

Uticaj zlonamjernog aktera koji dobija mogućnosti čitanja i pisanja preko SLUBStick napada su značajne. Oni potencijalno mogu da eskaliraju privilegije na Linux sistemu iskorištavanjem ranjivosti koje dozvoljavaju samo ograničen pristup pisanju, kao što su opisi datoteka ili promjenljive okruženja. To može dovesti do izvršavanje proizvoljnog kôda sa povišenim dozvolama, omogućavajući zlonamjernom akteru da izvrši radnje za koje ne bi trebalo da bude ovlašten. Dokazano je da radi na verzijama Linux jezgra sistema 5.9 i 6.2 na 32-bitnim i 64-bitnim sistemima.

SLUBStick se takođe može koristiti za napade bjekstva iz kontejnera (eng. container escape attacks). Kontejneri su popularan metod za izolovanje aplikacija i usluga unutar Linux sistema, ali SLUBStick sposobnost da manipuliše memorijom na nivou jezgra sistema omogućava zlonamjernom akteru da izađe iz ovih kontejnera i dobije pristup samom sistemu uređaja.

Štaviše, modifikujući kritične strukture podataka ili priključke u Linux jezgru sistema, zlonamjerni akter može da održi upornost na kompromitovanom sistemu, što otežava bezbjednosnim timovima da otkriju zlonamjerne aktivnosti. To bi moglo dovesti do dugoročnog ugrožavanja osjetljivih informacija i potencijalne štete po poslovanje.

 

ZAKLJUČAK

SLUBStick je napredna tehnika napada koja iskorištava ranjivosti u sistemu za dodjelu memorije pločastog sistema Linux jezgra sistema. Manipulisanjem dodjeljivanja tabele stranica kroz niz pažljivo orkestriranih koraka, zlonamjerni akteri mogu da steknu proizvoljne mogućnosti čitanja i pisanja na ciljnim sistemima.

Ove sposobnosti omogućavaju širok spektar zlonamjernih aktivnosti, uključujući eskalaciju privilegija, izbjegavanje kontejnera i izmjene nakon eksploatacije u svrhu postojanosti. Treba napomenuti da je svo ovo moguće čak i sa omogućenom modernom odbranom jezgra. Tehnika predstavlja značajnu prijetnju Linux sistemima zbog svoje sposobnosti da zaobiđe napredne bezbjednosne mjere.

Kako se Linux i dalje široko koristi u kritičnoj infrastrukturi i okruženjima u oblaku, od suštinskog je značaja da sistemski administratori ostanu na oprezu protiv tako sofisticiranih tehnika napada i implementiraju robusne bezbjednosne mjere za zaštitu svojih sistema od potencijalnih prijetnji.

 

ZAŠTITA

Da bi se zaštitili od SLUBStick napada, postoji nekoliko mjera koje se mogu preduzeti i na nivou jezgra sistema i na nivou korisničkog prostora.

  1. Zaštita na nivou jezgra sistema:
    • Omogućiti izolaciju tabele stranica ( Page Table Isolation – PTI): PTI je funkcija uvedena u Linux 4.9 za sprečavanje određenih vrsta napada na tabele stranica. Ova funkcija izoluje šetač tabela stranica, što otežava napadaču da manipuliše tabelama stranica,
    • Koristiti ojačane alokatore: Umjesto da koristite SLUB ili druge slabo zaštićene alokatore, koristite jače kao što su kmalloc_node() ili kzalloc(). Ovi alokatori imaju bolje upravljanje memorijom i funkcije zaštite,
    • Omogućiti nasumičnost rasporeda adresnog prostora (eng. Address Space Layout Randomization – ASLR): ASLR nasumično vrši raspored procesa u memoriji, što otežava napadaču da predvidi virtuelne adrese. Ovo se može omogućiti pomoću datoteke /proc/sys/kernel/randomize_va_space ili podešavanjem promjenljive okruženja PRRANDOM,
    • Koristiti bezbjednost zasnovanu na mogućnostima: Linux ima sistem mogućnosti koji omogućava fino-podesivu kontrolu pristupa resursima jezgra sistema. Ograničavanjem mogućnosti ograničava se šta napadač može da uradi čak i ako uspije da iskoristi ranjivost.
  2. Zaštita korisničkog prostora:
    • Pokretanje kao korisnik bez root prava: Pokretanje aplikacija sa minimalnim privilegijama smanjuje uticaj bilo kakvih potencijalnih napada. Ako je aplikacija kompromitovana, ona će imati pristup samo sopstvenim resursima i neće moći da pravi promjene na nivou sistema,
    • Koristiti SELinux ili AppArmor: Ovi bezbjednosni okviri obezbjeđuju obavezne smjernice kontrole pristupa koje ograničavaju šta aplikacije mogu da urade na osnovu njihovog ponašanja. Oni pomažu u sprečavanju neovlaštenih modifikacija datoteka ili privilegovanih podataka,
    • Održavati softver ažurnim: Redovno ažuriranje softvera smanjuje vjerovatnoću da će poznate ranjivosti biti iskorištene. Ovo uključuje i operativni sistem i aplikacije trećih strana,
  3. Nadgledanje i evidentiranje:
    • Koristiti rješenje za upravljanje bezbjednosnim informacijama i događajima (eng. Security Information and Event Management – SIEM) za nadgledanje sumnjivih aktivnosti, kao što su pokušaji pristupa privilegovanim podacima ili manipulacija tabelama stranica,
    • Omogućiti evidentiranje jezgra sistema da bi se snimili važni događaji koji mogu ukazivati na napad, kao što su dodjela memorije i oslobađanje. Ove informacije se kasnije mogu analizirati da bi se identifikovali potencijalni napadi.
  4. Obrazovanje korisnika:
    • Obrazovati korisnike o rizicima pokretanja nepouzdanog kôda i otvaranja sumnjivih elektronskih poruka ili priloga. Takođe ih treba savjetovati da ne djele osjetljive podatke sa nepoznatim entitetima,
  5. Redovne bezbjednosne revizije:
    • Obavljati redovne bezbjednosne provjere na sistemima da bi se identifikovale ranjivosti i slabosti koje bi zlonamjerni akteri mogli da iskoriste, uključujući one koji se odnose na upravljanje memorijom i manipulaciju tabelama stranica.

Možda vas interesuje i...

Komentariši

Vaša email adresa neće biti objavljivana. Neophodna polja su označena sa *


The reCAPTCHA verification period has expired. Please reload the page.