Google demonstrē Spectre ievainojamību izmantošanu, pārlūkprogrammā izmantojot JavaScript

Google atklāja pirms vairākām dienām dažādi ekspluatācijas prototipi kas parāda iespēju izmantot ievainojamības klases Spectre, izpildot JavaScript kodu pārlūkprogrammā, neizmantojot iepriekš pievienotās drošības metodes.

Izmantošanu var izmantot, lai piekļūtu procesa atmiņai kas apstrādā tīmekļa saturu pašreizējā cilnē. Lai pārbaudītu izmantošanas darbību, tika atvērta noplūdušās lapas vietne, un vietnē GitHub tiek ievietots kods, kas apraksta darbības loģiku.

Piedāvātais prototips ir paredzēts uzbrukuma sistēmas ar Intel Core i7-6500U procesori Linux un Chrome 88 vidē, lai gan tas neizslēdz iespēju veikt izmaiņas ekspluatācijā citās vidēs.

Darbības metode nav specifiska pārstrādātājiem Intel: pēc pienācīgas adaptācijas Ir apstiprināts, ka izmantojums darbojas sistēmās ar trešo pušu procesoriem, tostarp Apple M1, kas balstīts uz ARM arhitektūru. Pēc nelieliem pielāgojumiem izmantojums darbojas arī citās operētājsistēmās un citās pārlūkprogrammās, kuru pamatā ir Chromium dzinējs.

Apkārtējā vidē, kas balstīta uz standarta Chrome 88 un Intel Skylake procesoriem, mēs panācām datu noplūdi no procesa, kas ir atbildīgs par tīmekļa satura renderēšanu pašreizējā Chrome cilnē (renderēšanas process) ar ātrumu 1 kilobaits sekundē. Turklāt tika izstrādāti alternatīvi prototipi, piemēram, izmantojums, kas, izmantojot samazinātu stabilitāti, ļauj palielināt noplūdes ātrumu līdz 8 kB / s, izmantojot veiktspēju. Tagad () taimeris ar precizitāti 5 mikrosekundes (0.005 milisekundes) ). Tika izstrādāts arī variants, kas darbojās ar taimera precizitāti viena milisekunde, un to varēja izmantot, lai organizētu piekļuvi cita procesa atmiņai ar ātrumu aptuveni 60 baiti sekundē.

Publicētais demonstrācijas kods sastāv no trim daļām:

  • Pirmā daļa kalibrējiet taimeri, lai aprēķinātu darbības laiku no operācijām, kas nepieciešamas, lai izgūtu datus, kas paliek procesora kešatmiņā CPU instrukciju spekulatīvās izpildes rezultātā.
  • Otrā daļa Definē atmiņas izkārtojumu, kas izmantots, piešķirot JavaScript masīvu.
  • Trešā daļa tieši izmanto Spectre ievainojamību, lai noteiktu atmiņas saturu pašreizējā procesa apstākļu radīšanas rezultātā dažu darbību spekulatīvai izpildei, kuru rezultātu pēc neveiksmīgas prognozes noteikšanas procesors izmet, bet izpildes pēdas tiek nokārtotas koplietotajā kešatmiņā un tās var atjaunot, izmantojot metodes kešatmiņas satura noteikšanai, izmantojot trešo pušu kanālus, kas analizē kešotajiem un kešatmiņā saglabātajiem datiem piekļuves laika izmaiņas.

Piedāvātā izmantošanas tehnika novērš augstas precizitātes taimerus pieejams caur performance.now () API un bez atbalsta SharedArrayBuffer tipam, kas ļauj izveidot masīvus kopīgajā atmiņā.

Izmantošana ietver ierīci Spectre, kas izraisa kontrolētu spekulatīvu koda izpildi, un sānu kanālu noplūdes analizatoru, kas nosaka, kādi dati ir saglabāti kešatmiņā spekulatīvās izpildes laikā.

Sīkrīks tiek ieviests, izmantojot JavaScript masīvu, kurā tiek mēģināts piekļūt apgabalam ārpus bufera robežām, kas ietekmē filiāles prognozēšanas bloka stāvokli kompilatora pievienotās bufera lieluma pārbaudes dēļ (procesors spekulatīvi veic piekļuvi pirms laika, bet pēc pārbaudes atjauno stāvokli).

Lai analizētu kešatmiņas saturu nepietiekamas taimera precizitātes apstākļos, tika piedāvāta metode, kas mānīs procesoros izmantoto Tree-PLRU kešatmiņas datu izlikšanas stratēģiju un ļauj, palielinot ciklu skaitu, ievērojami palielināt starpības laiku, kad vērtība tiek atdots no kešatmiņas un ja kešatmiņā nav vērtības.

Google ir publicējis izmantošanas prototipu, lai parādītu uzbrukumu iespējamību izmantojot Spectre klases ievainojamības un mudināt tīmekļa izstrādātājus izmantot paņēmienus, kas samazina šādu uzbrukumu risku.

Tajā pašā laikā Google uzskata, ka bez būtiskas ierosinātā prototipa pārskatīšanas nav iespējams izveidot universālus ekspluatācijas veidus, kas ir gatavi ne tikai demonstrēšanai, bet arī plašai lietošanai.

Fuente: https://security.googleblog.com


Pievienot kā vēlamo avotu pakalpojumā Google