Mobilné Správy, Gadgety, Blogy's Secenziami

Vstrekovanie hodnoty zaťaženia: Nový Intel Attack obíde SGX s významnými obavami o zníženie výkonu

Microarchitectural útoky boli všetky zlosť. Za posledné dva roky sme videli útoky ako Meltdown, Spectre, Foreshadow / L1TF, Zombieload a varianty, ktoré diskutujú o rôznych spôsoboch testovania alebo úniku údajov od obete k hostiteľovi. Nový útok, ktorý zverejnili 10. marca tie isté výskumné tímy, ktoré zistili predchádzajúce výhody, obracia tento princíp na hlavu a umožňuje útočníkovi vložiť do kódu obete svoje vlastné hodnoty. Vkladanie údajov môže byť buď inštrukcia alebo adresa pamäte, čo útočníkovi umožňuje získať údaje od obete. Táto injekcia údajov obchádza aj prísne bezpečnostné enklávové prostredia, ako sú napríklad Software Guard Extensions (SGX) spoločnosti Intel, a útočníci tvrdia, že úspešné zmiernenie môže mať za následok spomalenie 2x až 19x pre akýkoľvek kód SGX.

Prehľad na vysokej úrovni

Útok je formálne známy ako LVI, skratka pre „Load Value Injection“ a má referenciu MITER CVE-2020-0551. Oficiálna webová stránka útoku je https://lviattack.eu/. Útok bol objavený 4. apríla 2019 a nahlásený spoločnosti Intel a zverejnený 10. marca 2020. Druhá skupina objavila a predložila dôkaz koncepcie jedného variantu útoku LVI vo februári 2020.

V súčasnosti má spoločnosť Intel v úmysle zabezpečiť zmiernenie pre systémy triedy SGX, avšak prostredia, ktoré nie sú SGX (ako sú VM alebo kontajnery, ktoré nie sú naprogramované v SGX), zostanú zraniteľné. Vedci tvrdia, že „v zásade každý procesor, ktorý je citlivý na únik údajov typu Meltdown, by bol tiež citlivý na vkladanie údajov v štýle LVI“. Vedci sa zamerali predovšetkým na porušenie ochrany Intel SGX a je k dispozícii dôkaz o konceptovom kóde. Dodatočné financovanie projektu bolo zabezpečené „veľkorysými darmi od spoločnosti Intel, ako aj darmi od ARM a AMD“ – jeden zo zúčastnených výskumných pracovníkov na sociálnych médiách uviedol, že niektorí z jeho výskumných študentov sú aspoň čiastočne financovaní spoločnosťou Intel.

Spoločnosť Intel bola zapojená do zverejnenia a má k dispozícii bezpečnostné poradenstvo, ktoré túto záležitosť uvádza ako 5,6 MEDIUM na stupnici závažnosti. Intel tiež uvádza zoznam všetkých dotknutých procesorov, vrátane Atom, Core a Xeon, ktoré siahajú až do Silvermont, Sandy Bridge, a dokonca obsahuje najnovšie procesory, ako napríklad Ice Lake (10. generácia) * a jadro Tremont Atom, ktoré nie je dostupné. Na trhu ešte nie.

* Web LVI hovorí, že ľadové jazero nie je zraniteľné, pokyny spoločnosti Intel však hovoria, že je.

Všetci povedali, priemerné CVE skóre LVI je rovnaké ako skóre pridelené Meltdown a Specter už v roku 2018. Odráža to skutočnosť, že LVI má podobný rozsah rizika ako tie predchádzajúce zneužitia, to znamená zverejňovanie údajov. Aj keď v praxi je LVI možno ešte viac výklenok. Zatiaľ čo Meltdown a Specter boli stredne zložité útoky, ktoré by sa dali použiť proti akýmkoľvek „zabezpečeným“ programom, Intel a vedci za LVI ho vo veľkej miere maľujú ako teoretický útok, ktorý je užitočný najmä proti SGX.

Praktickými aspektmi bezpečnosti sú zmiešané vrecká. V prípade spotrebiteľských systémov sa SGX zriedka používa mimo použitia DRM (napr. 4K Netflix), čo pravdepodobne nebude príliš narastať. Vedci za LVI napriek tomu povedali ZDNet, že útok by sa mohol teoreticky uskutočniť pomocou JavaScriptu, takže by sa mohol potenciálne dodať spôsobom „drive-by“, namiesto toho, aby sa vyžadovalo vykonanie nejakého miestneho kódu. Výsledkom je prinajmenšom to, že LVI sa už považuje za veľmi ťažké vytrhnúť a JavaScript by to určite nijako uľahčil.

Pokiaľ ide o podnikových a podnikových používateľov, potenciálne riziko je väčšie v dôsledku rozšíreného využívania SGX v tejto oblasti a využívania zdieľaných systémov (virtualizácia). V konečnom dôsledku budú tieto obavy súvisieť s aplikáciou / prostredím, ale najmä v prípade zdieľaných systémov je najväčším rizikom únik informácií z iného VM alebo od privilegovaného používateľa. Podniky sú zase pravdepodobne najlepšie vybavené na to, aby sa vysporiadali s hrozbou LVI, ale prichádza potom, čo Meltdown a Specter už veci vyzdvihli a poškodili výkon systému.

Útok

Vkladanie hodnoty načítania je štvorstupňový proces:

  1. Útočník vyplní mikroarchitekturálnu medzipamäť hodnotou
  2. To spôsobuje poruchu alebo asistované zaťaženie v softvéri obete (presmerovaním toku údajov)
  3. Hodnota útočníka vyvolá „modul gadget“, ktorý umožňuje spustenie pokynov útočníka
  4. Útočník skryje stopy útoku, aby zastavil jeho detekciu procesorom

Ďalšie nedávne mikroarchitektúrne zneužitia, ako napríklad Spectre, Meltdown, L1TF, Zombieload a podobné, sa týkajú úniku údajov. Spoliehajú sa na úniky alebo extrahovanie údajov z rôznych vyrovnávacích pamätí, ktoré sú „mikroprístupné“ z hľadiska mikroarchitektúry. LVI je iný v tom, že ide skôr o priamy „útok“ na systém, aby sa tieto údaje mohli extrahovať. Aj keď to znamená, že útočník sa musí vyčistiť sám od seba, v dôsledku toho, čo môže útok urobiť, znamená to, že môže byť nebezpečnejší ako iné predchádzajúce zneužitia. Rozdiel vo využívaní znamená, že súčasné zmiernenia nefungujú, a toto využívanie podľa prieskumu v podstate uvádza, že bezpečná enklávová architektúra spoločnosti Intel vyžaduje významné zmeny, aby bola opäť užitočná.

Vstrekovanie hodnoty zaťaženia: Nový Intel Attack obíde SGX s významnými obavami o zníženie výkonu 1

Útok bol zameraný na bezpečnú enklávovú stratégiu spoločnosti Intel, známu ako SGX, kvôli povahe technológie. Ako uvádza The Register, v skutočnosti je útokom vlastnosť SGX – SGX vytvára chyby stránky pre načítanie pamäte zmenou nezabezpečených tabuliek stránok vyrovnávacej pamäte (bod 2 vyššie).

Vlastná analýza spoločnosti Intel

Vlastný hlboký ponor spoločnosti Intel do problému vysvetľuje, že:

‘Ak protivník môže spôsobiť poruchu, asistenciu alebo potrat špecifikovaného nákladu obete, protivník môže byť schopný vybrať údaje, ktoré sa majú preposlať do závislých operácií pomocou záťaže / asistencie / potratu.

Pre určité postupnosti kódov môžu tieto závislé operácie vytvoriť skrytý kanál s údajmi, ktoré sú pre protivníka zaujímavé. Protivník potom môže byť schopný odvodiť hodnotu údajov prostredníctvom analýzy skrytého kanála. “

Intel ďalej hovorí, že v plne dôveryhodnom prostredí by to nemal byť problém:

„Kvôli početným komplexným požiadavkám, ktoré musia byť splnené, aby sa metóda LVI úspešne implementovala, nie je LVI praktickým využívaním v prostrediach reálneho sveta, v ktorých sú dôveryhodné OS a VMM.“ “

Potom však uvádza, že skutočnosť, že jeho vlastné riešenie SGX je vektorom útoku, nie sú tieto požiadavky také prísne.

‘Z dôvodu silného protivníka modelu Intel SGX útoky na enklávy Intel SGX uvoľňujú niektoré z týchto požiadaviek. Silný protivník model Intel SGX predpokladá, že OS alebo VMM môže byť škodlivý, a preto protivník môže manipulovať so stránkami stránok enklávy obetí, aby spôsobil chybu alebo asistenciu svojvoľným enklávam. ““

Potom je zrejmé, že spoločnosť Intel má riadok pre obranu „ak nerobíte nič zle, nie je to problém“.

„Ak OS a VMM nie sú škodlivé, útoky na LVI sa vykonávajú oveľa ťažšie, dokonca aj proti enkláve Intel SGX.“ “

Dôležitým záverom je oficiálna línia spoločnosti Intel, že tento problém nie je problémom pre prostredia mimo SGX, v ktorých sú dôveryhodné OS a VMM. Vedci súhlasia – zatiaľ čo LVI je obzvlášť závažné pre SGX, domnievajú sa však, že je ťažšie pripojiť útok v prostredí, ktoré nie je SGX. To znamená, že spracovatelia z iných spoločností sú voči tomuto štýlu útoku menej zraniteľní, avšak tí, ktorí sú náchylní na tavenie, by mohli byť ohrození.

Oprava a náklady

Intel aj vedci poskytli rovnaké potenciálne riešenie útokom triedy LVI. Oprava sa neplánuje na úrovni mikrokódu, ale na úrovni kódu, s kompilátormi a aktualizáciami SDK. Spôsob, ako obísť tento problém, je v zásade urobiť pokyny serializované prostredníctvom procesora, čím sa zabezpečí veľmi špecifický postup kontroly.

Teraz nezabudnite, že veľa moderných výkonov procesorov sa spolieha na niekoľko vecí, napríklad na schopnosť zmeniť usporiadanie mikrooptík vo vnútri jadra (mimo objednávky) a spustiť viacero mikrooptík v jednom cykle (pokyny na cyklus). , Tieto opravy v zásade eliminujú obidve tieto skutočnosti, keď sú za letu potenciálne napadnuteľné pokyny.

Pre tých, ktorí nie sú programátormi, existuje v programovaní pojem nazývaný „plot“. Široká definícia plotu má v zásade zabezpečiť, aby sa program (zvyčajne program bežiaci na viacerých jadrách) zastavil v určitom bode a skontrolujte, či je všetko v poriadku.

Predstavte si napríklad, že máte jedno jadro, ktoré robí dodatok, a druhé jadro, ktoré robí rozdelenie súčasne. Teraz je sčítanie omnoho rýchlejšie ako rozdelenie, a preto ak existuje veľa paralelných výpočtov, možno budete môcť vypáliť 4-10 sčítania v čase, ktorý je potrebný na vykonanie jedného rozdelenia. Ak však existuje pravdepodobnosť, že prírastky alebo divízie budú interagovať na rovnakom mieste v pamäti, možno budete potrebovať plot po jednom pridaní + delenie, aby ste sa uistili, že nejde o konflikt.

Z osobného hľadiska som pri písaní výpočtových programov pre GPU musel používať ploty, keď som sa presťahoval z paralelnej časti môjho kódu do sériovej časti môjho kódu a plot sa uistil, že všetko, čo som potreboval pre sériovú časť môj kód vypočítaný z paralelnej časti bol dokončený pred pokračovaním.

Preto riešením pre LVI je pridať tieto ploty do kódu – konkrétne po každom načítaní pamäte. To znamená, že systém / program musí počkať, kým sa dokončí každé načítanie pamäte, čo v podstate zastaví jadro na 100 nanosekúnd alebo viac. Existuje efekt, že keď funkcia vráti hodnotu, existuje niekoľko spôsobov, ako sa dá „návrat“ urobiť, a niektoré z nich už nie sú životaschopné s novými útokmi LVI.

Vstrekovanie hodnoty zaťaženia: Nový Intel Attack obíde SGX s významnými obavami o zníženie výkonu 2

Vedci sú úplne jasní v tom, ako sa očakáva, že táto oprava poškodí výkon – v závislosti od aplikácií a rôznych optimalizácií pravdepodobne dôjde k spomaleniu z 2x na 19x. Vedci skúmali varianty kompilátora na i7-6700K pre OpenSSL a i9-9900K pre SPEC2017.

Vstrekovanie hodnoty zaťaženia: Nový Intel Attack obíde SGX s významnými obavami o zníženie výkonu 3

Spoločnosť Intel nekomentovala potenciálne zníženie výkonu.

V prípade tých, ktorých by sa to mohlo týkať, spoločnosť Intel poskytuje používateľom systému SGX nasledujúce rady:

  • Zaistite najnovšiu technológiu Intel SGX PSW 2,70,100.2 alebo vyššie pre Windows a 2,90,100.2 alebo vyššie pre Linux

A pre poskytovateľov aplikácií SGX:

  • Skontrolujte technické podrobnosti.
  • Spoločnosť Intel vydáva aktualizáciu SGX SDK, aby pomohla poskytovateľovi aplikácií SGX aktualizovať ich kód enklávy. Ak chcete použiť zmiernenie, verzia SDK 2,70,100.2 alebo vyššie pre Windows a 2,90,100.2 alebo vyššie pre Linux.
  • Zvýšte číslo bezpečnostnej verzie (ISVSVN) aplikácie enklávy, aby odrážali, že tieto zmeny sú zavedené.
  • Riešenia, ktoré využívajú Remote Attestation, nájdete v technických detailoch Intel SGX Attestation Technical Details, aby ste zistili, či je potrebné implementovať zmeny vo vašej aplikácii SGX na účely osvedčenia SGX.

Záverečné slová

Od vedcov povedali The Register, že:

„Sme presvedčení, že žiadna zo zložiek pre LVI nie je exkluzívne pre procesory Intel. Ukázalo sa však, že LVI je pre procesory Intel najužitočnejšie … určité dizajnérske rozhodnutia, ktoré sú špecifické pre architektúru Intel SGX (tj nedôveryhodné tabuľky stránok). útoky na LVI, ktoré nie sú SGX (ako sú útoky na AMD, Arm a iné), ktoré majú prevažne akademický význam, a súhlasíme so súčasným hodnotením spoločnosti Intel, aby sa nezaviedli ďalšie zmiernenia pre prostredia mimo SGX, ale povzbudzujeme budúci výskum, aby ďalej preskúmal LVI v ne-SGX Prostredia SGX, “

V rovnakom svetle sa zdá, že všetky hlavné spoločnosti v oblasti architektúry čipov boli o zisteniach vopred informované, ako aj spoločnosť Microsoft by mala byť súčasťou Windows je potrebné upraviť jadro.

Z technického hľadiska existuje niekoľko variantov LVI v závislosti od typov údajov a útoku:

Vstrekovanie hodnoty zaťaženia: Nový Intel Attack obíde SGX s významnými obavami o zníženie výkonu 4
Všetko nájdete na webovej stránke LVI.

Celkovo spoločnosť Intel prešla so svojou platformou SGX hrubou cestou. S programom Skylake to malo komplikované spustenie, pretože nebolo aktivované pri prvých dávkach procesorov, potom bolo povolené v neskorších dávkach, a potom sa SGX zameriaval na niekoľko nedávnych útokov na procesory. Potreba moderného jadra, najmä základného, ​​zapojeného do všetkého od internetu vecí až po cloud a Enterprise, mať ekvivalent bezpečnej enklávovej architektúry, je prvoradá a až do tohto bodu sa radšej pridávala k určitým procesorom. ako nevyhnutne budovaný od základov so zreteľom na to – vidíme, že s Ice Lake a Tremont stále postihnuté. Útočná plocha riešenia spoločnosti Intel SGX v porovnaní s útokmi od spoločností AMD alebo Apple, sa v posledných mesiacoch rozrástla v dôsledku týchto nových útokov založených na mikroarchitektúrnej úrovni a jediný spôsob, ako ich obísť, je odvolať sa na obmedzenia výkonu pri vývoji kódu. Určitá paradigma sa musí zmeniť.