Naujam „NetSpectre Attack“ nereikia aukos atsisiųsti ar paleisti kenkėjiško kodo

Saugumas / Naujam „NetSpectre Attack“ nereikia aukos atsisiųsti ar paleisti kenkėjiško kodo

„NetSpectre“ bombarduoja mašinų prievadus, kad galėtų patekti

4 minutes perskaityta

Naujas „Spectre“ klasės procesoriaus išpuolis sulaukė akademinių mokslininkų dėmesio, nes jie neseniai išleido mokslinį darbą „NetSpectre: Read Arbitrary Memory over Network“, kuriame išsamiai aprašoma, kaip veikia ši CPU atakos klasė.



Naujo „Spectre“ procesoriaus išpuolį daro šiek tiek baisų nereikalauja užpuolikas apgauti savo auką atsisiųsdamas ir paleisdamas kenkėjiškus scenarijus savo kompiuteryje ar net pasiekdamas svetainę, kurioje vartotojo naršyklėje veikia kenkėjiškas „JavaScript“.

„NetSpectre“ tiesiog bombarduos mašinos tinklo prievadus, kol jis ras būdą pasiekti savo tikslus.



„Spektro išpuoliai paskatina auką spekuliaciškai atlikti operacijas, kurios neįvyks griežtai nuosekliai tvarkant programos instrukcijas ir kurios slaptu kanalu nutekėjusiam asmeniui nutekina aukos konfidencialią informaciją“.



Tačiau „NetSpectre“ nėra be trūkumų. Jis turi nepaprastai lėtą filtravimo greitį, maždaug 15 bitų per valandą, kad atakos būtų vykdomos per tinklo jungtį, ir taikant duomenis, saugomus procesoriaus talpykloje.



Tyrimo darbe akademikai sugebėjo pasiekti iki 60 bitų per valandą, naudodami specialų „NetSpectre“ variantą, kuris nukreipė duomenis, apdorotus per procesoriaus AVX2 modulį, kuris būdingas tik „Intel“ procesoriams.

Bet kuriuo atveju „NetSpectre“ šiuo metu laikoma per lėta, kad būtų vertinga užpuolikams, o tai reiškia, kad „NetSpectre“ yra tik teorinis grėsmė, o ne tai, dėl ko įmonės turėtų užsidegti tik dar . Tačiau tobulėjant technologijoms, filtravimo greitis neabejotinai padidės, ir tada turime visiškai nerimą keliančią perspektyvių ir nepaprastai lengvai atliekamų procesoriaus atakų klasę.

Nauja „NetSpectre“ ataka yra susijusi su „Spectre V1“ pažeidžiamumu (CVE-2017-5753), kurį „Google“ tyrėjai atskleidė šių metų pradžioje (2018 m.). Tai reiškia, kad visi procesoriai, kuriuos gali paveikti „Spectre V1“, taip pat laikomi „NetSpectre“, jei jis yra įdiegtas su tinkama OS ir procesoriaus programine įranga.



Šiuo metu yra du „NetSpectre“ atakos variantai: duomenų išskyrimas iš tikslinės sistemos ir ASLR (adresų erdvės išdėstymo atsitiktinių parinkčių) nuotolinis nutraukimas tikslinėje sistemoje.

Pirmos rūšies atakų įvykių grandinė vyksta taip:

  1. Nukreipkite šakos numatiklį.
  2. Iš naujo nustatykite mikroarchitektūrinio elemento būseną.
  3. Šiek tiek nutekėkite į mikroarchitektūrinį elementą.
  4. Veikite mikroarchitektūrinio elemento būseną tinkle.
  • 1 žingsnyje užpuolikas suklaidina aukos šakos numatytoją, kad jis atliktų „Spectre“ ataką. Norėdami suklaidinti šakos prognozavimo įrankį, užpuolikas naudoja nutekėjimo įtaisą su galiojančiais rodikliais. Galiojantys indeksai užtikrina, kad šakos prognozuotojas išmoktų visada paimti šaką, t. Y. Šakos prognozuotojas spėja, kad sąlyga yra teisinga. Atminkite, kad šis veiksmas priklauso tik nuo nutekėjimo įtaiso. Užpuolikui nėra atsiliepimų, todėl mikroarchitektūrinės būsenos nereikia iš naujo nustatyti ar perduoti.
  • 2 žingsnyje užpuolikas turi iš naujo nustatyti mikroarchitektūrinę būseną, kad įgalintų užkoduotų bitų kodavimą naudojant mikroarchitektūrinį elementą. Šis žingsnis labai priklauso nuo naudojamo mikroarchitektūrinio elemento, pvz., Naudodamas talpyklą, užpuolikas iš aukos atsisiunčia didelį failą; jei naudojamas AVX2, užpuolikas tiesiog laukia daugiau nei 1 milisekundę. Po šio veiksmo tenkinami visi reikalavimai, kad šiek tiek nutekėtų auka.
  • 3 žingsnyje užpuolikas išnaudoja „Spectre“ pažeidžiamumą, kad iš aukos nutekėtų vienas bitas. Kadangi šakos prognozavimo priemonė yra neteisingai atlikta 1 žingsnyje, pateikiant nutekėjimo programėlės ribų rodiklį, bus atliekamas ribų kelias ir modifikuojamas mikroarchitektūrinis elementas, t. Y. Bitas užkoduotas mikroarchitektūriniame elemente.
  • 4 žingsnyje užpuolikas turi perduoti užkoduotą informaciją per tinklą. Šis žingsnis atitinka antrąjį pradinės „Spectre“ atakos etapą. Užpuolikas siunčia tinklo paketą, kurį tvarko perdavimo programėlė, ir matuoja laiką nuo paketo išsiuntimo iki atsakymo gavimo.

2 atakos metodas: nuotolinis ASLR pažeidimas

  1. Nukreipkite šakos numatiklį.
  2. Pasiekite ne ribų indeksą, jei norite išsaugoti (žinomą) atminties vietą.
  3. Išmatuokite funkcijos vykdymo laiką per tinklą, kad nustatytumėte, ar išorinė prieiga išsaugojo jos dalį.

Spektro atsakomosios priemonės

„Intel“ ir AMD rekomenduoja naudoti „lfence“ instrukciją kaip spekuliacinį barjerą. Ši instrukcija turi būti įterpta patikrinus svarbias saugumo ribas, kad būtų sustabdytas spekuliacinis vykdymas. Tačiau pridedant tai prie kiekvienos ribos tikrinimo, reikia daug papildomų rezultatų.

Kadangi „NetSpectre“ yra išpuolis tinkle, jo negalima užkirsti kelią ne tik sušvelninant „Spectre“, bet ir imantis atsakomųjų priemonių tinklo sluoksnyje. Truputinę „NetSpectre“ ataką galima lengvai aptikti naudojant DDoS apsaugą, nes iš to paties šaltinio siunčiami keli tūkstančiai identiškų paketų.

Tačiau užpuolikas gali pasirinkti bet kokį kompromisą tarp paketų per sekundę ir nutekėjusių bitų per sekundę. Taigi bitų nutekėjimo greitį galima paprasčiausiai sumažinti žemiau ribos, kurią gali nustatyti DDoS stebėjimas. Tai pasakytina apie bet kokį stebėjimą, kuriuo bandoma aptikti vykstančias atakas, pvz., Įsibrovimo aptikimo sistemas.

Nors teoriškai ataka nėra užkirstas kelias, tam tikru momentu ataka tampa neįmanoma, nes laikas, reikalingas šiek tiek nutekėti, smarkiai padidėja. Kitas „NetSpectre“ sušvelninimo būdas yra dirbtinio triukšmo pridėjimas prie tinklo vėlavimo. Kadangi matavimų skaičius priklauso nuo tinklo delsos dispersijos, papildomam triukšmui reikia, kad užpuolikas atliktų daugiau matavimų. Taigi, jei tinklo vėlavimo dispersija yra pakankamai didelė, „NetSpectre“ atakos tampa neįmanomos dėl didelio reikalingo matavimų skaičiaus.