Novi NetSpectre napad ne zahtijeva da žrtva preuzme ili pokrene zlonamjerni kod

Sigurnost / Novi NetSpectre napad ne zahtijeva da žrtva preuzme ili pokrene zlonamjerni kod

NetSpectre bombardira mašinske priključke kako bi ušao

4 minute čitanja

Novi CPU napad klase Spectre privukao je pažnju akademskih znanstvenika jer su nedavno objavili istraživački rad pod nazivom 'NetSpectre: Čitaj proizvoljnu memoriju preko mreže', koji detaljno opisuje kako ta klasa CPU napada djeluje.



Ono što novi Spectre CPU napad čini pomalo zastrašujućim jest to što on ne zahtijeva napadač da prevari svoju žrtvu da preuzme i pokrene zlonamjerne skripte na svom računalu ili čak pristupi web mjestu koje pokreće zlonamjerni JavaScript u korisnikovom pregledniku.

NetSpectre će jednostavno bombardirati mrežne priključke računala dok ne pronađe način za postizanje svojih ciljeva.



'Spektralni napadi potiču žrtvu na špekulativno izvođenje operacija koje se ne bi dogodile tijekom strogo serijske obrade naredbi programa, a koji putem tajnog kanala otkrivaju povjerljive podatke žrtve napadaču'



No, NetSpectre ne dolazi bez vlastitih nedostataka. Ima nevjerojatno malu brzinu eksfiltracije, oko 15 bita na sat za napade koji se provode putem mrežne veze i ciljanje podataka pohranjenih u predmemoriji CPU-a.



U istraživačkom radu akademici su uspjeli postići do 60 bita / sat s posebnom varijacijom NetSpectre-a koja je ciljala podatke obrađene putem CPU-ovog AVX2 modula, koji je specifičan za Intelove CPU-ove.

U oba slučaja, NetSpectre se trenutno smatra presporim da bi bio vrijedan za napadače, što znači da je NetSpectre samo teoretski prijetnja, a ne nešto od čega bi se tvrtke trebale skrivati još . Međutim, kako tehnologija bude napredovala, brzine eksfiltracije će se nesumnjivo povećavati i tada imamo potpuno novu klasu održivih i nevjerojatno jednostavnih za izvođenje CPU napada zbog kojih se moramo brinuti.

Novi napad NetSpectre povezan je s ranjivošću Spectre V1 (CVE-2017-5753) koju su Googleovi istraživači otkrili ranije ove godine (2018). To znači da se vjeruje da su svi CPU-i na koje bi Spectre V1 mogao utjecati također NetSpectre, ako je raspoređen s odgovarajućim firmwareom OS-a i CPU-a.



Trenutno postoje dvije inačice napada za NetSpectre: Izdvajanje podataka iz ciljnog sustava i daljinsko razbijanje ASLR-a (Randomisation Layout Address Layout) na ciljnom sustavu.

Lanac događaja za prvu vrstu napada ide ovako:

  1. Mistrain prediktor grane.
  2. Resetirajte stanje mikroarhitekturnog elementa.
  3. Propustite malo do mikroarhitekturnog elementa.
  4. Izložite stanje mikroarhitekturnog elementa mreži.
  • U koraku 1, napadač pogrešno izučava granati prediktora žrtve da izvede Spectre napad. Kako bi pogrešno obučio prediktor grane, napadač koristi gadget za curenje valjanim indeksima. Važeći indeksi osiguravaju da prediktor grane nauči uvijek uzimati granu, tj. Prediktor grane nagađa da je uvjet istinit. Imajte na umu da se ovaj korak oslanja samo na uređaj za curenje. Ne postoji povratna informacija napadaču, pa stoga mikroarhitekturno stanje ne mora biti resetirano ili preneseno.
  • U koraku 2, napadač mora resetirati mikroarhitekturno stanje kako bi omogućio kodiranje procurjelih bitova pomoću mikroarhitekturnog elementa. Ovaj korak uvelike ovisi o korištenom mikroarhitekturnom elementu, npr. Kada koristi predmemoriju, napadač preuzima veliku datoteku od žrtve; ako se koristi AVX2, napadač jednostavno čeka više od 1 milisekunde. Nakon ovog koraka zadovoljeni su svi zahtjevi da malo procuri iz žrtve.
  • U koraku 3, napadač iskorištava ranjivost Spectre da procuri jedan bit iz žrtve. Kako se prediktor grana pogrešno obučava u koraku 1, pružanje indeksa izvan granica uređaju za curenje pokrenut će unutar granicu i modificirati mikroarhitekturni element, tj. Bit je kodiran u mikroarhitekturnom elementu.
  • U 4. koraku napadač mora prenositi kodirane informacije putem mreže. Ovaj korak odgovara drugoj fazi izvornog napada Spectre. Napadač šalje mrežni paket kojim upravlja gadget za prijenos i mjeri vrijeme od slanja paketa do dolaska odgovora.

Metoda napada br. 2: Daljinsko rušenje ASLR-a

  1. Mistrain prediktor grane.
  2. Pristupite indeksu izvan granica kako biste predmemorirali (poznato) memorijsko mjesto.
  3. Izmjerite vrijeme izvršavanja funkcije putem mreže da biste utvrdili je li izvanmrežni pristup predmemorirao njezin dio.

Spektar protumjere

Intel i AMD preporučuju uporabu instrukcije lfence kao špekulacijsku barijeru. Ova se uputa mora umetnuti nakon provjere kritičnih granica da bi se zaustavilo špekulativno izvršavanje. Međutim, dodavanje ovoga svakoj provjeri granica ima značajne režijske performanse.

Budući da je NetSpectre mrežni napad, ne može se spriječiti samo ublažavanjem Spectra već i protumjerama na mrežnom sloju. Trivijalni NetSpectre napad lako se može otkriti DDoS zaštitom, jer se više tisuća identičnih paketa šalje iz istog izvora.

Međutim, napadač može odabrati bilo koji kompromis između paketa u sekundi i curenja bitova u sekundi. Stoga se brzina curenja bitova može jednostavno smanjiti ispod praga koji DDoS nadzor može otkriti. To vrijedi za svako praćenje koje pokušava otkriti trajne napade, npr. Sustave za otkrivanje upada.

Iako se napad teoretski ne sprječava, u nekom trenutku napad postaje neizvediv, jer se vrijeme potrebno da malo curi drastično povećava. Druga metoda za ublažavanje NetSpectre-a je dodavanje umjetne buke kašnjenju mreže. Kako broj mjerenja ovisi o varijansi u kašnjenju mreže, dodatni šum zahtijeva napadača da izvrši više mjerenja. Dakle, ako je odstupanje u kašnjenju mreže dovoljno veliko, napadi NetSpectre postaju neizvodljivi zbog velikog broja potrebnih mjerenja.