TONTOU: jauns Spectre v2 uzbrukums AMD un Intel

Galvenie punkti:
  • TONTOU izmanto laika intervālu starp prognozēšanas bufera tīrīšanu un tā izmantošanu.
  • Uzbrucēji izmanto "pārtraukuma injekciju", lai novirzītu kodola plūsmu un piesārņotu prognozēšanas iekārtas.
  •  Tas ietekmē AMD Zen 1 līdz 4 arhitektūras un vairākas Intel procesoru paaudzes.
  • Riska mazināšanas ielāpi jau ir iekļauti jaunākajos Linux kodola atjauninājumos (5. augustā).

TONTOU uzbrukums

Vai ir iespējams, ka tieši procesora ātrums apdraud jūsu drošību? Lai saprastu, kā procesori sasniedz savu ātrumu , mums jāņem vērā, ka tie darbojas, "paredzot nākotni"... Nē, tie nav maģiski vai tiem nav mazas kristāla bumbas...

Procesoru darbības princips ir tāds, ka mikroshēma negaida, lai redzētu, pa kuru ceļu programma ies, bet gan prognozē iespējamo maršrutu un to paredz. Ja paredzējums ir nepareizs, darbs tiek atmests, bet pēdas paliek atmiņā. Šeit noder Spectre — viena no nozīmīgākajām ievainojamībām, kas atklāta pēdējos gados. Kopš tās atklāšanas uzbrucēji ir iemācījušies lasīt šīs pēdas, radot arvien sarežģītākus variantus; TONTOU ir viena no šīm jaunajām ievainojamībām.

MIT pētnieki ir atklājuši TONTOU (neitralizācijas laiks līdz lietošanas laikam) — jaunu, sarežģītu metodi Spectre v2 ievainojamību izmantošanai , kas ļauj nolasīt kodola atmiņu no lietotāja telpas.

Lai gan ražotāji un izstrādātāji jau gadiem ilgi ir izstrādājuši dažādus aizsardzības mehānismus pret paredzošiem uzbrukumiem, uzbrucējiem ir izdevies atklāt jaunus maršrutus, un šis jaunais CSAIL pētījums parāda, kā apiet šos aizsardzības mehānismus.

Pētnieki atklāja, ka pastāv neizbēgama laika sprīdis starp bufera iztīrīšanas brīdi un prognožu izmantošanas brīdi, un tieši šajā nelielajā spraugā, izmantojot sistēmas pārtraukumus, tiek ievadīts kods (dažreiz tikai dažas instrukcijas), ļaujot atkārtoti piesārņot aparatūru un iegūt kritiski svarīgus datus.

Attiecībā uz uzbrukumu: traucējumi un Safe-RET pārkāpums

AMD ir aizsardzība pret SRSO (Speculative Return Stack Overflow) ievainojamībām, ko sauc par Saferet, kas attīra prognozēšanas mehānismu tieši pirms katras lietošanas reizes. Tas atstāj ievainojamības logu , ko var izmantot dažu desmitu nanosekunžu laikā. Lai uzbruktu tik mazam logam, pētnieki izstrādāja tehniku, ko sauca par pārtraukuma injekciju.

Procesori pastāvīgi aptur savus uzdevumus, lai apstrādātu pārtraukumus, un parastas programmas var konfigurēt šos taimerus . Paturot to prātā, pētnieki precīzi pielāgoja taimeri un, izmantojot CPU palēnināšanas metodi, izraisīja procesora darbības pārtraukšanu tieši nepareizajā brīdī . Šī pārtraukuma laikā uzbrucējs var piespiest izpildīt lielu skaitu izsaukumu, pārpildot adrešu steku. Kad kļūdainā izpilde beidzas, procesors atmet procesu, bet piekļūtie dati paliek koplietotajās kešatmiņās , no kurienes tos var iegūt, analizējot piekļuves laikus.

Paroles iegūšana un testēšana reālās sistēmās

Lai demonstrētu TONTOU nopietnību, komanda izveidoja funkcionējošu ievainojamības avotu AMD sistēmā, kurā darbojas pašreizējais Linux kodols. Pirmais šķērslis bija apiet aizsardzību, kas nejauši nosaka operētājsistēmas pozīciju atmiņā, ko viņiem izdevās izdarīt desmit mēģinājumos, katram testam aizņemot aptuveni deviņas minūtes.

Pēc tam viņi demonstrēja lokālu uzbrukumu no neprivileģēta lietotāja , lai noteiktu root paroles jaucējkodu, veiksmīgi iegūstot datus ar ātrumu 5.47 baiti sekundē ar 91.97% precizitāti. 50% testu (vidēji 18 minūtes) viņi veiksmīgi noteica un izvilka paroles faila saturu. Lai gan tas ir lēns ātrums, tas ir vairāk nekā pietiekami, lai kritiski apdraudētu serveri.

Ietekme uz Intel, AMD un mazināšanas ielāpu

Komanda testēja četras Intel un AMD procesoru paaudzes, abās arhitektūrās sasniedzot prognozēšanas kļūmes. Lai gan metode izrādījās dzīvotspējīga AMD Zen 1 līdz 4 saimēs , Intel mikroshēmās uzbrukums apieja divas dažādas aizsardzības , lai gan starp dažādām Intel paaudzēm tika novērota nekonsekventa darbība , kas liecina, ka nominālās aizsardzības aparatūrā ir ieviestas atšķirīgi.

Kā risinājumu pētnieki iesaka paredzētās sistēmas otro reizi attīrīt pēc pārtraukuma beigām. Lai gan šis pasākums šķiet dzīvotspējīgs AMD, tas varētu būt neproduktīvs Intel, jo uzbrukums balstās uz pārtraukuma atstāšanu konsekventā stāvoklī un varētu padarīt uzbrukumu uzticamāku.

Pētnieki februāra sākumā paziņoja AMD un Intel, bet martā — Linux kodola uzturētājiem. Tā rezultātā 5. augustā Linux kodolā tika integrēta koda bloķēšana ievainojamības mazināšanai.

Visbeidzot, ja vēlaties uzzināt vairāk, informāciju varat atrast tālāk norādītajā saitē.


Pievienot kā vēlamo avotu pakalpojumā Google