Uusi NetSpectre Attack ei vaadi uhria lataamaan tai suorittamaan haitallista koodia

Turvallisuus / Uusi NetSpectre Attack ei vaadi uhria lataamaan tai suorittamaan haitallista koodia

NetSpectre pommittaa koneportteja pääsyn saamiseksi

4 minuuttia luettu

Uusi Spectre-luokan CPU-hyökkäys on saanut huomiota akateemisilta tutkijoilta, kun he julkaisivat äskettäin tutkimusartikkelin nimeltä 'NetSpectre: Lue mielivaltainen muisti verkon kautta', jossa käsitellään yksityiskohtaisesti tämän CPU-hyökkäysluokan toimintaa.



Mikä tekee uudesta Spectre CPU -hyökkäyksestä hieman pelottavan, on se ei vaadi hyökkääjä huijata uhriaan lataamaan ja suorittamaan haitallisia komentosarjoja koneellaan tai jopa pääsemään verkkosivustolle, joka käyttää haitallista JavaScriptiä käyttäjän selaimessa.

NetSpectre vain pommittaa koneen verkkoportteja, kunnes se löytää tien tavoitteidensa saavuttamiseksi.



'Spectre-hyökkäykset saavat uhrin suorittamaan spekulatiivisesti toimintoja, joita ei tapahdu ohjelman ohjeiden tiukan sarjamuotoisen järjestyksellisen käsittelyn aikana ja jotka vuotavat uhrin luottamuksellisia tietoja peitetyn kanavan kautta hyökkääjälle'



NetSpectre ei kuitenkaan tule ilman omia puutteita. Sen suodatuksen nopeus on uskomattoman hidas, noin 15 bittiä tunnissa hyökkäysten suorittamiseksi verkkoyhteyden kautta ja kohdistaminen CPU: n välimuistiin.



Tutkimuksessa tutkijat pystyivät saavuttamaan jopa 60 bittiä tunnissa erityisellä NetSpectre-muunnoksella, joka kohdisti CPU: n AVX2-moduulin kautta käsitellyn datan, joka on ominaista Intel-suorittimille.

Kummassakin tapauksessa NetSpectreä pidetään tällä hetkellä liian hitaana hyökkääjien kannalta arvokkaana, mikä tarkoittaa, että NetSpectre on vain teoreettinen uhka, ei jotain, jonka yritysten pitäisi olla peitossa vielä . Teknologian kehittyessä kuitenkin suodatusnopeudet epäilemättä kasvavat, ja sitten meillä on kokonaan uusi luokka kannattavia ja uskomattoman helppoja suorittaa suorittimen hyökkäyksiä.

Uusi NetSpectre-hyökkäys liittyy Spectre V1 -heikkouteen (CVE-2017-5753), jonka Google-tutkijat paljastivat aiemmin tänä vuonna (2018). Tämä tarkoittaa, että kaikkien suorittimien, joihin Spectre V1 voi vaikuttaa, uskotaan myös olevan NetSpectre, jos se on otettu käyttöön asianmukaisella käyttöjärjestelmällä ja suorittimen laiteohjelmistolla.



NetSpectre-palvelussa on tällä hetkellä kaksi hyökkäysvaihtoehtoa: tietojen poimiminen kohdejärjestelmästä ja ASLR: n (Address Space Layout Randomisation) kauko-ohjaaminen kohdejärjestelmässä.

Ensimmäisen hyökkäystyypin tapahtumaketju on seuraava:

  1. Vie haaran ennustaja.
  2. Nollaa mikroarkkitehtuurielementin tila.
  3. Vuoto hieman mikroarkkitehtuurin elementtiin.
  4. Paljasta mikroarkkitehtuurisen elementin tila verkkoon.
  • Vaiheessa 1 hyökkääjä erehdyttää uhrin haaran ennustajan suorittamaan Spectre-hyökkäyksen. Haaran ennustimen vääristämiseksi hyökkääjä hyödyntää vuotovideota, jolla on kelvolliset indeksit. Voimassa olevat indeksit varmistavat, että haaran ennustaja oppii aina ottamaan haaran, ts. Haaran ennustaja spekuloi ehdon olevan totta. Huomaa, että tämä vaihe perustuu vain vuotavaan gadgetiin. Hyökkääjälle ei ole palautetta, joten mikroarkkitehtuurin tilaa ei tarvitse nollata tai lähettää.
  • Vaiheessa 2 hyökkääjän on nollattava mikroarkkitehtuuritila, jotta vuotaneet bitit voidaan koodata käyttämällä mikroarkkitehtuurielementtiä. Tämä vaihe riippuu suuresti käytetystä mikroarkkitehtuurielementistä, esim. Välimuistia hyödyntämällä hyökkääjä lataa suuren tiedoston uhrilta; jos käytetään AVX2: ta, hyökkääjä yksinkertaisesti odottaa yli yhden millisekunnin. Tämän vaiheen jälkeen kaikki vaatimukset täyttyvät vuotamaan vähän uhrista.
  • Vaiheessa 3 hyökkääjä hyödyntää Spectre-haavoittuvuutta voidakseen vuotaa yhden bitin uhrilta. Kun haaran ennustaja on väärässä vaiheessa 1, rajojen ulkopuolisen indeksin tarjoaminen vuotovälineelle suorittaa rajat ylittävän polun ja muuttaa mikroarkkitehtuurielementtiä, eli bitti koodataan mikroarkkitehtuurielementtiin.
  • Vaiheessa 4 hyökkääjän on lähetettävä koodattu tieto verkon kautta. Tämä vaihe vastaa alkuperäisen Spectre-hyökkäyksen toista vaihetta. Hyökkääjä lähettää verkkopaketin, jota lähetysgadget käsittelee, ja mittaa ajan paketin lähettämisestä vastauksen saapumiseen.

Hyökkäystapa # 2: ASLR: n rikkominen etänä

  1. Vie haaran ennustaja.
  2. Käytä rajattua hakemistoa välimuistiin (tunnettu) muistipaikka.
  3. Mittaa toiminnon suoritusaika verkon välityksellä päättääksesi, tallentiko välimuistin ulkopuolinen pääsy osan siitä.

Spectre-vastatoimet

Intel ja AMD suosittelevat lfence-käskyn käyttämistä keinottelun esteenä. Tämä ohje on lisättävä tietoturvakriittisten rajojen tarkistuksen jälkeen spekulatiivisen suorituksen lopettamiseksi. Tämän lisäämällä jokaiseen rajatarkastukseen on kuitenkin huomattava suorituskyky.

Koska NetSpectre on verkkopohjainen hyökkäys, sitä ei voida estää vain vähentämällä Spectreä, vaan myös verkkokerroksen vastatoimilla. Triviaali NetSpectre-hyökkäys voidaan helposti havaita DDoS-suojauksella, koska samasta lähteestä lähetetään useita tuhansia identtisiä paketteja.

Hyökkääjä voi kuitenkin valita minkä tahansa kompromissin pakettien sekunnissa ja vuotaneiden bittien sekunnissa välillä. Täten nopeutta, jolla bittiä vuotaa, voidaan yksinkertaisesti vähentää sen kynnyksen alapuolelle, jonka DDoS-seuranta voi havaita. Tämä pätee mihin tahansa seurantaan, joka yrittää havaita käynnissä olevia hyökkäyksiä, esimerkiksi tunkeutumisen havaitsemisjärjestelmät.

Vaikka hyökkäystä ei teoriassa estetä, hyökkäys tulee jossain vaiheessa mahdottomaksi, koska vuotamiseen tarvittava aika kasvaa huomattavasti. Toinen tapa vähentää NetSpectreä on lisätä keinotekoista kohinaa verkon viiveeseen. Koska mittausten määrä riippuu verkon viiveen vaihtelusta, lisämelu vaatii hyökkääjän suorittamaan enemmän mittauksia. Jos verkon viiveen varianssi on riittävän suuri, NetSpectre-hyökkäykset ovat mahdottomia tarvittavien mittausten suuren määrän vuoksi.