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

Eric Biggers, jedan od programera šifre Adiantum i održavatelj fscrypt podsustava jezgre Linuxa, predložio je skup zakrpa za blokiranje sigurnosnih problema koji proizlaze iz značajke Intelovih procesora koja ne jamči konstantno vrijeme izvršenja za različite obrađene podatke. Problem se pojavljuje kod Intel procesora počevši od Ice Lake obitelji. Sličan problem je uočen u ARM procesorima.

Prisutnost ovisnosti vremena izvršenja instrukcija o podacima koji se obrađuju u ovim instrukcijama autor zakrpa smatra ranjivošću u procesorima, jer takvo ponašanje ne može jamčiti sigurnost kriptografskih operacija koje se izvode u sustavu. Mnoge implementacije kriptografskih algoritama dizajnirane su kako bi se osiguralo da podaci ne utječu na vrijeme izvršenja instrukcija, a kršenje ovog ponašanja može dovesti do stvaranja napada sporednih kanala koji vraćaju podatke na temelju analize vremena obrade.

Potencijalno, ovisnost o podacima o vremenu izvođenja također se može koristiti za pokretanje napada za određivanje podataka jezgre iz korisničkog prostora. Prema Ericu Biggersu, konstantno vrijeme izvršenja nije predviđeno prema zadanim postavkama čak ni za instrukcije koje izvode operacije zbrajanja i XOR, kao ni za specijalizirane AES-NI instrukcije (informacija nije potvrđena testovima, prema drugim podacima, postoji kašnjenje od jednog ciklus tijekom vektorskog množenja i brojanja bitova).

Kako bi onemogućili ovo ponašanje, Intel i ARM predložili su nove zastavice: PSTATE bit DIT (Vremensko određivanje neovisno o podacima) za ARM CPU-e i MSR bit DOITM (Način rada neovisno o podatkovnom operandu) za Intelove CPU-e, vraćajući staro ponašanje s konstantnim vremenom izvršenja. Intel i ARM preporučuju omogućavanje zaštite prema potrebi za kritični kod, ali u stvarnosti se kritično računanje može dogoditi bilo gdje u kernelu i korisničkom prostoru, pa razmatramo omogućavanje DOITM i DIT načina rada za cijeli kernel u svakom trenutku.

Za ARM procesore, ogranak jezgre Linuxa 6.2 već je usvojio zakrpe koje mijenjaju ponašanje jezgre, ali te se zakrpe smatraju nedovoljnima jer pokrivaju samo kod jezgre i ne mijenjaju ponašanje korisničkog prostora. Za Intelove procesore uključivanje zaštite još je u fazi pregleda. Utjecaj zakrpe na izvedbu još nije izmjeren, ali prema Intelovoj dokumentaciji, omogućavanje DOITM načina rada smanjuje izvedbu (na primjer, onemogućavanjem nekih optimizacija, kao što je predučitavanje specifično za podatke), a u budućim modelima procesora smanjenje performansi može se povećati .

Izvor: opennet.ru

Dodajte komentar