LVI — nová trieda útokov na mechanizmus špekulatívneho vykonávania v CPU

Zverejnené informácie o novej triede útokov LVI (Load Value Injection, CVE-2020-0551) na mechanizmus špekulatívneho vykonávania v CPU Intel, ktoré môžu byť použité na pretečenie kľúčov a tajných údajov z Intel SGX enclaves a iných procesov.

Nová trieda útokov je založená na manipuláciách s tými istými mikroarchitektonickými štruktúrami ako pri útokoch MDS (Microarchitectural Data Sampling), Spectre a Meltdown. Nové útoky nie sú blokované existujúcimi ochrannými metódami proti Meltdown, Spectre, MDS a iným podobným útokom. Na zabezpečenie efektívnej ochrany proti LVI je potrebné zavedenie hardvérových zmien v CPU. Pri zabezpečení softvérovo, pridaním inštrukcie LFENCE kompilátorom po každej operácii načítania z pamäti a nahradením inštrukcie RET na POP, LFENCE a JMP, vznikajú príliš veľké režijné náklady — podľa odhadov výskumníkov by plná softvérová ochrana viedla k zníženiu výkonu o 2-19 krát.

Čiastočne sa ťažkosť blokovania problému kompenzuje tým, že útok má v súčasnosti skôr teoretický než praktický charakter (útok je teoreticky možný, ale veľmi ťažký na realizáciu a reprodukovateľný iba v syntetických testoch).
Spoločnosť Intel pridelila problému mierny úroveň nebezpečenstva (5.6 z 10) a vydala aktualizáciu firmvéru a SDK pre prostredie SGX, v ktorých sa snažila zablokovať obchádzanie útoku. Navrhnuté metódy útoku sú zatiaľ aplikovateľné iba na procesory Intel, ale nie je vylúčená možnosť prispôsobenia LVI aj pre iné procesory, na ktoré sa vzťahujú útoky typu Meltdown.

Problém bol zistený v apríli minulého roka výskumníkom Jo Van Bulckom z Leuven University, po čom v spolupráci s 9 ďalšími výskumníkmi z iných univerzít bolo vyvinutých päť základných metód na realizáciu útokov, z ktorých každá umožňuje existenciu špecifickejších variácií. Nezávisle vo februári tohto roku výskumníci z firmy Bitdefender tiež odhalili nahlásili jeden z variantov útoku LVI a informovali o ňom Intel. Variácie útokov sa líšia využívaním rôznych mikroarchitektonických štruktúr, ako sú buffer ukládania (SB, Store Buffer), buffer vyplnenia (LFB, Line Fill Buffer), buffer prepínania kontextu FPU a cache prvej úrovne (L1D), ktoré sa predtým využívali pri útokoch ako ZombieLoad, RIDL, Fallout, LazyFP, Foreshadow a Meltdown.

LVI - nový klas útokov na mechanizmus špekulatívneho vykonávania v CPU

Hlavným rozdielom LVI od útokov MDS spočíva v tom, že MDS manipuluje s definíciou obsahu mikroarchitektonických štruktúr, ktoré zostávajú v cache po špekulatívnom spracovaní výnimiek (fault) alebo operáciách load a store, zatiaľ čo
útoky LVI umožňujú dosiahnuť substitúciu údajov útočníka v mikroarchitektonických štruktúrach, aby ovplyvnili následné špekulatívne vykonávanie kódu obete. Pomocou uvedených manipulácií môže útočník extrahovať obsah uzavretých štruktúr údajov v iných procesoch pri vykonávaní konkrétneho kódu na cieľovom CPU jadre.

LVI - nový klas útokov na mechanizmus špekulatívneho vykonávania v CPU

Pre exploatácia problému v kóde procesu-obete musí sa vyskytovať špeciálne sekvencie kódu (gadgets), v ktorých sa načítava kontrolovaná hodnota útočníka, pričom načítanie tejto hodnoty vedie k vzniku výnimiek (fault, abort alebo assist), ktoré odmietajú výsledok a opätovne vykonávajú inštrukciu. Pri spracovaní výnimky vzniká špekulatívne okno, počas ktorého dôjde k úniku údajov spracovávaných v gadget. Konkrétne procesor začne vykonávať v špekulatívnom režime kus kódu (gadget), potom určí, že predpokladanie nevyšlo a vracia operácie do pôvodného stavu, ale spracované údaje počas špekulatívneho vykonávania zostávajú v L1D cache a mikroarchitektonických vyrovnávacích pamätiach a sú prístupné na extrakciu pomocou známych metód určovania zvyškových údajov cez vedľajšie kanály.

Výnimka „assist“, na rozdiel od „fault“, sa spracováva vo vnútri procesora bez vyvolania softvérových spracovateľov. Assist môže vzniknúť, napríklad, keď je potrebné aktualizovať bit A (Accessed) alebo D (Dirty) v tabuľke strán pamäte. Hlavná ťažkosť pri vykonávaní útoku na iné procesy je v tom, ako iniciovať vznik assist, manipulovaním s procesom obete. V súčasnosti neexistujú spoľahlivé spôsoby, ako to urobiť, ale v budúcnosti sa môže objaviť ich nájdenie. Možnosť uskutočnenia útoku zatiaľ potvrdila iba pre enklyvy Intel SGX, ostatné scenáre sú teoretické alebo reprodukované v syntetických podmienkach (vyžaduje to pridanie do kódu určitých gadgetov)

LVI - nový klas útokov na mechanizmus špekulatívneho vykonávania v CPU

LVI - nový klas útokov na mechanizmus špekulatívneho vykonávania v CPU

Možné vektory útokov:

  • Únik dát zo štruktúr jadra do procesu na úrovni používateľa. Existujúca ochrana proti útokom typu Spectre 1 v jadre Linux a mechanizmus ochrany SMAP (Supervisor Mode Access Prevention) výrazne znižujú pravdepodobnosť útoku LVI. Prenikanie dodatočnej ochrany do jadra môže byť potrebné pri zistení v budúcnosti jednoduchších metód útoku LVI.
  • Únik dát medzi rôznymi procesmi. Na útok je potrebná existencia určitých fragmentov kódu v aplikácii a určenie spôsobu generovania výnimky v cieľovom procese.
  • Únik dát z hostiteľského prostredia do hosťujúceho systému. Útok patrí do kategórie príliš zložitých, ktoré vyžadujú vykonanie rôznych ťažko realizovateľných krokov a predpovedanie aktivity v systéme.
  • Únik dát medzi procesmi v rôznych hosťujúcich systémoch. Vektor útoku je blízky usporiadaniu úniku dát medzi rôznymi procesmi, ale navyše vyžaduje vykonanie zložitých manipulácií na obídenie izolácie medzi hosťujúcimi systémami.

Výskumníci zverejnili niekoľkých prototypy s ukážkou princípov vykonávania útoku, ale zatiaľ nie sú vhodné na uskutočnenie reálnych útokov. Prvý príklad umožňuje presmerovať špekulatívne vykonávanie kódu v obeti procesu analogicky s návratovo orientovaným programovaním (ROP, Return-Oriented Programming). V tomto prípade je obeťou špeciálne pripravený proces obsahujúci potrebné gadgety (aplikovanie útoku na reálne externe procesy je zložité). Druhý príklad umožňuje preniknúť do výpočtov pri šifrovaní AES vnútri enklávy Intel SGX a usporiadať únik dát počas špekulatívneho vykonávania inštrukcií na obnovenie hodnoty použitej na šifrovanie kľúča.


Prehrajte video

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster