GoFetch: Apple procesori pod napadom
Apple procesori su pod napadom korištenja sporednih karakteristika (eng. side-channel) pod nazivom GoFetch koji spadaju u kategoriju implementacijskih napada. Napad utiče na Apple M1, M2 i M3 i može se koristiti za krađu tajnih kriptografskih ključeva iz podataka u kešu procesora.
NAPADI KORIŠTENJA SPOREDNIH KARAKTERISTIKA
Napadi korištenja sporednih karakteristika (eng. side-channel attacks) su prikriveni oblik hakovanja koji cilja na fizičku implementaciju sistema, a ne na njegov algoritam ili kôd. Za razliku od tradicionalnih napada koji iskorišćavaju ranjivosti softvera, napadi korištenja sporednih karakteristika iskorišćavaju nenamjerne informacije koje je uređaj procurio tokom svog rada. Ovo curenje se može manifestovati na različite načine, kao što su varijacije u potrošnji energije, vremenske razlike ili čak elektromagnetno zračenje.
Napadi korištenja sporednih karakteristika mogu imati ozbiljne posljedice, od ugrožavanja lične privatnosti do finansijskih gubitaka, pa čak i ugrožavanja nacionalne bezbjednosti. Ovi napadi mogu uticati na pojedince i poslovne organizacije, što dovodi do krađe identiteta, finansijske prevare i štete po reputaciju. Tokom ovog napada, napadači mogu doći u posjed osjetljivih informacija kao što su lozinke, lične fotografije ili podaci o lokaciji.
GOFETCH
GoFetch napad je razvijen od strane tima sedam istraživača sa različitih američkih univerziteta i prijavljen je kompaniji Apple 5. decembra 2023. godine. Napad omogućava napadačima da rekonstruišu privatne kriptografske ključeve za različite algoritme, uključujući OpenSSL Diffie-Hellman, Go RSA, CRYSTALS Kyber i Dilithium direktno iz keša procesora. GoFetch napad koristi slabost u kriptografskim implementacijama u realnom vremenu koje koriste alate za prethodno preuzimanje podataka (eng. data memory-dependent – DMP) koji su prisutni u modernim Apple M1, M2 i M3 procesorima i Intel Raptor Lake procesorima 13. generacije. Međutim, istraživači kažu da je Intel implementacija restriktivnija i sprečava napad.
Funkcionisanje
GoFetch napad cilja na mehanizam za prethodno preuzimanje podataka zavisnih od memorije, funkciju procesora dizajniranu da poboljša performanse uređaja prilikom izvršavanja kôda. Mehanizam učitavanja unaprijed (eng. prefetcher) je obučen prethodnim pristupima memoriji prilikom preuzimanja podataka, omogućavajući mu da predvidi koji će podaci biti sljedeći potrebni uređaju. Ovi podaci se zatim unaprijed preuzimaju iz sporijih dijelova memorije u brže memorijske regione, kao što je keš procesora. Ako je predviđanje tačno, podaci su onda brzo dostupni, povećavajući performanse uređaja. Ako je pretpostavka bila pogrešna, procesor jednostavno traži tačne podatke kao i obično.
Napad se fokusira na DMP koji može da se obuči za prethodni pristup memoriji, ali takođe može da ispita vrijednosti podataka u memoriji da bi odredio šta treba unaprijed preuzeti u keš memoriju. Fokus napada je na kriptografskim implementacijama za koje je potrebno isto vreme da se izvrše bez obzira na unos, što je bezbjednosna mjera za sprečavanje curenja osjetljivih podataka. Međutim, sigurnosni istraživači su pronašli da nedostatak u Apple DMP implementaciji.
“Obrnuto smo konstruisali DMP-ove na Apple procesorima M serije otkrili da DMP aktivira (i pokušava da dereferencira) podatke učitane iz memorije koji izgledaju kao pokazivač. Ovo eksplicitno krši zahtev paradigme programiranja u realnom vremenu, koja zabranjuje miješanje podataka i obrazaca pristupa memoriji.”
– GoFetch summary –
Napadač može kreirati posebne ulaze koji dovode do toga da prethodno preuzimanje podataka dereferencira podatke, koji će se pojaviti kao pokazivači ako su određeni bitovi tajnog ključa ispravno pogođeni. Nakon tog se posmatra da li se DMP aktivira ili ne, postepeno zaključujući bitove tajnog ključa. Uz dovoljno ponavljanja procesa, cio tajni kriptografski ključ se može rekonstruisati. Istraživanje je pokazalo da su M1 podloži ovom napadu, a uzimajući u obzir da M2 i M3 procesori imaju slično ponašanje pri prethodnom preuzimanju podataka, vjerovatno je da su i oni ranjivi.
Za pokretanje GoFetch napada, napadaču nije potreban fizički pristup uređaju, tako da napadač može pokrenuti kôd na uređaju putem zlonamjernog softvera ili na neki drugi način, a on se može izvršiti daljinski. Više detalja se može naći u tehničkom dokumentu koji su objavili istraživači ovdje.
ZAKLJUČAK
Nikada nije dobro kada funkcija koja je namijenjena za povećanje performansi mora onemogućiti, jer stvara sigurnosni rizik propuštajući potencijalno osjetljive podatke. Međutim, još je gore kada se ta funkcija ne može onemogućiti. Jedino riješenje je da se onemogući pristup DMP alatu osjetljivim podacima kad god se čuvaju ili učitavaju iz memorije, ali istraživanje pokazuje da to zahtjeva veliku ispravku kôda i smanjenje performansi u nekim slučajevima.
Pošto GoFetch napad ne zahteva fizički pristup za eksploataciju, napadač koji dobije pristup uređaju na bilo koji način, može pokrenuti daljinsko izvršavanje kôda i iskoristiti ovu ranjivost. Preventivne mjere protiv ovakvih napada su veoma ograničene pošto je riječ o samom dizajnu hardvera, a dostupna softverska riješenja mogu drastično smanjiti performanse sistema. Najefikasnije rješenje bi bilo da se zamjeni procesor, međutim to nije ni praktično ni ekonomski izvodljivo za većinu korisnika.
UBLAŽAVANJE POSLJEDICA
Vlasnicima Apple uređaja se preporučuje da budu oprezni kada je u pitanju GoFetch napad i da koriste najnovije verzije softvera uz redovna ažuriranja. Iako je moguće onemogućiti DMP na određenim procesorima kao što je M3 kako bi se ublažio rizik, ova mogućnost nije dostupna na M1 i M2 procesorima. Na M3 procesorima je utvrđeno da omogućavanje opcije data-independent timing – DIT onemogućava DMP, što nije moguće na M1 i M2 procesorima.
“Apple procesor obezbjeđuje vremenski nezavisne podatke (DIT), u kome procesor ispunjava određene instrukcije u konstantnom vremenskom periodu. Kada je DIT omogućen, procesor koristi duže, najgore vreme za završetak instrukcije, bez obzira na ulazne podatke.”
Kao proaktivnu mjeru, programerima se savjetuje da implementiraju odbrambene mehanizme kao što su zasljepljivanje unosa i maskiranje DMP aktivacije kako bi se prikrili rezultati unosa napadača. Međutim, sve potencijalne softverske ispravke kompanije Apple za rješavanje ranjivosti mogu doći po cijenu performansi, kao što je primijećeno kod prethodnih ublažavanja napada korištenja sporednih karakteristika.