SWAPGS je nová špekulatívna chyba zabezpečenia

SWAPGS-exploit-2

undefined Vedci spoločnosti Bitdefender identifikovali novú zraniteľnosť v mechanizme špekulatívneho vykonávania pokynov v moderných procesoroch, ktorý dostal meno SWAPGS, Zodpovedá názvu inštrukcie procesora, ktorá spôsobila problém.

Zraniteľnosť umožňuje neprivilegovanému útočníkovi určiť obsah oblastí pamäte jadra alebo beží virtuálne stroje. Tento problém je potvrdený na procesoroch Intel (x86_64) a čiastočne ovplyvňuje procesory AMD, pre ktoré sa primárny vektor útoku neobjavuje.

Predtým implementované metódy zraniteľnosti Spectre a Meltdown nechránia pred útokmi SWAPGS pomocou procesorov Intel, ale riešenia pre Linux, ChromeOS, Android a Windows už boli navrhnuté.

Zraniteľnosť patrí do triedy Spectre v1 a je založený na myšlienke načítania údajov z medzipamäte procesora, ktoré zostanú po špekulatívnom vykonaní pokynov.

Bloky predikcie konverzie moderných CPU využívajú proaktívne vykonávanie niektorých inštrukcií, ktoré sa pravdepodobne vykonajú, na zlepšenie výkonu, ale bez čakania na výpočet všetkých faktorov, ktoré určujú ich vykonanie (napríklad keď podmienky prechodu inštrukcií resp. parametre prístupu ešte neboli vypočítané).

Ak sa predpoveď nepotvrdí, procesor zahodí výsledok špekulatívneho chodu, ale údaje spracované počas chodu sa procesor uloží do medzipamäte a dajú sa obnoviť pomocou metód na určenie obsahu medzipamäte naprieč kanálmi. Tretie strany, ktoré analyzujú zmena času prístupu k údajom v medzipamäti a bez nich.

O SWAPGS

Zvláštnosťou nového útoku je použitie úniku, ktorý vznikne pri špekulatívnom vykonávaní inštrukcie SWAPGS, ktorý sa v operačných systémoch používa na nahradenie hodnoty registra GS pri prenose riadenia z užívateľského priestoru do jadra operačného systému (hodnota GS použitá v užívateľskom priestore sa nahradí hodnotou použitou v operáciách jadra).

Linuxové jadro v GS ukladá ukazovateľ per_cpu, ktorý sa používa na prístup k údajom jadra, a ukazuje na TLS (Thread Local Storage) v užívateľskom priestore.

Aby sa vylúčilo dvojité vyvolanie inštrukcie SWAPGS po opakovanom prístupe k jadru z priestoru jadra alebo pri vykonávaní kódu, ktorý nevyžaduje výmenu registra GS, pred inštrukciou sa vykoná kontrola a podmienený prechod.

Špekulatívny mechanizmus vykonávania predchádza vykonaniu kódu pomocou inštrukcie SWAPGS, bez čakania na výsledok overenia a ak vybraná vetva nie je potvrdená, zahodí výsledok.

Preto, môže nastať situácia, keď sa špekulatívne vyberie pobočka špecifikujúca vykonávanie SWAPGS, ale počas špekulatívneho vykonávania bude hodnota registra GS zmenená inštrukciou SWAPGS a bude použitá v operáciách závislých od pamäte, ktoré sú uložené do pamäte cache CPU.

Vedci navrhli dva útočné scenáre pre ktoré boli pripravené prototypy exploitov.

  • Prvý scenár je založený na situácii, keď sa inštrukcia SWAPGS nevykonáva špekulatívne, aj keď sa používa pri skutočnom vykonávaní, a druhý scenár je opačný, keď sa inštrukcia SWAPGS vykonáva špekulatívne, hoci by sa to skutočne nemalo.
  • Pre každý scenár existujú dve operačné možnosti: útočník môže určiť hodnotu na konkrétnej adrese v oblasti jadra a útočník môže vyhľadať konkrétnu hodnotu na náhodných adresách v jadre.

Riešenie vyžaduje inštaláciu aktualizácie jadra v prostredí hostiteľa aj hosťa, po ktorej nasleduje reštart systému. Ak chcete vypnúť ochranu v systéme Linux, môžete použiť voľbu „nospectre_v1“, ktorá zakáže aj opatrenia blokujúce zraniteľnosť SWAPGS.

Riešenie je k dispozícii ako oprava pre jadro Linuxu, ktorá je už zahrnutá vo verziách 4.19.65, 5.2.7, 4.14.137, 4.9.188 a 4.4.188, zatiaľ čo pre rôzne distribúcie Linuxu budú príslušné opravy prichádzať v priebehu tohto a nasledujúceho týždňa.


Zanechajte svoj komentár

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

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  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ť.