Ovisnost vremena izvršenja instrukcija o podacima na ARM i Intel procesorima

Eric Biggers, jedan od programera Adiantum šifre i održavatelj Linux kernela fscrypt podsistema, predložio je set zakrpa za blokiranje sigurnosnih problema koji proizlaze iz karakteristike Intelovih procesora koja ne garantuje konstantno vrijeme izvršavanja za različite obrađene podatke. Problem se pojavljuje u Intelovim procesorima počevši od porodice Ice Lake. Sličan problem je uočen i kod ARM procesora.

Prisustvo zavisnosti vremena izvršavanja instrukcija od podataka obrađenih u ovim instrukcijama autor zakrpa smatra ranjivošću u procesorima, jer takvo ponašanje ne može garantovati sigurnost kriptografskih operacija koje se obavljaju u sistemu. Mnoge implementacije kriptografskih algoritama su dizajnirane da osiguraju da podaci ne utiču na vrijeme izvršenja instrukcija, a kršenje ovog ponašanja može dovesti do stvaranja napada sa strane kanala koji oporavljaju podatke na osnovu analize vremena njihove obrade.

Potencijalno, ovisnost o podacima iz vremena izvršavanja također se može koristiti za pokretanje napada kako bi se odredili podaci kernela iz korisničkog prostora. Prema Eric Biggersu, konstantno vrijeme izvršavanja nije predviđeno prema zadanim postavkama čak ni za instrukcije koje izvode operacije sabiranja i XOR, kao i za specijalizirane AES-NI instrukcije (informacije koje nisu potvrđene testovima, prema drugim podacima, postoji kašnjenje od jedne ciklus tokom množenja vektora i brojanja bitova).

Da bi onemogućili ovo ponašanje, Intel i ARM su predložili nove zastavice: PSTATE bit DIT (Data Independent Timing) za ARM CPU i MSR bit DOITM (Data Operand Independent Timing Mode) za Intel CPU, vraćajući staro ponašanje sa konstantnim vremenom izvršavanja. Intel i ARM preporučuju omogućavanje zaštite po potrebi za kritični kod, ali u stvarnosti, kritično računanje se može dogoditi bilo gdje u kernelu i korisničkom prostoru, tako da razmatramo omogućavanje DOITM i DIT modova za cijeli kernel u svakom trenutku.

Za ARM procesore, grana kernela Linux 6.2 je već usvojila zakrpe koje mijenjaju ponašanje kernela, ali se te zakrpe smatraju nedovoljnim 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 pregleda. Utjecaj zakrpe na performanse još nije izmjeren, ali prema dokumentaciji kompanije Intel, omogućavanje DOITM načina rada smanjuje performanse (na primjer, onemogućavanjem nekih optimizacija, kao što je prethodno učitavanje podataka) i u budućim modelima procesora smanjenje performansi se može povećati .

izvor: opennet.ru

Dodajte komentar