Onko mahdollista, että juuri prosessorisi nopeus vaarantaa tietoturvasi? Ymmärtääksemme, miten prosessorit saavuttavat nopeutensa , meidän on otettava huomioon, että ne toimivat "ennustamalla tulevaisuutta"... Eivät, ne eivät ole taikoja tai niillä ei ole pientä kristallipalloa...
Prosessorit toimivat siten, että sen sijaan, että siru odottaisi ohjelman valitsemaa polkua, se ennustaa todennäköisen reitin ja ennakoi sen. Jos ennuste on väärä, työ hylätään, mutta jäljet jäävät muistiin. Tässä kohtaa Spectre astuu kuvaan , yksi merkittävimmistä viime vuosina löydetyistä haavoittuvuuksista. Löytönsä jälkeen hyökkääjät ovat oppineet lukemaan näitä jälkiä ja luoneet yhä kehittyneempiä variantteja; TONTOU on yksi näistä uusista haavoittuvuuksista.
MIT:n tutkijat ovat löytäneet TONTOUn (Time-of-Neutralization to Time-of-Use), hienostuneen uuden tekniikan Spectre v2 -haavoittuvuuksien hyödyntämiseksi , jonka avulla ytimen muistia voidaan lukea käyttäjätilasta.
Vaikka valmistajat ja kehittäjät ovat suunnitelleet erilaisia suojausmekanismeja ennakoivia hyökkäyksiä vastaan vuosien ajan, hyökkääjät ovat onnistuneet löytämään uusia reittejä, ja tämä uusi CSAIL-tutkimus osoittaa, kuinka nämä suojaukset voidaan ohittaa.
Tutkijat havaitsivat, että puskurin tyhjennyshetken ja ennusteiden käyttöhetken välillä on väistämätön aikaväli , ja juuri tässä pienessä ajassa koodia (joskus vain kourallinen ohjeita) ruiskutetaan järjestelmän keskeytysten kautta, mikä mahdollistaa laitteiston uudelleen saastumisen ja kriittisten tietojen poimimisen.
Hyökkäyksestä: Häiriöt ja Safe-RET-tietomurto
AMD: llä on SRSO (Speculative Return Stack Overflow) -haavoittuvuuksia vastaan puolustuskeino nimeltä Saferet, joka puhdistaa ennustusjärjestelmän välittömästi ennen jokaista käyttökertaa. Tämä jättää haavoittuvuusikkunan , jota voidaan hyödyntää muutamassa kymmenessä nanosekunnissa. Tällaisen pienen ikkunan hyökkäämiseksi tutkijat kehittivät tekniikan nimeltä Interrupt Injection.
Suorittimet keskeyttävät tehtäviään jatkuvasti käsitelläkseen keskeytyksiä, ja yleiset ohjelmat voivat konfiguroida näitä ajastimia . Tämän mielessä pitäen tutkijat säätivät ajastinta tarkasti ja käyttämällä suorittimen hidastamistekniikkaa aiheuttivat suorittimen keskeytyksen täsmälleen väärällä hetkellä . Tämän keskeytyksen aikana hyökkääjä voi pakottaa suuren määrän puheluita suoritettavaksi, jolloin osoitepino täyttyy liikaa. Kun virheellinen suoritus päättyy, suoritin hylkää prosessin, mutta käytetyt tiedot jäävät jaettuihin välimuisteihin , joista ne voidaan poimia analysoimalla käyttöaikoja.
Salasanan purkaminen ja testaaminen oikeissa järjestelmissä
Osoittaakseen TONTOUn vakavuuden tiimi rakensi toimivan hyökkäystavan AMD-järjestelmään, jossa oli käytössä nykyinen Linux-ydin. Ensimmäinen este oli ohittaa puolustus, joka satunnaistaa käyttöjärjestelmän sijainnin muistissa, minkä he onnistuivat tekemään kymmenellä yrityksellä, noin yhdeksän minuutin testiä kohden.
Myöhemmin he osoittivat paikallisen hyökkäyksen oikeudettomalla käyttäjällä pääkäyttäjän salasanan tiivisteen selvittämiseksi ja onnistuivat purkamaan tietoja 5.47 tavua sekunnissa 91.97 %:n tarkkuudella. 50 %:ssa testeistä (joiden keskiarvo oli 18 minuuttia) he onnistuivat havaitsemaan ja purkamaan salasanatiedoston sisällön. Vaikka tämä on hidas nopeus, se on enemmän kuin riittävä vaarantamaan palvelimen kriittisesti.
Vaikutus Inteliin, AMD:hen ja lievennyskorjaukseen
Tiimi testasi neljää Intelin ja AMD:n prosessorien sukupolvea ja havaitsi ennustevirheitä molemmilla arkkitehtuureilla. Vaikka tekniikka osoittautui toimivaksi AMD:n Zen 1–4 -perheissä , Intelin siruilla hyökkäys ohitti kaksi eri suojausta , vaikka eri Intel-sukupolvien välillä havaittiin epäjohdonmukaista toimintaa , mikä viittaa siihen, että nimelliset puolustusmekanismit on toteutettu eri tavoin laitteistossa.
Ratkaisuna tutkijat ehdottavat ennustusmekanismin tyhjentämistä toisen kerran keskeytyksen päätyttyä. Vaikka tämä toimenpide vaikuttaa toimivalta AMD:lle, se voi olla haitallinen Intelille, koska hyökkäys perustuu siihen, että keskeytys jättää pysyvän tilan, mikä voi tehdä hyökkäyksestä luotettavamman.
Tutkijat ilmoittivat asiasta AMD:lle ja Intelille helmikuun alussa ja Linux-ytimen ylläpitäjille maaliskuussa. Tämän seurauksena haavoittuvuuden lieventävä koodinesto integroitiin Linux-ytimeen 5. elokuuta.
Lopuksi, jos olet kiinnostunut oppimaan lisää, löydät tiedot seuraavasta linkistä.