LVI - 'n nuwe klas aanvalle op die spekulatiewe uitvoeringsmeganisme in die SVE

Gepubliseer inligting oor 'n nuwe klas aanvalle LVI (Laadwaarde-inspuiting, CVE-2020-0551) oor die spekulatiewe uitvoeringsmeganisme in Intel-SVE's, wat gebruik kan word om sleutels en geheime data van Intel SGX-enklawes en ander prosesse te lek.

'n Nuwe klas aanvalle is gebaseer op manipulasie van dieselfde mikroargitektoniese strukture wat in aanvalle gebruik word MDS (Mikro-argitektoniese datasteekproefneming), Spectre en Meltdown. Terselfdertyd word nuwe aanvalle nie geblokkeer deur bestaande metodes van beskerming teen Meltdown, Spectre, MDS en ander soortgelyke aanvalle nie. Effektiewe LVI-beskerming vereis hardewareveranderinge aan die SVE. Wanneer beskerming programmaties georganiseer word, deur die LFENCE-instruksie deur die samesteller na elke laaibewerking uit die geheue by te voeg en die RET-instruksie met POP, LFENCE en JMP te vervang, word te veel bokoste aangeteken - volgens navorsers sal volledige sagtewarebeskerming lei tot 'n afname in prestasie met 2-19 keer.

'n Deel van die moeilikheid om die probleem te blokkeer, word geneutraliseer deur die feit dat die aanval tans meer teoreties as prakties is (die aanval is teoreties moontlik, maar baie moeilik om te implementeer en slegs in sintetiese toetse reproduseerbaar).
Intel toegeëien die probleem het 'n matige vlak van gevaar (5.6 uit 10) en vrygelaat die opdatering van die firmware en SDK vir die SGX-omgewing, waarin dit probeer het om die aanval te blokkeer deur 'n oplossing te gebruik. Die voorgestelde aanvalmetodes is tans net van toepassing op Intel-verwerkers, maar die moontlikheid om LVI aan te pas vir ander verwerkers waarop Meltdown-klas aanvalle van toepassing is, kan nie uitgesluit word nie.

Die probleem is verlede April deur navorser Jo Van Bulck van die Universiteit van Leuven geïdentifiseer, waarna, met die deelname van 9 navorsers van ander universiteite, vyf basiese aanvalmetodes ontwikkel is, wat elkeen voorsiening maak vir die bestaan ​​van meer spesifieke opsies. Onafhanklik, in Februarie vanjaar, het navorsers van Bitdefender ook ontdek een van die LVI-aanvalvariante en het dit aan Intel aangemeld. Die aanvalvariante word onderskei deur die gebruik van verskillende mikroargitektoniese strukture, soos die stoorbuffer (SB, Store Buffer), vulbuffer (LFB, Line Fill Buffer), FPU konteksskakelaarbuffer en eerstevlakkas (L1D), wat voorheen gebruik is in aanvalle soos ZombieLoad, RIDL, Fallout, LazyFP, Voorafskadu и Meltdown.

LVI is 'n nuwe klas aanvalle op die spekulatiewe uitvoeringsmeganisme in die SVE

Die belangrikste eerbewyse Die LVI teen MDS-aanvalle is dat MDS die bepaling van die inhoud van mikroargitektoniese strukture wat in die kas oorbly na spekulatiewe fouthantering of laai- en stoorbewerkings manipuleer, terwyl
LVI-aanvalle laat toe dat die aanvaller se data in mikroargitektoniese strukture ingevoeg word om die daaropvolgende spekulatiewe uitvoering van die slagoffer se kode te beïnvloed. Deur hierdie manipulasies te gebruik, kan 'n aanvaller die inhoud van private datastrukture in ander prosesse onttrek wanneer sekere kode op die teiken-SVE-kern uitgevoer word.

LVI is 'n nuwe klas aanvalle op die spekulatiewe uitvoeringsmeganisme in die SVE

Vir uitbuitingsprobleem in die kode van die slagofferproses moet ontmoet spesiale reekse kode (toerusting) waarin 'n aanvaller-beheerde waarde gelaai word, en die laai van hierdie waarde veroorsaak dat uitsonderings (fout, aborteer of hulp) gegooi word, wat die resultaat weggooi en die instruksie weer uitvoer. Wanneer 'n uitsondering verwerk word, verskyn 'n spekulatiewe venster waartydens die data wat in die gadget verwerk is lek. Die verwerker begin veral om 'n stukkie kode (gadget) in spekulatiewe modus uit te voer, bepaal dan dat die voorspelling nie geregverdig was nie en rol die bewerkings terug na hul oorspronklike toestand, maar die data wat tydens spekulatiewe uitvoering verwerk is, word in die L1D-kas gedeponeer en mikroargitektoniese buffers en is beskikbaar vir herwinning daaruit met die gebruik van bekende metodes vir die bepaling van oorblywende data deur derdeparty-kanale.

Die "bystand"-uitsondering, anders as die "fout"-uitsondering, word intern deur die verwerker hanteer sonder om sagteware-hanteerders te bel. Bystand kan byvoorbeeld plaasvind wanneer die A (toeganklik) of D (Vuil) bietjie in die geheue bladsytabel opgedateer moet word. Die grootste probleem om 'n aanval op ander prosesse uit te voer, is hoe om die voorkoms van hulp te inisieer deur die slagofferproses te manipuleer. Daar is tans geen betroubare maniere om dit te doen nie, maar dit is moontlik dat dit in die toekoms gevind sal word. Die moontlikheid om 'n aanval uit te voer is tot dusver slegs vir Intel SGX-enklawes bevestig, ander scenario's is teoreties of reproduseerbaar in sintetiese toestande (vereis dat sekere gadgets by die kode gevoeg word)

LVI is 'n nuwe klas aanvalle op die spekulatiewe uitvoeringsmeganisme in die SVE

LVI is 'n nuwe klas aanvalle op die spekulatiewe uitvoeringsmeganisme in die SVE

Moontlike aanvalsvektore:

  • Datalek van kernstrukture na gebruikervlakproses. Die Linux-kern se beskerming teen Spectre 1-aanvalle, sowel as die SMAP (Supervisor Mode Access Prevention) beskermingsmeganisme, verminder die waarskynlikheid van 'n LVI-aanval aansienlik. Bykomende beskerming by die kern kan nodig wees as eenvoudiger LVI-aanvalmetodes in die toekoms geïdentifiseer word.
  • Datalek tussen verskillende prosesse. Die aanval vereis die teenwoordigheid van sekere stukke kode in die toepassing en die definisie van 'n metode om 'n uitsondering in die teikenproses te gooi.
  • Datalek van die gasheeromgewing na die gasstelsel. Die aanval word as te kompleks geklassifiseer, wat verskeie moeilik-om-implementeerbare stappe en voorspellings van aktiwiteit in die stelsel vereis.
  • Datalekkasie tussen prosesse in verskillende gasstelsels. Die aanvalsvektor is naby aan die organisering van datalekkasie tussen verskillende prosesse, maar vereis boonop komplekse manipulasies om isolasie tussen gasstelsels te omseil.

Gepubliseer deur navorsers sommige prototipes met 'n demonstrasie van die beginsels om 'n aanval uit te voer, maar dit is nog nie geskik om werklike aanvalle uit te voer nie. Die eerste voorbeeld laat jou toe om spekulatiewe kode-uitvoering in die slagofferproses te herlei, soortgelyk aan terugkeer-georiënteerde programmering (ROP, Terugkeer-georiënteerde programmering). In hierdie voorbeeld is die slagoffer 'n spesiaal voorbereide proses wat die nodige gadgets bevat (dit is moeilik om 'n aanval op regte derdeparty-prosesse toe te pas). Die tweede voorbeeld stel ons in staat om onsself in te wig in berekeninge tydens AES-kodering binne die Intel SGX-enklawe en 'n datalek te organiseer tydens die spekulatiewe uitvoering van instruksies om die waarde van die sleutel wat vir enkripsie gebruik word, te herstel.


Bron: opennet.ru

Voeg 'n opmerking