Novi napad NetSpectre ne zahteva, da žrtev prenese ali zažene zlonamerno kodo

Varnost / Novi napad NetSpectre ne zahteva, da žrtev prenese ali zažene zlonamerno kodo

NetSpectre bombardira vrata vrat za vstop

4 minute branja

Novi napad na CPU razreda Spectre je bil deležen pozornosti akademskih znanstvenikov, saj so pred kratkim objavili raziskovalno nalogo z naslovom 'NetSpectre: Read Arbitrary Memory over Network', ki podrobno opisuje, kako deluje ta razred napadov na CPU.



Zaradi česar je napad novega CPU Spectra nekoliko zastrašujoč, je to, da je ne zahteva napadalec, da svojo žrtev zavede v prenos in zagon zlonamernih skriptov na svojem računalniku ali celo dostop do spletnega mesta, ki v brskalniku uporabnika izvaja zlonamerni JavaScript.

NetSpectre bo preprosto bombardiral omrežna vrata stroja, dokler ne najde poti za dosego svojih ciljev.



'Spektralni napadi žrtev spodbudijo k špekulativnemu izvajanju operacij, ki se ne bi zgodile med strogo zaporednim postopkom obdelave navodil programa in zaradi katerih zaupni podatki žrtve po tajnem kanalu izpustijo napadalca.'



NetSpectre pa nima svojih pomanjkljivosti. Ima izjemno počasno hitrost eksfiltracije, približno 15 bitov na uro za napade, ki se izvajajo prek omrežne povezave, in ciljanje podatkov, shranjenih v predpomnilniku CPU.



V raziskovalnem prispevku so akademiki lahko dosegli do 60 bitov / uro s posebno različico NetSpectre, ki je ciljno usmerjala podatke, obdelane prek CPU-jevega modula AVX2, ki je značilen za Intelove CPU-je.

V obeh primerih se NetSpectre trenutno šteje za prepočasnega, da bi bil dragocen za napadalce, kar pomeni, da je NetSpectre le teoretični grožnja, ne nekaj, za kar bi se podjetja morala skrivati samo še . Vendar pa se bo z napredovanjem tehnologije hitrost eksfiltracije nedvomno povečevala, nato pa imamo pred seboj povsem nov razred izvedljivih in neverjetno enostavnih napadov na CPU.

Novi napad NetSpectre je povezan z ranljivostjo Spectre V1 (CVE-2017-5753), ki so jo Googlovi raziskovalci razkrili v začetku tega leta (2018). To pomeni, da naj bi bili tudi vsi CPU, na katere bi lahko vplival Spectre V1, tudi NetSpectre, če je nameščen s pravilno vdelano programsko opremo OS in CPU.



Trenutno obstajata dve različici napadov za NetSpectre: pridobivanje podatkov iz ciljnega sistema in oddaljeno razbijanje ASLR (Randomisation Layout Address Layout) v ciljnem sistemu.

Veriga dogodkov za prvo vrsto napada poteka takole:

  1. Mistrain napovedovalec vej.
  2. Ponastavite stanje mikroarhitekturnega elementa.
  3. Nekoliko uhajte v mikroarhitekturni element.
  4. Izpostavite stanje mikroarhitekturnega elementa omrežju.
  • V 1. koraku napadalec napačno napove vejo žrtev, da izvede napad Spectre. Da bi napačno napovedal napovednik vej, napadalec pripomoček za uhajanje izkoristi z veljavnimi indeksi. Veljavni indeksi zagotavljajo, da se napovedovalec vej nauči vedno vzeti vejo, tj. Napovedovalec vej domneva, da je pogoj resničen. Upoštevajte, da se ta korak opira samo na pripomoček za uhajanje. Napadalec nima povratnih informacij, zato mikroarhitekturnega stanja ni treba ponastaviti ali prenesti.
  • V koraku 2 mora napadalec ponastaviti mikroarhitekturno stanje, da omogoči kodiranje uhajajočih bitov z uporabo mikroarhitekturnega elementa. Ta korak je močno odvisen od uporabljenega mikroarhitekturnega elementa, na primer napadalec pri izkoriščanju predpomnilnika od žrtve prenese veliko datoteko; če se uporabi AVX2, napadalec preprosto počaka več kot 1 milisekundo. Po tem koraku so izpolnjene vse zahteve, da lahko žrtev nekoliko uhaja.
  • V 3. koraku napadalec izkorišča ranljivost Spectre, da iz žrtev izpusti en bit. Ker je napovednik vej napačen v koraku 1, bo zagotavljanje indeksa zunaj meje pripomočku za uhajanje zagnalo pot v mejah in spremenilo mikroarhitekturni element, tj. Bit je kodiran v mikroarhitekturnem elementu.
  • V koraku 4 mora napadalec po omrežju prenesti kodirane informacije. Ta korak ustreza drugi fazi prvotnega napada Spectre. Napadalec pošlje omrežni paket, ki ga obdeluje pripomoček za prenos, in izmeri čas od pošiljanja paketa do prihoda odziva.

Metoda napada # 2: Daljinsko kršenje ASLR

  1. Mistrain napovedovalec vej.
  2. Dostopite do indeksa zunaj meja, da predpomnite (znano) lokacijo pomnilnika.
  3. Izmerite čas izvajanja funkcije prek omrežja, da ugotovite, ali je zunanji dostop predpomnil njen del.

Spectre Protiukrepi

Intel in AMD priporočata uporabo navodil lfence kot špekulacijsko oviro. To navodilo je treba vstaviti po varnostno kritičnih mejah, da se ustavi špekulativno izvajanje. Vendar pa dodajanje tega vsakemu preverjanju meja znatno obremenjuje uspešnost.

Ker je NetSpectre omrežni napad, ga ni mogoče preprečiti le z ublažitvijo Spectra, temveč tudi s protiukrepi na omrežni plasti. Trivialni napad NetSpectre je mogoče zlahka zaznati z zaščito DDoS, saj je več tisoč enakih paketov poslanih iz istega vira.

Vendar pa lahko napadalec izbere kateri koli kompromis med paketi na sekundo in uhajanjem bitov na sekundo. Tako lahko hitrost uhajanja bitov preprosto zmanjšamo pod prag, ki ga lahko zazna nadzor DDoS. To velja za vsak nadzor, ki poskuša zaznati nenehne napade, npr. Sisteme za odkrivanje vdorov.

Čeprav napada teoretično ni mogoče preprečiti, v določenem trenutku napad postane neizvedljiv, saj se čas, ki je potreben za malo uhajanje, drastično poveča. Druga metoda za ublažitev NetSpectre je dodajanje umetnega šuma latenci omrežja. Ker je število meritev odvisno od razlike v zakasnitvi omrežja, dodaten šum zahteva, da napadalec izvede več meritev. Če so razlike v zakasnitvi omrežja dovolj visoke, napadi NetSpectre postanejo neizvedljivi zaradi velikega števila potrebnih meritev.