Nový útok NetSpectre nevyžaduje oběť ke stažení nebo spuštění škodlivého kódu

Bezpečnostní / Nový útok NetSpectre nevyžaduje oběť ke stažení nebo spuštění škodlivého kódu

NetSpectre bombarduje porty stroje, aby získal vstup

4 minuty čtení

Nový útok na CPU třídy Spectre získal pozornost akademických vědců, kteří nedávno zveřejnili výzkumný dokument s názvem „NetSpectre: Číst libovolnou paměť přes síť“, který podrobně popisuje, jak tato třída útoku CPU funguje.



To, co dělá nový útok Spectre CPU trochu děsivým, je to nevyžaduje útočník, aby oklamal svou oběť, aby stáhla a spustila škodlivé skripty na svém počítači nebo dokonce přistoupila na web, který v prohlížeči uživatele spouští škodlivý JavaScript.

NetSpectre jednoduše bombarduje síťové porty stroje, dokud nenajde cestu k dosažení svých cílů.



„Strašidelné útoky přimějí oběť spekulativně provádět operace, ke kterým by nedocházelo při přísně serializovaném zpracování pokynů programu v pořadí a které by útočníkovi poskytly důvěrné informace oběti tajným kanálem“



NetSpectre však nepřichází bez vlastních nedostatků. Má neuvěřitelně nízkou rychlost exfiltrace, kolem 15 bitů za hodinu pro útoky prováděné prostřednictvím síťového připojení a cílení na data uložená v mezipaměti CPU.



Ve výzkumné práci byli akademici schopni dosáhnout až 60 bitů za hodinu se speciální variantou NetSpectre, která cílila na data zpracovaná pomocí modulu AVX2 CPU, který je specifický pro CPU Intel.

V obou případech je NetSpectre v současné době považován za příliš pomalý na to, aby byl pro útočníky cenný, což znamená, že NetSpectre je pouze teoretický hrozba, ne něco, z čeho by se společnosti měly skrýt zatím . Jak však technologie postupuje, rychlost exfiltrace se bezpochyby zvýší, a pak máme zcela novou třídu životaschopných a neuvěřitelně snadno proveditelných útoků na procesor, abychom se museli starat.

Nový útok NetSpectre souvisí s chybou zabezpečení Spectre V1 (CVE-2017-5753), kterou vědci Google odhalili na začátku tohoto roku (2018). To znamená, že všechny CPU, které by mohly být ovlivněny Spectre V1, jsou také považovány za NetSpectre, pokud jsou nasazeny se správným firmwarem OS a CPU.



V současné době existují dvě varianty útoku pro NetSpectre: extrahování dat z cílového systému a vzdálené rozbití ASLR (randomizace rozložení adresního prostoru) v cílovém systému.

Řetěz událostí pro první druh útoku probíhá takto:

  1. Mistrain větev prediktor.
  2. Resetujte stav mikroarchitekturního prvku.
  3. Unikněte trochu mikroarchitektonickému prvku.
  4. Vystavte stav mikroarchitektonického prvku do sítě.
  • V kroku 1 útočník nesprávně vycvičí větvový prediktor oběti, aby provedl útok Spectre. Aby útočník prediktor větve nesprávně naučil, využívá gadget úniku s platnými indexy. Platné indexy zajišťují, že se prediktor větve naučí vždy brát větev, tj. Prediktor větve spekuluje, že podmínka je pravdivá. Všimněte si, že tento krok závisí pouze na gadgetu úniku. Útočníkovi není poskytována žádná zpětná vazba, a proto nemusí být mikroarchitekturní stav resetován ani přenášen.
  • V kroku 2 musí útočník resetovat mikroarchitekturní stav, aby umožnil kódování uniklých bitů pomocí mikroarchitekturního prvku. Tento krok velmi závisí na použitém mikroarchitekturním prvku, např. Při využití mezipaměti útočník stáhne od oběti velký soubor; pokud je použit AVX2, útočník jednoduše čeká déle než 1 milisekundu. Po tomto kroku jsou všechny požadavky splněny, aby z oběti trochu unikly.
  • V kroku 3 útočník zneužije zranitelnost Spectra k úniku jednoho bitu z oběti. Vzhledem k tomu, že prediktor větve je v kroku 1 nesprávně naučen, poskytnutím indexu mimo hranice pro gadget úniku bude spuštěna příchozí cesta a upraven mikroarchitekturní prvek, tj. Bit je zakódován v mikroarchitekturním prvku.
  • V kroku 4 musí útočník přenášet kódované informace prostřednictvím sítě. Tento krok odpovídá druhé fázi původního útoku Spectre. Útočník odešle síťový paket, který zpracovává vysílací gadget, a změří čas od odeslání paketu do příchodu odpovědi.

Metoda útoku 2: Vzdálené rozbití ASLR

  1. Mistrain větev prediktor.
  2. Přístup k indexu odchozích mezipaměti do mezipaměti (známé) umístění paměti.
  3. Změřte čas provádění funkce prostřednictvím sítě, abyste odvodili, zda přístup mimo hranice mezipaměti část z ní.

Spectre protiopatření

Intel a AMD doporučují použít instrukci lfence jako spekulační bariéru. Tato instrukce musí být vložena po kontrole hranic kritických pro zabezpečení, aby se zastavilo spekulativní provádění. Přidání této kontroly do všech hranic má však významnou režii výkonu.

Protože NetSpectre je síťový útok, nelze mu zabránit pouze zmírněním Spectre, ale také prostřednictvím protiopatření na síťové vrstvě. Triviální útok NetSpectre lze snadno detekovat pomocí ochrany DDoS, protože ze stejného zdroje je odesláno několik tisíc identických paketů.

Útočník si však může zvolit jakýkoli kompromis mezi pakety za sekundu a uniklými bity za sekundu. Rychlost, při které dochází k úniku bitů, lze tedy jednoduše snížit pod prahovou hodnotu, kterou může monitorování DDoS detekovat. To platí pro jakékoli monitorování, které se pokouší detekovat probíhající útoky, např. Systémy detekce narušení.

Ačkoli útoku teoreticky nezabráníte, v určitém okamžiku se útok stane neproveditelným, protože drasticky se zvyšuje čas potřebný k úniku. Další metodou ke zmírnění NetSpectre je přidání umělého šumu do latence sítě. Vzhledem k tomu, že počet měření závisí na odchylce latence sítě, vyžaduje další šum, aby útočník provedl více měření. Pokud je tedy odchylka latence sítě dostatečně vysoká, útoky NetSpectre se stanou neproveditelnými kvůli velkému počtu požadovaných měření.