Plundervolt je nová metóda útoku na procesory Intel, ktorá ovplyvňuje technológiu SGX

Intel uvoľnený aktualizácia mikrokódu, ktorá opravuje zraniteľnosť (CVE-2019-14607) dovoľovať prostredníctvom manipulácie s dynamickým mechanizmom riadenia napätia a frekvencie v CPU iniciovať poškodenie obsahu dátových buniek, a to aj v oblastiach používaných na výpočty v izolovaných enklávach Intel SGX. Útok sa nazýva Plundervolt a potenciálne umožňuje miestnemu používateľovi eskalovať svoje privilégiá v systéme, spôsobiť odmietnutie služby a získať prístup k citlivým údajom.

Útok je nebezpečný iba v súvislosti s manipuláciou s výpočtami v enklávach SGX, pretože na vykonanie vyžaduje práva root v systéme. V najjednoduchšom prípade môže útočník dosiahnuť skreslenie informácií spracovaných v enkláve, ale v zložitejších scenároch nie je možnosť opätovného vytvorenia súkromných kľúčov uložených v enkláve používaných na šifrovanie pomocou algoritmov RSA-CRT a AES-NI. vylúčené. Technika sa môže použiť aj na generovanie chýb v pôvodne správnych algoritmoch na vyvolanie zraniteľnosti pri práci s pamäťou, napríklad na organizáciu prístupu do oblasti mimo hranice pridelenej vyrovnávacej pamäte.
Prototypový kód na vykonanie útoku zverejnená na GitHub

Podstatou metódy je vytvorenie podmienok pre výskyt neočakávaných poškodení dát pri výpočtoch v SGX, pred ktorými nechráni použitie šifrovania a autentizácie pamäte v enkláve. Na zavedenie skreslenia sa ukázalo, že je možné použiť štandardné softvérové ​​rozhrania na riadenie frekvencie a napätia, ktoré sa zvyčajne používajú na zníženie spotreby energie počas nečinnosti systému a aktiváciu maximálneho výkonu pri vykonávaní intenzívnej práce. Frekvenčné a napäťové charakteristiky pokrývajú celý čip, vrátane vplyvu výpočtovej techniky v izolovanej enkláve.

Zmenou napätia môžete vytvoriť podmienky, pri ktorých náboj nestačí na regeneráciu pamäťovej bunky vnútri CPU a mení sa jej hodnota. Hlavný rozdiel oproti útoku RowHammer je, že RowHammer umožňuje meniť obsah jednotlivých bitov v pamäti DRAM cyklickým čítaním dát zo susedných buniek, zatiaľ čo Plundervolt umožňuje meniť bity vo vnútri CPU, keď už boli dáta načítané z pamäte na výpočet. Táto funkcia vám umožňuje obísť mechanizmy kontroly integrity a šifrovania používané v SGX pre údaje v pamäti, pretože hodnoty v pamäti zostávajú správne, ale počas operácií s nimi môžu byť skreslené pred zapísaním výsledku do pamäte.

Ak sa táto upravená hodnota použije v procese násobenia v procese šifrovania, výstup sa odmietne s nesprávnym šifrovaným textom. Útočník, ktorý má možnosť kontaktovať obsluhu v SGX, aby zašifroval svoje údaje, môže spôsobiť zlyhania zhromaždiť štatistiky o zmenách vo výstupnom šifrovom texte a za niekoľko minút obnoviť hodnotu kľúča uloženého v enkláve. Pôvodný vstupný text a správny výstupný šifrový text sú známe, kľúč sa nemení a výstup nesprávneho šifrového textu naznačuje, že niektorý bit bol skreslený na opačnú hodnotu.

Po analýze párov hodnôt správnych a poškodených šifrových textov nahromadených počas rôznych porúch pomocou metód diferenciálnej analýzy porúch (DFA, Diferenciálna analýza porúch) Môcť predpovedať pravdepodobné kľúče používané na symetrické šifrovanie AES a potom pomocou analýzy priesečníkov kľúčov v rôznych skupinách určiť požadovaný kľúč.

Problémom sú ovplyvnené rôzne modely procesorov Intel, vrátane procesorov Intel Core so 6
10. generácia, ako aj piata a šiesta generácia Xeon E3, prvá a druhá generácia Intel Xeon Scalable, Xeon D,
Xeon W a Xeon E.

Pripomeňme, že technológia SGX (Rozšírenia softvérovej ochrany) sa objavil v šiestej generácii procesorov Intel Core (Skylake) a ponúk séria inštrukcií, ktoré umožňujú aplikáciám na užívateľskej úrovni prideľovať uzavreté pamäťové oblasti – enklávy, ktorých obsah nedokáže prečítať ani upraviť ani jadro a kód bežiaci v režimoch ring0, SMM a VMM. Preniesť riadenie na kód v enkláve pomocou tradičných skokových funkcií a manipulácií s registrami a zásobníkom nie je možné, na prenos riadenia do enklávy sa používa špeciálne vytvorená nová inštrukcia, ktorá vykonáva kontrolu autority. V tomto prípade môže kód umiestnený v enkláve využívať klasické metódy volania na prístup k funkciám vo vnútri enklávy a špeciálne inštrukcie na volanie externých funkcií. Šifrovanie pamäte Enclave sa používa na ochranu pred hardvérovými útokmi, ako je pripojenie k modulu DRAM.

Zdroj: opennet.ru

Pridať komentár