Googlen LVI-suojausohjelmisto osoitti 14-kertaisen suorituskyvyn

Zola Bridges Googlelta hän tarjosi LLVM-kääntäjäsarjalle SESES-suojauksen (Speculative Execution Side Effect Suppression) sisältävä korjaustiedosto, joka auttaa estämään hyökkäykset Intel-suorittimien spekulatiivisiin suoritusmekanismeihin, kuten esim. LVI. Suojausmenetelmä on toteutettu kääntäjätasolla ja perustuu kääntäjän ohjeiden lisäämiseen konekoodia generoitaessa AITA, jotka lisätään ennen jokaista muistin luku- tai kirjoituskäskyä sekä ennen ensimmäistä haarakäskyä lohkon päättävässä käskyryhmässä.

LFENCE-käsky odottaa kaikkien aiempien muistilukujen sitoutumista ja estää myöhempien käskyjen ennaltaehkäisyn LFENCE:n jälkeen, kunnes vahvistus on valmis. LFENCE:n käyttö heikentää merkittävästi suorituskykyä, joten suojausta suositellaan käytettäväksi ääritapauksissa erityisen kriittisen koodin kohdalla. Täyden suojan lisäksi korjaustiedostossa on kolme lippua, joiden avulla voit poistaa tietyt suojaustasot valikoivasti käytöstä vähentääksesi negatiivista vaikutusta suorituskykyyn.

Suoritetuissa testeissä SESES-suojauksen käyttö BoringSSL-paketille johti kirjaston suorittamien toimintojen sekunnissa 14-kertaiseen laskuun - kirjaston suojatun version suorituskyky oli keskimäärin vain 7.1 %. suojaamaton versio (vaihtelu testistä riippuen 4 %:sta 23 %:iin).

Vertailun vuoksi: ehdotettu Aikaisemmin GNU Assemblerissä mekanismi, joka suorittaa LFENCE-korvauksen jokaisen muistin lataustoiminnon jälkeen ja ennen joitain haarakäskyjä, osoitti suorituskyvyn laskua noin 5 kertaa (22 % koodista ilman suojausta). Myös suojausmenetelmä ehdotettu и toteutettu Intelin insinöörit, mutta sen suorituskykytestien tuloksia ei ole vielä julkaistu. Aluksi LVI-hyökkäyksen tunnistaneet tutkijat ennustivat 2–19-kertaista suorituskyvyn heikkenemistä käytettäessä täyttä suojausta.

Lähde: opennet.ru

Lisää kommentti