Ovisnost vremena izvršavanja instrukcija o podacima na CPU ARM i Intel

Eric Biggers, jedan od developera šifre Adiantum i održavatelj mješavine Linux fscrypt podsystema, predložio je set zakrpa za blokiranje sigurnosnih problema koji proizlaze iz osobitosti Intel procesora, što ne jamči stalno vrijeme izvršavanja instrukcija za različite obrađene podatke. U Intel procesorima, problem se manifestira počevši od Ice Lake generacije. Sličan problem se također primjećuje u ARM procesorima.

Postojanje ovisnosti vremena izvršavanja instrukcija o podacima obrađenim u tim instrukcijama autor zakrpa smatra ranjivošću u procesorima, jer takvo ponašanje ne može jamčiti sigurnost kriptografskih operacija koje se obavljaju u sustavu. Mnoge implementacije kriptografskih algoritama oslanjaju se na to da podaci ne utječu na vrijeme izvršavanja instrukcija, a kršenje tog ponašanja može dovesti do napada putem bočnih kanala, koji obnavljaju podatke na temelju analize vremena njihove obrade.

Potencijalno, ovisnost vremena izvršavanja o podacima može se također koristiti za organiziranje napada za određivanje podataka kernela iz korisničkog prostora. Prema Ericu Biggersu, stalno vrijeme izvršavanja po defaultu nije osigurano čak ni za instrukcije koje izvode operacije zbrajanja i XOR, kao i za specijalizirane instrukcije AES-NI (informacija nije potvrđena testovima, dok podaci ukazuju na to da se tijekom umnožavanja vektora i brojanja bitova javlja kašnjenje od jednog ciklusa).

Za onemogućavanje spornog ponašanja Intel i ARM su predložile nove zastavice: PSTATE bit DIT (Data Independent Timing) za ARM CPU i MSR bit DOITM (Data Operand Independent Timing Mode) za Intel CPU, koje vraćaju staro ponašanje sa stalnim vremenom izvršavanja. Intel i ARM preporučuju uključivanje zaštite prema potrebi za posebno važan kod, ali u stvarnosti, važni proračuni mogu se nalaziti u svim dijelovima kernela i korisničkog prostora, stoga se razmatra mogućnost stalne aktivacije DOITM i DIT modova za cijeli kernel.

Za ARM procesore u kernel grani Linux 6.2 već su prihvaćeni lay patch-evi koji mijenjaju ponašanje kernela, no ovi patch-evi se smatraju nedovoljnima jer pokrivaju samo kod kernela i ne mijenjaju ponašanje za korisnički prostor. Za Intel procesore uključivanje zaštite je trenutno samo u fazi recenziranja. Mjerenje utjecaja patch-a na performanse još nije provedeno, ali prema podacima iz Intelove dokumentacije, uključivanje DOITM moda smanjuje performanse (npr. zbog isključenja nekih optimizacija, kao što su specifične za određene podatke prednostne učitavanja) i u budućim modelima procesora smanjenje performansi može se pojačati.

Izvor: opennet.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster