Kritična ranjivost koja pogađa većinu Linux distribucija omogućava postavljanje bootkitova
Razvojni timovi Linuxa su u procesu popravljanja ranjivosti visoke ozbiljnosti koja, u određenim slučajevima, omogućava instaliranje zlonamernog softvera koji se izvršava na nivou firmware-a.
Zlonamerni softver
Prekoračenje bafera u bootloaderu “shim” omogućava napadačima da pokrenu kod svaki put kada se uređaji pokrenu To daje infekcijama pristup najdubljim delovima uređaja gde su teške za otkrivanje ili uklanjanje. Ranjivost se nalazi u “shim”-u, koji je u kontekstu Linuxa mala komponenta koja se izvršava u firmware-u rano u procesu pokretanja pre nego što je operativni sistem pokrenut. Konkretnije, “shim” koji prati praktično sve Linux distribucije igra ključnu ulogu u sigurnom pokretanju, zaštitu ugrađenu u većinu modernih računarskih uređaja kako bi se osiguralo da svaka veza u procesu pokretanja potiče od proverenog, pouzdanog dobavljača. Uspela eksploatacija ranjivosti omogućava napadačima da neutrališu ovaj mehanizam izvršavajući zlonamerni firmware u najranijim fazama procesa pokretanja pre nego što se firmware Unified Extensible Firmware Interface učitao i predao kontrolu operativnom sistemu.
Ranjivost, praćena kao CVE-2023-40547, je ono što se naziva prekoračenje bafera, programerska greška koja omogućava napadačima izvršavanje koda po njihovom izboru. Nalazi se u delu “shim”-a koji obrađuje pokretanje sa centralnog servera na mreži koristeći isti HTTP na kojem je baziran internet. Napadači mogu iskoristiti ovu ranjivost izvršavanja koda u raznim scenarijima, gotovo svi slede neki oblik uspešnog kompromitovanja ili ciljanja uređaja ili servera na mreži sa kojeg se uređaj pokreće. “Napadač bi trebalo da može da primora sistem da se pokrene sa HTTP-a ako već nije tako konfigurisan, i ili da bude u mogućnosti da pokrene HTTP server u pitanju ili MITM saobraćaj do njega”, napisao je Matthew Garrett, bezbednosni developer i jedan od originalnih autora “shim”-a, u online intervjuu. “Napadač (fizički prisutan ili koji je već kompromitovao root na sistemu) bi mogao koristiti ovo da obezbedi siguran boot (dodati novi boot unos na server koji kontroliše, kompromitovati ‘shim’, izvršiti proizvoljan kod).”
Drugim rečima, ovi scenariji uključuju:
– Sticanje sposobnosti da kompromituje server ili izvede napad adversary-in-the-middle i da cilja uređaj koji je već konfigurisan da se pokreće koristeći HTTP.
– Dobijanje fizičkog pristupa uređaju ili dobijanje administratorske kontrole eksploatišući odvojivu ranjivost.
Iako su ove prepreke strmoglave, one nikako nisu nemoguće, posebno sposobnost da se kompromituje ili impersonira server koji komunicira sa uređajima preko HTTP, koji nije enkriptovan i ne zahteva autentifikaciju. Ovi posebni scenariji mogli bi biti korisni ako napadač već ima neki nivo pristupa unutar mreže i pokušava preuzeti kontrolu nad povezanim krajnjim korisničkim uređajima. Međutim, ovi scenariji uglavnom su rešeni ako serveri koriste HTTPS, varijantu HTTP-a koja zahteva od servera da se autentifikuje. U tom slučaju, napadač bi prvo morao da falsifikuje digitalni sertifikat koji server koristi da bi dokazao da je ovlašćen za obezbeđivanje boot firmware-a uređajima.
Sposobnost sticanja fizičkog pristupa uređaju takođe je teška i općenito se smatra osnovom za smatranje da je već kompromitovan. I, naravno, već dobijanje administratorske kontrole kroz eksploataciju odvojene ranjivosti u operativnom sistemu je teško i omogućava napadačima da postignu svakakve zlonamerne ciljeve.
S tim u vezi, sticanje sposobnosti za izvršavanje koda tokom procesa pokretanja, pre nego što glavni operativni sistem počne, predstavlja značajan eskalaciju bilo kakvog pristupa koji napadač već ima. To znači da napadač može neutralisati mnoge oblike zaštite krajnjih tačaka dizajniranih za otkrivanje kompromitovanja. Kao takav, napad omogućava instalaciju bootkita, termina za zlonamerni softver koji se izvršava pre operativnog sistema. Međutim, za razliku od mnogih bootkita, onaj koji je napravljen eksploatišući CVE-2023-40547 neće preživeti brisanje ili ponovno formatiranje hard diska.
Garrett objašnjava:
U teoriji ovo ne bi trebalo da da napadaču sposobnost kompromitovanja firmware-a samog, ali u stvarnosti mu daje izvršavanje koda pre ExitBootServices (predaja između firmware-a koji još uvek pokreće hardver i prelazak na operativni sistem) i to znači mnogo veću površinu napada protiv firmware-a—obično se pretpostavlja da samo pouzdan kod radi pre ExitBootServices. Mislim da bi se ovo i dalje nazivalo boot kit—može izmeniti OS bootloader i kernel pre izvršavanja. Ali ne bi bio potpuno postojan (ako obrišete disk, nestao bi).
Popravljanje ranjivosti uključuje više od samog izrezivanja prekoračenja bafera iz koda “shim”-a. Takođe zahteva ažuriranje mehanizma sigurnog pokretanja kako bi se povukle ranjive verzije bootloadera. To, zauzvrat, nosi određeni nivo rizika. Paul Asadoorian, iz kompanije Eclypsium i autor blog posta koji je podigao svest o ranjivosti, objasnio je:
Korisnici bi mogli da se nađu u situaciji gde se primenjuje ažuriranje DBX (lista povlačenja) na njihov sistem koje definiše trenutno instaliran bootloader kao nevažeći u Secure Boot. U ovom slučaju, prilikom ponovnog pokretanja, Secure Boot bi zaustavio proces pokretanja. Dokle god korisnik može da pristupi svojim BIOS/UEFI podešavanjima, ovo se može rešiti privremeno onemogućavanjem Secure Boot-a (ako je korisnik postavio BIOS šifru, ovo bi otežalo oporavak). Linux alat fwupd ima mogućnosti da ažurira Secure Boot DBX i pružiće upozorenja korisniku ako je trenutno instaliran bootloader u pendin DBX ažuriranju.
Još jedan izazov u ažuriranju, rekao je Asadoorian, uključuje konačnu količinu prostora rezervisanog za skladištenje povlačenja u delu UEFI poznatom kao DBX. Neke liste bi mogle sadržavati više od 200 unosa koji moraju biti dodati u DBX. Sa mnogim “shim”-ovima koji ograničavaju prostor na 32 kilobita, ovaj kapacitet bi mogao biti blizu kraja. Još jedan korak u procesu zakrpanja je potpisivanje novo zakrpanih “shim”-ova koristeći Microsoft sertifikaciono telo treće strane.
Razvojni timovi nadgledajućih Linux “shim”-ova su objavili zakrpu pojedinačnim razvojnim timovima “shim”-a, koji su je uključili u svaku verziju za koju su odgovorni. Sada su te verzije objavljene Linux distributerima, koji su u procesu omogućavanja dostupnosti korisnicima.
Rizik uspešne eksploatacije uglavnom je ograničen na ekstremne scenarije, kao što je ranije napomenuto. Jedini scenario gde je eksploatacija najizvodljivija—kada uređaji dobijaju boot slike preko neenkriptovanog HTTP servera—jedan je koji se nikada ne bi trebao desiti 2024. godine ili u protekloj deceniji, iz tog razloga.
Međutim, šteta od uspešne eksploatacije je ozbiljna i razlog je za ozbiljnost ocene od 9,8 od mogućih 10. Korisnici bi trebalo da instaliraju zakrpe odmah nakon što postanu dostupne.
Izvor: Arstechnica