Dve nové zraniteľnosti v eBPF umožňujú ochranu proti bypassu proti Spectre 4

Logo strašidla

To nedávno prelomili správy boli identifikované dve zraniteľné miesta v linuxovom jadre to povoliť použitie subsystém eBPF obchádza ochranu pred útokom Spectre 4 (SSB, špekulatívny obchvat obchodu). Uvádza sa, že pomocou neprivilegovaného programu BPF môže útočník vytvoriť podmienky pre špekulatívne vykonávanie určitých operácií a určiť obsah ľubovoľných oblastí pamäte jadra.

Metóda útoku Spectre 4 sa spolieha na obnovu údajov uväznených v vyrovnávacej pamäti procesora po zahodení výsledku špekulatívneho vykonávania operácií pri spracovaní prekladaných operácií čítania a zápisu pomocou nepriameho adresovania.

Keď operácia čítania nasleduje po operácii zápisu, posunutie smeru čítania už môže byť známe kvôli podobným operáciám (operácie čítania sa vykonávajú oveľa častejšie a čítanie je možné vykonávať z pamäte cache) a procesor môže pred zápisom špekulatívne čítať bez toho, aby čakal na výpočet posunu nepriameho smeru zápisu.

Ak sa po výpočte posunu zistí priesečník pamäťových oblastí na zapisovanie a čítanie, procesor jednoducho zahodí už získaný výsledok čítania špekulatívne a zopakuje túto operáciu. Táto funkcia umožňuje inštrukcii čítania prístup k predchádzajúcej hodnote v určitom smere, zatiaľ čo operácia uloženia stále čaká.

Po vylúčení neúspešného špekulatívneho obchodu, stopy jeho vykonania zostávajú vo vyrovnávacej pamäti, potom na jeho načítanie je možné použiť jednu z metód na určenie obsahu vyrovnávacej pamäte na základe analýzy zmien v prístupovom čase do vyrovnávacej pamäte a údajoch vo vyrovnávacej pamäti.

Všimnite si toho, že každú tému je možné zneužiť nezávisle od druhej, spoliehajúc sa na to v chybách, ktoré sa neprekrývajú.

PoC boli súkromne zdieľané s správcami subsystému BPF pomoc s vývojom aranžmán.

Prvá zraniteľnosť CVE-2021-35477: je to spôsobené chybou v mechanizme validácie programu BPF. Na ochranu pred útokom Spectre 4 kontrolór pridáva ďalšie pokyny po potenciálne problémových operáciách ukladania do pamäte a ukladá nulovú hodnotu, aby sa vyrovnali stopy predchádzajúcej operácie.

Predpokladalo sa, že operácia nulového zápisu bude veľmi rýchla a bude blokovať špekulatívne vykonávanie, pretože závisí iba od ukazovateľa rámca zásobníka BPF. Ale v skutočnosti bolo možné vytvoriť podmienky, za ktorých má inštrukcia vedúca k špekulatívnemu vykonaniu čas na vykonanie pred operáciou preventívneho uloženia.

Druhá zraniteľnosť CVE-2021-3455: súvisí so skutočnosťou, že keď kontrola BPF zistí potenciálne nebezpečné operácie uloženia do pamäte, neinicializované oblasti zásobníka BPF, prvá operácia zápisu, v ktorej nie je chránený, sa ignorujú.

Táto funkcia vedie k možnosti vykonania špekulatívnej operácie čítania v závislosti od neinicializovanej oblasti pamäte pred vykonaním inštrukcie ukladania. Nová pamäť pre zásobník BPF sa alokuje bez kontroly obsahu, ktorý sa už v alokovanej pamäti nachádza, a vo fáze pred spustením programu BPF existuje spôsob, ako spravovať obsah oblasti pamäte, ktorá bude potom pridelená zásobník BPF.

Dostupné riešenie znova implementuje techniky zmierňovania, aby mohlo pokračovať odporúčané predajcami CPU a dostupné v jadre hlavnej rady úložisko git.

Nakoniec je uvedené, že správcovia subsystémov eBPF v jadre získali prístup k prototypu exploitu, ktorý demonštruje možnosť vykonávania útokov v praxi.

Problémy sú vyriešené vo forme opráv, ktoré budú zahrnuté v ďalšej aktualizácii jadra Linuxu, takže aktualizácie pre rôzne distribúcie začnú prichádzať v priebehu niekoľkých nasledujúcich dní.

Fuente: https://www.openwall.com/


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Za údaje zodpovedá: AB Internet Networks 2008 SL
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.