- Liittynyt
- 22.10.2016
- Viestejä
- 11 907
Tutkijat ovat onnistuneet kehittämään kaksi uutta sivukanavahyökkäystä jotka toimivat Applen prosessoreilla.
Applen prosessorit ovat markkinoiden ensimmäiset prosessorit joissa on muistiosoitteen ennustus sekä ladatun datan ennustus.
Tilanteessa, jossa muistilatauksen osoitetta joudutaan odottamaan aiemmilta laskutoimituksilta, Applen prosessorit M2/A15-ytimistä lähtien ennustavat osoitteen sen perusteella, mitä osoitteita sama käsky on aiemmin ladannut, ja lataavat datan tästä ennustamastaan osoitteesta spekulatiivisesti. Tätä voidaan käyttää sivukanavahyökkäykseen opettamalla ennustuslogiikka ennustamaan tarkoituksella väärin ja lataamaan dataa esim. selaimen javascript-hiekkalaatikon ulkopuolelta. Lataus on kuitenkin vain spekulatiivinen (sen tulos ei suoraan näy arkkitehtuurisessa tilassa, vaan se tullaan perumaan ja lataus oikeasta osoitteesta tullaan suorittamaan myöhemmin sen sijasta), joten datan saaminen näkyväksi vaatii vielä loppuvaiheessa jonkin sivukanavan hyödyntämistä.
M3- ja A17-ytimistä lähtien tuettuna on myös ladatun datan ennustus, joka ennustaa vakiodatan latauksia; Mikäli tiety latauskäsky on aina aiemmin ladannut saman arvion(vakion), ennustetaan että seuraavan kerran samaa käskyä suoritettaessa ladataan sama vakioarvo.
Voidaan kuitenkin konstruktoida koodisekvenssi, jossa tämä ennustus ennustaa väärin ja antaa latauksen tulokseksi väärän arvon. Tätä ladattua arvoa voidaan sitten käyttää osana muistiositteen laskentaa toiselle latauskäskylle, joka spekulatiivisesti lataa dataa esim. javascript-hiekkalaatikon ulkopuolelta. Tässäkin datan saaminen näkyväksi vaatii lopussa jonkun sivukanavan hyödyntämistä.
Applen prosessorit ovat markkinoiden ensimmäiset prosessorit joissa on muistiosoitteen ennustus sekä ladatun datan ennustus.
Tilanteessa, jossa muistilatauksen osoitetta joudutaan odottamaan aiemmilta laskutoimituksilta, Applen prosessorit M2/A15-ytimistä lähtien ennustavat osoitteen sen perusteella, mitä osoitteita sama käsky on aiemmin ladannut, ja lataavat datan tästä ennustamastaan osoitteesta spekulatiivisesti. Tätä voidaan käyttää sivukanavahyökkäykseen opettamalla ennustuslogiikka ennustamaan tarkoituksella väärin ja lataamaan dataa esim. selaimen javascript-hiekkalaatikon ulkopuolelta. Lataus on kuitenkin vain spekulatiivinen (sen tulos ei suoraan näy arkkitehtuurisessa tilassa, vaan se tullaan perumaan ja lataus oikeasta osoitteesta tullaan suorittamaan myöhemmin sen sijasta), joten datan saaminen näkyväksi vaatii vielä loppuvaiheessa jonkin sivukanavan hyödyntämistä.
M3- ja A17-ytimistä lähtien tuettuna on myös ladatun datan ennustus, joka ennustaa vakiodatan latauksia; Mikäli tiety latauskäsky on aina aiemmin ladannut saman arvion(vakion), ennustetaan että seuraavan kerran samaa käskyä suoritettaessa ladataan sama vakioarvo.
Voidaan kuitenkin konstruktoida koodisekvenssi, jossa tämä ennustus ennustaa väärin ja antaa latauksen tulokseksi väärän arvon. Tätä ladattua arvoa voidaan sitten käyttää osana muistiositteen laskentaa toiselle latauskäskylle, joka spekulatiivisesti lataa dataa esim. javascript-hiekkalaatikon ulkopuolelta. Tässäkin datan saaminen näkyväksi vaatii lopussa jonkun sivukanavan hyödyntämistä.