L1DES (CacheOut) a VRS — nové zraniteľnosti v mikroarchitektonických štruktúrach CPU Intel

Spoločnosť Intel odhalila informácie o dvoch nových zraniteľnostiach v CPU Intel, spôsobených únikom údajov z L1D cache (CVE-2020-0549, L1DES — L1D Eviction Sampling) a vektorových registrov (CVE-2020-0548, VRS — Vector Register Sampling). Zraniteľnosti patria do triedy MDS (Microarchitectural Data Sampling) a sú založené na použití metód analýzy cez bočné kanály na údaje v mikroarchitektonických štruktúrach. AMD, ARM a ďalšie procesory nie sú postihnuté týmito problémami.

Najväčšie nebezpečenstvo predstavuje zraniteľnosť L1DES, ktorá umožňuje uchovávanie blokov vyrovnaných údajov (cache line), ktoré sú vytláčané z prvej úrovne cache (L1D), do vyplňovacieho buffera (Fill Buffer), ktorý by mal byť v tomto momente prázdny. Na určenie údajov uchovávaných vo vyplňovacom buffere sú použiteľné metódy analýzy cez bočné kanály, ktoré boli predtým navrhnuté v útokoch MDS (Microarchitectural Data Sampling) a TAA (Transactional Asynchronous Abort). Podstata predtým implementovanej ochrany proti
MDS a TAA spočíva v vymazaní mikroarchitektonických bufferov pred prepnúťím kontextu, no, ako sa ukázalo, za určitých podmienok sú dáta spekulatívne zresetované do bufferov po operácii vymazania, takže metódy MDS a TAA zostávajú použiteľné.

L1DES (CacheOut) a VRS - nové zraniteľnosti v mikroarchitektonických štruktúrach CPU Intel

V dôsledku toho môže útočník dosiahnuť určenie údajov vytlačených z prvej úrovne cache, ktoré boli zmenené počas vykonávania aplikácie, ktorá predtým využívala aktuálne CPU jadro, alebo aplikácií, ktoré sa paralelne vykonávajú v iných logických tokoch (hyperthread) na tom istom CPU jadre (vypnutie HyperThreadingu znižuje efektívnosť útoku). Na rozdiel od útoku L1TF, L1DES neumožňuje vyberať konkrétne fyzické adresy na overenie, ale ponúka možnosť pasívne sledovať aktivitu v iných logických tokoch souvisejúcich s načítaním alebo uložením hodnôt do pamäte.

Na základe L1DES vyvinuli rôzne tímy výskumníkov niekoľko variantov útokov, ktoré potenciálne umožňujú extrakciu dôverných informácií z iných procesov, operačného systému, virtuálnych strojov a chránených enkláv SGX.

  • Tím VUSec prispôsobil metódu útoku RIDL pre zraniteľnosť L1DES. K dispozícii je prototyp exploit, ktorý okrem iného obchádza navrhnutú metódu ochrany od Intelu proti MDS, založenú na použití inštrukcie VERW na vyčistenie obsahu mikroarchitektonických bufferov v okamihu návratu z jadra do užívateľského priestoru alebo pri prenose kontroly na hostiteľský systém (výskumníci pôvodne trvali na tom, že VERW (vyčistenie mikroarchitektonických bufferov) na ochranu nestačí a vyžaduje sa úplné vymazanie L1 cache pri každom prepínaní kontextu).
  • Tím ZombieLoad aktualizoval svoju metódu útoku so zohľadnením zraniteľnosti L1DES.
  • Výskumníci z Michiganskej univerzity vyvinuli vlastnú metódu útoku CacheOut (PDF), ktorá umožňuje extrahovať dôverné informácie z jadra operačného systému, virtuálnych strojov a zabezpečených enkláv SGX. Metóda sa zakladá na manipuláciách s mechanizmom asynchrónneho prerušenia operácií (TAA, TSX Asynchronous Abort) na určenie obsahu bufferu zaplnenia po úniku údajov z L1D cache.

    L1DES (CacheOut) a VRS - nové zraniteľnosti v mikroarchitektonických štruktúrach CPU Intel

Druhá zraniteľnosť VRS (Vector Register Sampling) súvisí s únikom do bufferu uloženia (Store Buffer) výsledkov operácií čítania z vektorových registrov, ktoré boli zmenené počas vykonávania vektorových inštrukcií (SSE, AVX, AVX-512) na tom istom CPU jadre. Únik nastáva pri dostatočne zriedkavej zhode okolností a je spôsobený tým, že špekulatívne vykonávaná operácia, ktorá vedie k odrazu stavu vektorových registrov v bufferi uloženia, mešká a končí po vyčistení bufferu, a nie pred ním. Podobne ako so zraniteľnosťou L1DES, obsah bufferu uloženia môže byť následne určený pomocou metód útokov MDS a TAA.

Výskumníci z skupiny VUSec pripravili prototyp exploit, ktorý umožňuje určiť hodnoty vektorových registrov získaných v dôsledku výpočtov v inom logickom vlákne toho istého CPU jadra. Spoločnosť Intel ohodnotila zraniteľnosť VRS ako príliš zložitú na uskutočnenie reálnych útokov a pridelila minimálnu úroveň nebezpečenstva (2.8 CVSS).

Informácie o problémoch boli odovzdané spoločnosti Intel v máji 2019 tímom Zombieload z Grazu (Rakúsko) a skupinou VUSec z Amsterdamskej slobodnej univerzity, a neskôr, po analýze ďalších vektorov útoku MDS, boli zraniteľnosti potvrdené niektorými ďalšími výskumníkmi. Do prvej správy MDS neboli zahrnuté informácie o problémoch L1DES a VRS kvôli nedostatku opravy. Oprava nie je k dispozícii ani teraz, ale dohodnuté lehoty na nezverejnenie vypršali.
Ako obchádzajúce metódy ochrany sa odporúča vypnúť HyperThreading. Na zablokovanie zraniteľnosti na strane jadra sa navrhuje vyprázdniť cache L1 pri každom prepnutí kontextu (MSR bit MSR_IA32_FLUSH_CMD) a vypnúť rozšírenie TSX (MSR bity MSR_IA32_TSX_CTRL a MSR_TSX_FORCE_ABORT).

Intel sľubuje uvoľniť aktualizáciu mikrocode s implementáciou mechanizmov na blokovanie problémov v blízkej dobe. Intel tiež uvádza, že použitie navrhnutých metód ochrany proti útoku L1TF (L1 Terminal Fault) umožňuje blokovať zneužívanie zraniteľnosti L1DES z virtuálnych prostredí. Útoku sú vystavené procesory Intel Core, počínajúc šiestou generáciou (Sky, Kaby, Coffee, Whiskey, Amber Lake atď.), ako aj niektoré modely Intel Xeon a Xeon Scalable.

Navyše môžeme spomenúť vylepšenie exploit, ktorý umožňuje použiť metódy útoku RIDL na určenie obsahu hash hesla root z /etc/shadow pri periodických pokusoch o autentifikáciu. Ak pôvodne navrhnutý exploit určil hash hesla za 24 hodín, a po aplikácii úniku pri práci mechanizmu asynchrónneho prerušenia operácií (TAA, TSX Asynchronous Abort) vykonával podobnú operáciu za 36 sekúnd, tak nový variant vykonáva útok za 4 sekundy.

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