Intel-suorittimien haavoittuvuus, joka johtaa tietojen vuotamiseen kolmannen osapuolen kanavien kautta

Ryhmä kiinalaisten ja amerikkalaisten yliopistojen tutkijoita on havainnut Intel-prosessoreissa uuden haavoittuvuuden, joka johtaa kolmannen osapuolen tietovuotoon spekulatiivisten operaatioiden tuloksista, joita voidaan käyttää esimerkiksi piilotetun viestintäkanavan järjestämiseen prosessien välillä tai tunnistaa vuodot Meltdown-hyökkäysten aikana.

Haavoittuvuuden ydin on, että käskyjen spekulatiivisen suorittamisen seurauksena tapahtuva muutos EFLAGS-prosessorirekisterissä vaikuttaa JCC-käskyjen myöhempään suoritusaikaan (hyppy, kun tietyt ehdot täyttyvät). Spekulatiiviset toiminnot eivät valmistu ja tulos hylätään, mutta hylätty EFLAGS-muutos voidaan määrittää analysoimalla JCC-käskyjen suoritusaikaa. Vertailutoiminnot, jotka suoritetaan spekulatiivisessa tilassa ennen siirtymää, johtavat onnistuessaan pieneen viiveeseen, joka voidaan mitata ja käyttää merkkinä sisällön valinnassa.

Intel-suorittimien haavoittuvuus, joka johtaa tietojen vuotamiseen kolmannen osapuolen kanavien kautta

Toisin kuin muut vastaavat sivukanavahyökkäykset, uusi menetelmä ei analysoi muutoksia välimuistissa olevien ja välimuistissa olevien tietojen käyttöajassa eikä vaadi vaihetta EFLAGS-rekisterin palauttamiseksi alkuperäiseen tilaan, mikä vaikeuttaa hyökkäyksen havaitsemista ja estämistä. Esittelynä tutkijat toteuttivat muunnelman Meltdown-hyökkäyksestä käyttämällä uutta menetelmää saadakseen tietoa spekulatiivisen operaation tuloksista. Tietovuodon järjestämismenetelmän toiminta Meltdown-hyökkäyksen aikana demonstroitiin onnistuneesti Intel Core i7-6700- ja i7-7700-suorittimella varustetuissa järjestelmissä ympäristössä, jossa on Ubuntu 22.04 ja Linux-ydin 5.15. Järjestelmässä, jossa oli Intel i9-10980XE -suoritin, hyökkäys toteutettiin vain osittain.

Meltdown-haavoittuvuus perustuu siihen, että käskyjen spekulatiivisen suorittamisen aikana prosessori voi päästä yksityiselle tietoalueelle ja sitten hylätä tuloksen, koska asetetut oikeudet estävät tällaisen pääsyn käyttäjän prosessista. Ohjelmassa spekulatiivisesti suoritettu lohko erotetaan pääkoodista ehdollisen haaran avulla, joka todellisissa olosuhteissa laukeaa aina, mutta johtuen siitä, että ehdollinen lauseke käyttää laskettua arvoa, jota prosessori ei tiedä ennaltaehkäisevän suorituksen aikana. koodi, kaikki haaravaihtoehdot suoritetaan spekulatiivisesti.

Koska Meltdownin klassisessa versiossa spekulatiivisesti suoritettaviin toimintoihin käytetään samaa välimuistia kuin normaalisti suoritetuissa käskyissä, on spekulatiivisen suorituksen aikana mahdollista asettaa välimuistiin markkereita, jotka heijastavat yksittäisten bittien sisältöä suljetulla muistialueella, ja sitten määrittää normaalisti suoritettavassa koodissa niiden merkityksen analysoimalla välimuistissa olevien ja välimuistiin tallentamattomien tietojen käyttöaika. Uusi versio käyttää muutosta EFLAGS-rekisterissä vuotomerkkinä. Peitekanavan esittelyssä yksi prosessi moduloi lähetettyä dataa luodakseen edellytykset EFLAGS-rekisterin sisällön muuttamiselle ja toinen prosessi analysoi JCC-käskyn suoritusajan muutosta luodakseen uudelleen ensimmäisen prosessin lähettämän tiedon.

Lähde: opennet.ru

Lisää kommentti