Istraživači su napravili značajno otkriće o sajber bezbednosti — postoji zlonamerni rootkit zasnovan na UEFI-u koji se koristi od 2016. kako bi se obezbedilo da računari ostanu zaraženi čak i ako se operativni sistem ponovo instalira ili čvrsti disk potpuno zameni.
Softver kompromituje UEFI (eng. abbr. Unified Extensible Firmware Interface), nizak nivo i veoma neprobojan niz firmvera (eng. Firmware – softver koji rukovodi operacijama na samim čipovima i drugim kolima sistema) koji je potreban za pokretanje skoro svakog modernog računara. Kao komponenta koja povezuje firmver uređaja sa njegovim operativnim sistemom, UEFI je na neki način operativni sistem (OS) sam za sebe. Nalazi se u SPI-povezanom fleš memorijskom čipu zalemljenom na matičnu ploču računara, što otežava proveru ili ispravljanje koda. Pošto je to prva stvar koja se pokreće kada je računar uključen, to utiče na OS, bezbednosne aplikacije i sav drugi softver koji sledi.
U ponedeljak su istraživači iz kompanije Kasperski profilisali CosmicStrand, naziv bezbednosne firme za sofisticirani UEFI rootkit koji je kompanija otkrila pomoću svog antivirusnog softvera. Ovo otkriće spada u samo nekoliko takvih UEFI pretnji za koje se zna da su korišćene u svetu. Do nedavno, istraživači su pretpostavljali da su tehnički zahtevi potrebni za razvoj UEFI malvera ovog kalibra činili da on bude van domašaja većini aktera koji bi bili pretnja. Sada, s obzirom da je Kasperski pripisao CosmicStrand nepoznatoj hakerskoj grupi koja govori kineski i koja ima moguće veze sa malverom kriptomajnera, ova vrsta malvera možda ipak nije tako retka.
„Najupečatljiviji aspekt ovog izveštaja je da se čini da se ovaj UEFI implant koristio u ‘divljini’ od kraja 2016. godine – mnogo pre nego što su UEFI napadi počeli da se javno opisuju“, napisali su istraživači kompanije Kasperski. „Ovo otkriće nameće poslednje pitanje: ako su to napadači koristili tada, šta koriste danas?“
Dok su istraživači iz bezbednosne firme Kihoo360 izvestili o ranijoj varijanti rootkit 2017. godine, Kasperski i većina drugih bezbednosnih firmi sa sedištem na Zapadu ga nisu ni primetile. U novom istraživanju Kasperski detaljno opisuje kako je rootkit – koji se nalazi na kopijama firmvera nekih Gigabite ili Asus matičnih ploča – u stanju da preotme procese prilikom pokretanja zaraženih mašina. Tehničke osnove izgradnje ovakvog rešenja svedoče o sofisticiranosti malvera.
Rootkit je deo malvera koji radi u najdubljim delovima operativnog sistema koji inficira. Koristi ovu stratešku poziciju da sakrije informacije o svom prisustvu od samog operativnog sistema. U međuvremenu, bootkit je zlonamerni softver koji inficira proces pokretanja mašine kako bi opstao na sistemu. Naslednik zastarelog BIOS-a, UEFI je tehnički standard koji definiše kako komponente mogu da učestvuju u pokretanju operativnog sistema. To je „najnoviji“ jer je predstavljen oko 2006. Danas skoro svi uređaji podržavaju UEFI kada je u pitanju proces pokretanja. Ključna stvar ovde je da kada kažemo da se nešto dešava na UEFI nivou, to znači da se to dešava kada se računar pokreće, pre nego što se operativni sistem uopšte učita. Šta god da se standard koristi tokom tog procesa, to je samo detalj implementacije, a 2022. ionako će skoro uvek biti UEFI.
Lanac izvršenja
Lanac izvršenja CosmicStranda počinje sa drajverom. Čini se da je to modifikacija legitimne verzija koja se zove CSMCORE koja kreira pokazivač na funkciju servisa pokretanja poznatu kao HandleProtocol. Kad god se pozove HandleProtocol, izvršenje se preusmerava na kod koji je dostavio napadač koji proverava određene kriterijume, uključujući koja komponenta ga je pozvala i određene bajtove uključene u povratnu adresu.
„Ova specifična tačka u izvršenju je izabrana zato što se u ovoj fazi menadžer pokretanja učitava u memoriju, ali još uvek nije pokrenut“, objašnjava se u objavi na blogu u ponedeljak. „CosmicStrand koristi ovu priliku da izmeni određeni broj bajtova u svom Archpk64TransferTo64BitApplicationAsm.“
Ova funkcija se poziva kasnije tokom normalnog procesa pokretanja. U tom trenutku, Windovs OS loader je takođe prisutan u memoriji i tokom ovog procesa i on biva modifikovan. Archpk64TransferTo64BitApplicationAsm zatim locirata funkciju za učitavanje OS pod nazivom OslArchTransferToKernel koja nastavlja proces učitavanja.
Pre nego što Windovs kernel počne da radi, CosmicStrand dodaje još jednu izmenu, ovog puta u funkciji ZvCreateSection. Ovaj korak ubrizgava zlonamerni shellcode u programski kod datoteke pod nazivom ntoskrnl.exe, pošto je uskladištena u memoriji, a prvi bajtovi ZvCreateSection-a se prepisuju da bi se preusmerili na njega. Da bi kod bio manje upadljiv za bezbednosne proizvode, rekli su istraživači, napadači su bili oprezni da stave zlonamerni kod u „slack“ ili preostali prostor za skladištenje, odeljka .text datoteke ntoskrnl.exe izvršnog fajla.
Čini se da malver tada onemogućava zaštitu pod nazivom PatchGuard. Kada se Windovs kernel pokrene i pozove zakačenu funkciju ZvCreateSection dok normalno radi, CosmicStrand ponovo preuzima kontrolu nad izvršavanjem, vraća originalni kod i pokreće još zlonamernog koda.