Uusi spekulatiivisen toteuttamisen haavoittuvuus iskee AMD, ARM ja Intel

Intel Skylake -malli, rakennettu käyttäen 14nm prosessia. IntelSkylake-die die, rakennettu käyttäen 14nm prosessia

Uusi hyökkäys, joka käyttää prosessorien spekulatiivista suoritusta kyky vuotaa tietoja, nimeltään Spekulatiivinen myymälän ohitus (SSB), on julkaistu sen jälkeen, kun Microsoftin tietoturvakeskus ja Google Project Zero. Intelin ja AMD: n prosessorit, samoin kuin jotkut ARM: ää käyttävistä malleja, kaikki ovat vaikutusta.

Lisälukema

”Meltdown” ja “Spectre:” Jokaisella nykyaikaisella prosessorilla ei ole asennusta turvallisuusvirheitä Koska sulamis- ja hajontavirheet ilmoitettiin aikaisemmin tänä vuonna nykyaikaisia ​​mikroprosessoreita on tutkittu tarkkaan paljastaen useita uusia hyökkäyksiä.

Kaikki hyökkäykset noudattavat yhteisiä periaatteita. kukin prosessorilla on arkkitehtuurikäyttäytyminen (dokumentoitu käyttäytyminen joka kuvaa kuinka ohjeet toimivat ja kyseiset ohjelmoijat riippuu ohjelmien kirjoittamisesta) ja mikroarkkitehti käyttäytyminen (tapa, jolla arkkitehtuuri toteutetaan todellisesti käyttäytyy). Ne voivat poiketa hienovaraisilla tavoilla. Esimerkiksi, arkkitehtonisesti ohjelma, joka lataa arvon tietyltä osoite muistissa odottaa, kunnes osoite tiedetään ennen yritetään suorittaa kuorma. Mikroarkkitehtonisesti kuitenkin prosessori saattaa yrittää arvata spekulatiivisesti osoitteeseen niin, että se voi alkaa ladata arvoa muistista (mikä on hidasta) jopa ennen kuin on täysin varmaa, mitä osoitetta sen tulisi käyttää.

Jos prosessori arvaa väärin, se ohittaa arvauksen arvo ja suorita kuorma uudelleen, tällä kertaa oikein osoite. Arkkitehtonisesti määritelty käyttäytyminen säilyy siten. Mutta tämä virheellinen arvaus häiritsee prosessorin muita osia erityisesti välimuistin sisältö. Nämä mikroarkkitehtoniset häiriöt voidaan havaita ja mitata, mikä mahdollistaa haittaohjelman Ohjelma voi tehdä päätelmiä muistiin tallennetuista arvoista.

Meltdown- ja Spectre-hyökkäykset kaikki hyödyntävät tätä eroa. Joten myös SSB. Microsoftin kirjoittamasta ongelmasta, ongelmallinen tapahtumajakso on seuraava:

  1. Tallenna arvo muistipaikkaan “hitaasti”.
  2. Lataa arvo samaan muistipaikkaan “nopeasti”.
  3. Käytä juuri luettua arvoa häiritäksesi välimuistia havaittavissa tapa.

Tässä “hitaasti” ja “nopeasti” viittaavat siihen, kuinka nopeasti prosessori pystyy määritä luettavan ja kirjoitettavan muistin sijainti. temppu on tehdä ensimmäinen askel, myymälä, riippuvainen tuloksista aiemmista ohjeista; tämä tarkoittaa, että prosessorin on odotettava ennen kuin se tietää, mihin arvo tallennetaan. Toinen vaihe, last, on sitä vastoin rakennettu siten, että osoite voidaan määrittää nopeasti, odottamatta. Tässä tilanteessa prosessorin spekulatiivinen suoritus “ohittaa” tai “ohittaa” myymälä (koska se ei vielä tiedä missä arvo todella on tallennetaan) ja oletetaan vain, että muistipaikka on kelvollinen. Tämä antaa hyökkäykselle nimen: myymälä on spekulatiivisesti ohitettu, mikä mahdollistaa prosessorin huijaamisen lukemaan arvoja, joita sen ei pitäisi.

Lopulta prosessori selvittää, että myymälä ja kuorma käytti samaa muistiosoitetta, joten kuorma otti väärä arvo. Keinottelukäsittely hylätään ja on oikein laskelma suoritetaan oikeilla arvoilla. Arkkitehtuuri käyttäytyminen säilyy siis kunnolla. Mutta tässä vaiheessa prosessorin mikroarkkitehtoninen tila on jo muutettu. Nämä muutokset voidaan havaita, ja hyökkääjä voi käyttää niitä muutokset selvittääksesi mitkä arvot luettiin.

Hyviä ja huonoja uutisia

Kuten Specter ja Meltdown, SSB vaatii hyökkääjän olevan pystyy suorittamaan koodin uhrijärjestelmässä. Tämä tekee siitä erityisen huolenpito pilvipalveluntarjoajille (missä ilkeä osapuoli saattaa Yritä hyökätä hypervalvojaan ja puhkaista heidän virtuaalistaan kone) ja selaimen JavaScript-moottoreille (jos ne ovat haitallisia skriptit voivat yrittää puhkeaa hiekkalaatikostaan), mutta päinvastoin, se tarkoittaa, että näiden skenaarioiden ulkopuolella soveltamisala on rajoitettu. Yleensä tarve pystyä suorittamaan mielivaltainen hyökkäyskoodi ensimmäinen paikka tarkoittaa, että yhden tai useamman muun puutteen on oltava jo olemassa. Samoin tämä hyökkäys sallii vain tietojen lukemisen. Sillä aikaa joskus kyseisestä tiedosta on itsessään hyötyä (esimerkiksi salasanat tai salausavaimet), se yleensä tarjoaa vain lisää tiedot (kuten ytimen muistin asettelun yksityiskohdat) – auttaa suorittamaan uusi hyökkäys jollain muulla virheellä.

Riskiä ja hyväksikäytettävyyttä ajatellen tämä hyökkäys on samanlainen kuin ensimmäinen Spectre variantti. Ensimmäinen Spectre variantti, matriisin rajat ohittaa, käyttää samanlaista mallia kahdesta operaatiosta sekvenssi (SSB: lle tallentaa sitten kuorma; Specter v1: lle haara) sitten kuorma), jossa ensimmäinen toiminta muuttaa arkkitehtonisesti kuorman lopputulos, mutta toteutetaan spekulatiivisesti ikään kuin ei. Tämä rakenteellinen samankaltaisuus tarkoittaa, että sama sovellustaso Specter v1: tä osoittavat muutokset osoittavat myös SSB: tä. Erityisesti riskisovelluksissa tulisi olla ylimääräinen lisäys ohje ensimmäisen operaation ja kuormituksen välillä estää kuorman suorittamisen spekulatiivisesti. Tämä ei ole välttämättä ainoa tapa tehdä sovellus turvalliseksi, mutta se on johdonmukainen ja suhteellisen helppo soveltaa. Estää spekulatiivinen suoritus heikentää ohjelman suorituskykyä jonkin verran, mutta jos sitä sovelletaan järkevästi – koska jokainen kuorma ei ole vaarassa – vaikutus voi olla merkityksetön.

Aiomme nähdä myös käyttöjärjestelmän padon, mikrokoodit ja laiteohjelmistopäivitykset, samoin kuin toisen kerran Peikko variantti. Viimeaikaiset AMD-prosessorit sisältävät ominaisuuden, joka poistetaan käytöstä tämä erityinen spekulatiivinen suoritus, ja Microsoft on julkaisemme Windows-korjaukset, jotka sallivat tämän ominaisuuden olla käytetty. Intel julkaisee päivityksiä, jotka tarjoavat sen prosessorit, joilla on samanlainen mahdollisuus poistaa tällainen spekulointia. Ne lopulta jaetaan firmware ja käyttöjärjestelmän päivitykset.

Molemmissa tapauksissa yritykset kuitenkin suosittelevat tätä käyttäjät eivät ota tätä järjestelmänlaajuista vaihtoehtoa käyttöön. Suorituskyvyn vaikutus voi olla melko korkea – Intel sanoo 2–8 prosenttia vertailuarvojen, kuten SYSmark ja SPECint, vähentäminen – ja niin Parempi ratkaisu on muutokset riskisovelluksiin. järjestelmänlaajuinen muutos on vara, ellei se ole mahdollista.

Like this post? Please share to your friends:
Leave a Reply

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: