Jauns NetSpectre uzbrukums neprasa upurim lejupielādēt vai palaist ļaunprātīgu kodu

Drošība / Jauns NetSpectre uzbrukums neprasa upurim lejupielādēt vai palaist ļaunprātīgu kodu

NetSpectre Bombards mašīnu ostas, lai iegūtu piekļuvi

4 minūtes lasītas

Jauns Spectre klases CPU uzbrukums ir pievērsis akadēmisko zinātnieku uzmanību, jo viņi nesen izlaida pētījumu ar nosaukumu “NetSpectre: Read Arbitrary Memory over Network”, kurā ir padziļināti aprakstīta šīs CPU uzbrukuma klases darbība.



Tas, kas padara jauno Spectre CPU uzbrukumu mazliet biedējošu, ir tas neprasa uzbrucējs apmānīt savu upuri, lejupielādējot un palaižot savā mašīnā ļaunprātīgus skriptus, vai pat piekļūstot vietnei, kurā lietotāja pārlūkprogrammā darbojas ļaunprātīgs JavaScript.

NetSpectre vienkārši bombardēs mašīnas tīkla ostas, līdz tā atradīs veidu, kā sasniegt savus mērķus.



'Spektru uzbrukumi liek upurim spekulatīvi veikt darbības, kas nenotiek, stingri seriālizējot un kārtojot programmas instrukcijas, un kuras slepenā kanālā uzbrucējam izplūst cietušā konfidenciālajā informācijā'



Tomēr NetSpectre nav bez trūkumiem. Tam ir neticami lēns eksfiltrācijas ātrums, aptuveni 15 biti stundā, lai uzbrukumi tiktu veikti, izmantojot tīkla savienojumu, un mērķauditorijas atlase ir centrālā procesora kešatmiņā saglabātie dati.



Pētījuma darbā akadēmiķi spēja sasniegt līdz pat 60 bitiem stundā, izmantojot īpašu NetSpectre variāciju, kas mērķēja datus, kas apstrādāti, izmantojot CPU AVX2 moduli, kas ir specifisks Intel procesoriem.

Jebkurā gadījumā NetSpectre pašlaik tiek uzskatīts par pārāk lēnu, lai būtu vērtīgs uzbrucējiem, kas nozīmē, ka NetSpectre ir tikai teorētiski draudi, nevis kaut kas tāds, no kā uzņēmumiem būtu jāķeras klāt tik tikko . Tomēr, attīstoties tehnoloģijai, eksfiltrācijas ātrums neapšaubāmi palielināsies, un pēc tam mums ir jāuztraucas par pilnīgi jaunu dzīvotspējīgu un neticami viegli izpildāmu CPU uzbrukumu klasi.

Jaunais NetSpectre uzbrukums ir saistīts ar Spectre V1 ievainojamību (CVE-2017-5753), kuru Google pētnieki atklāja šī gada sākumā (2018). Tas nozīmē, ka visi procesori, kurus varētu ietekmēt Spectre V1, tiek uzskatīti arī par NetSpectre, ja tie ir izvietoti ar atbilstošu OS un CPU programmaparatūru.



Pašlaik NetSpectre ir divi uzbrukuma varianti: datu iegūšana no mērķa sistēmas un ASLR (Address Space Layout Randomisation) attālināšana mērķa sistēmā.

Pirmā veida uzbrukuma notikumu ķēde notiek šādi:

  1. Mistrain filiāles prognozētājs.
  2. Atiestatiet mikroarhitektūras elementa stāvokli.
  3. Mazliet noplūst mikroarhitektūras elements.
  4. Pakļaujiet mikroarhitektūras elementa stāvokli tīklam.
  • 1. solī uzbrucējs maldina upura zara pareģotāju, lai veiktu Spectre uzbrukumu. Lai maldinātu filiāles prognozētāju, uzbrucējs izmanto noplūdes sīkrīku ar derīgiem indeksiem. Derīgie indeksi nodrošina, ka zara pareģotājs iemācās vienmēr ņemt zaru, t.i., zara prognozētājs spekulē, ka nosacījums ir patiess. Ņemiet vērā, ka šī darbība ir atkarīga tikai no noplūdes sīkrīka. Uzbrucējam nav atsauksmes, un tādējādi mikroarhitektūras stāvoklis nav jāatjauno vai jāpārraida.
  • 2. solī uzbrucējam ir jāatjauno mikroarhitektūras stāvoklis, lai iespējotu noplūdušo bitu kodēšanu, izmantojot mikroarhitektūras elementu. Šis solis ir ļoti atkarīgs no izmantotā mikroarhitektūras elementa, piemēram, izmantojot kešatmiņu, uzbrucējs no upura lejupielādē lielu failu; ja tiek izmantots AVX2, uzbrucējs vienkārši gaida vairāk nekā 1 milisekundi. Pēc šī soļa visas prasības ir izpildītas, lai mazliet noplūstu no upura.
  • 3. solī uzbrucējs izmanto Spectre ievainojamību, lai nopludinātu upurim vienu bitu. Tā kā 1. solī filiāles prognozētājs tiek kļūdaini apmācīts, nodrošinot noplūdes sīkrīkam ārpus robežas indeksu, tiks palaists iekšējais ceļš un modificēts mikroarhitektūras elements, t.i., bits tiek kodēts mikroarhitektūras elementā.
  • 4. solī uzbrucējam ir jānosūta kodētā informācija caur tīklu. Šis solis atbilst sākotnējā Spectre uzbrukuma otrajai fāzei. Uzbrucējs nosūta tīkla paketi, kuru apstrādā pārraides sīkrīks, un mēra laiku no paketes nosūtīšanas līdz atbildes saņemšanai.

Uzbrukuma metode Nr. 2: ASLR attālināšana

  1. Mistrain filiāles prognozētājs.
  2. Piekļūstiet ārpus robežas esošam indeksam, lai kešatmiņā saglabātu (zināmu) atmiņas vietu.
  3. Izmēra funkcijas izpildes laiku, izmantojot tīklu, lai secinātu, vai ārpus robežas piekļuve saglabāja tās daļu kešatmiņā.

Spectre pretpasākumi

Intel un AMD iesaka izmantot lfence instrukciju kā spekulācijas barjeru. Šī instrukcija jāievieto pēc drošības kritisko robežu pārbaudes, lai apturētu spekulatīvo izpildi. Tomēr, pievienojot to katrai robežkontrolei, ir ievērojama veiktspēja.

Tā kā NetSpectre ir uzbrukums, kas balstīts uz tīklu, to nevar novērst tikai ar Spectre mazināšanu, bet arī ar pretpasākumiem tīkla slānī. Niecīgu NetSpectre uzbrukumu var viegli noteikt ar DDoS aizsardzību, jo no viena avota tiek nosūtīti vairāki tūkstoši identisku pakešu.

Tomēr uzbrucējs var izvēlēties jebkuru kompromisu starp paketēm sekundē un noplūdušajiem bitiem sekundē. Tādējādi ātrumu, kādā biti tiek noplūduši, var vienkārši samazināt zem sliekšņa, ko var noteikt DDoS monitorings. Tas attiecas uz jebkuru monitoringu, kas mēģina atklāt notiekošos uzbrukumus, piemēram, ielaušanās atklāšanas sistēmas.

Kaut arī teorētiski uzbrukums netiek novērsts, kādā brīdī uzbrukums kļūst neiespējams, jo krasi palielinās laiks, kas vajadzīgs, lai mazliet noplūstu. Vēl viena metode NetSpectre mazināšanai ir mākslīgā trokšņa pievienošana tīkla latentumam. Tā kā mērījumu skaits ir atkarīgs no tīkla latentuma dispersijas, papildu troksnim uzbrucējam ir nepieciešams veikt vairāk mērījumu. Tādējādi, ja tīkla latentuma dispersija ir pietiekami liela, NetSpectre uzbrukumi kļūst neiespējami lielā nepieciešamo mērījumu skaita dēļ.