Nový útok NetSpectre nevyžaduje od obete stiahnutie alebo spustenie škodlivého kódu

Bezpečnosť / Nový útok NetSpectre nevyžaduje od obete stiahnutie alebo spustenie škodlivého kódu

NetSpectre bombarduje porty stroja, aby získal vstup

4 minúty prečítané

Nový útok na CPU triedy Spectre si získal pozornosť akademických vedcov, ktorí nedávno zverejnili výskumný dokument s názvom „NetSpectre: Read Arbitrary Memory over Network“, ktorý podrobne popisuje fungovanie tejto triedy útoku CPU.



To, čo robí nový útok Spectre CPU trochu strašidelným, je to, že je nevyžaduje útočníka, aby oklamal svoju obeť stiahnutím a spustením škodlivých skriptov na ich počítači alebo dokonca prístupom na web, na ktorom sa v prehliadači používateľa spúšťa škodlivý JavaScript.

NetSpectre jednoducho bombarduje sieťové porty stroja, kým nenájde cestu k dosiahnutiu svojich cieľov.



„Strašidelné útoky prinútia obeť špekulatívne vykonávať operácie, ktoré by sa nevyskytli počas striktne sériového spracovania pokynov programu v poriadku a ktoré únikom dôverných informácií obete cez skrytý kanál smerujú k útočníkovi.“



NetSpectre však neprichádza bez vlastných chýb. Má neuveriteľne nízku rýchlosť exfiltrácie, okolo 15 bitov za hodinu pre útoky vykonávané cez sieťové pripojenie a zameranie na dáta uložené v cache procesora.



V tejto výskumnej práci boli akademici schopní dosiahnuť až 60 bitov za hodinu so špeciálnou variáciou NetSpectre, ktorá sa zameriavala na dáta spracovávané prostredníctvom modulu AVX2 CPU, ktorý je špecifický pre CPU Intel.

V obidvoch prípadoch sa NetSpectre v súčasnosti považuje za príliš pomalý na to, aby bol pre útočníkov cenný, čo znamená, že NetSpectre je iba teoretický hrozba, nie niečo, z čoho by sa spoločnosti mali kryť zatiaľ len . S postupujúcim vývojom technológie sa však rýchlosť exfiltrácie nepochybne zvýši, a potom máme na starosti úplne novú triedu životaschopných a neuveriteľne ľahko vykonateľných útokov na procesor.

Nový útok NetSpectre súvisí so zraniteľnosťou Spectre V1 (CVE-2017-5753), ktorú vedci spoločnosti Google odhalili začiatkom tohto roka (2018). To znamená, že všetky CPU, ktoré by mohli byť ovplyvnené Spectre V1, sa tiež považujú za NetSpectre, ak je nasadený so správnym firmvérom OS a CPU.



V súčasnosti existujú dva varianty útoku pre NetSpectre: extrahovanie údajov z cieľového systému a vzdialené narušenie ASLR (randomizácia rozloženia adresného priestoru) v cieľovom systéme.

Reťaz udalostí pre prvý druh útoku prebieha takto:

  1. Mistrain vetvový prediktor.
  2. Resetujte stav mikroarchitektúrneho prvku.
  3. Uniknite trochu k mikroarchitektonickému prvku.
  4. Vystavte stav mikroarchitektonického prvku sieti.
  • V kroku 1 útočník nesprávne naučí vetvový prediktor obete na vykonanie útoku Spectre. Aby útočník predpovedal vetvu nesprávne, využíva gadget úniku s platnými indexmi. Platné indexy zaisťujú, že prediktor vetvy sa naučí vždy vetvu brať, to znamená, že prediktor vetvy špekuluje, že podmienka je pravdivá. Upozorňujeme, že tento krok sa spolieha iba na modul gadget úniku. Útočníkovi neexistuje spätná väzba, a teda mikroarchitektúrny stav nemusí byť vynulovaný alebo prenášaný.
  • V kroku 2 musí útočník resetovať mikroarchitektúrny stav, aby umožnil kódovanie uniknutých bitov pomocou mikroarchitektúrneho prvku. Tento krok veľmi závisí od použitého mikroarchitektúrneho prvku, napr. Keď sa použije vyrovnávacia pamäť, útočník stiahne z obete veľký súbor; ak sa použije AVX2, útočník jednoducho počká viac ako 1 milisekundu. Po tomto kroku sú všetky požiadavky splnené, aby z obete trochu unikli.
  • V kroku 3 útočník zneužije zraniteľnosť Spectra a unikne mu z bitky jediný bit. Pretože je prediktor vetvy v kroku 1 nesprávne naučený, poskytnutím indexu mimo hranice pre modul gadget úniku sa spustí cesta dovnútra a upraví mikroarchitektúrny prvok, t. J. Bit sa zakóduje do mikroarchitektúrneho prvku.
  • V kroku 4 musí útočník preniesť kódované informácie cez sieť. Tento krok zodpovedá druhej fáze pôvodného útoku Spectre. Útočník pošle sieťový paket, s ktorým narába vysielací modul gadget, a zmeria čas od odoslania paketu do doručenia odpovede.

Metóda útoku č. 2: Vzdialené prerušenie protokolu ASLR

  1. Mistrain vetvový prediktor.
  2. Pristupujte k indexu odchýlených údajov a vyrovnajte (známe) miesto v pamäti.
  3. Zmerajte čas vykonania funkcie pomocou siete, aby ste odvodili, či sa prístup mimo hranice ukladal do jej časti.

Spectre Protiopatrenia

Intel a AMD odporúčajú použiť inštrukciu lfence ako špekulačnú bariéru. Táto inštrukcia musí byť vložená po kontrole hraníc kritických z hľadiska bezpečnosti, aby sa zastavilo špekulatívne vykonávanie. Pridanie tohto do každej kontroly hranice má však značnú réžiu výkonu.

Pretože NetSpectre je sieťový útok, nemožno mu zabrániť iba zmiernením spektra, ale aj protiopatreniami na sieťovej vrstve. Triviálny útok NetSpectre možno ľahko zistiť pomocou ochrany DDoS, pretože sa z rovnakého zdroja odosiela niekoľko tisíc rovnakých paketov.

Útočník si však môže zvoliť akýkoľvek kompromis medzi paketmi za sekundu a uniknutými bitmi za sekundu. Rýchlosť úniku bitov sa teda dá jednoducho znížiť pod prahovú hodnotu, ktorú dokáže detekovať monitoring DDoS. To platí pre každé monitorovanie, ktoré sa pokúša detekovať prebiehajúce útoky, napr. Systémy na detekciu vniknutia.

Aj keď útoku sa teoreticky nezabráni, v určitom okamihu je útok nemožný, pretože drasticky sa zvyšuje čas potrebný na jeho únik. Ďalšou metódou na zmiernenie NetSpectre je pridanie umelého šumu do latencie siete. Pretože počet meraní závisí od odchýlky v latencii siete, ďalší šum vyžaduje, aby útočník vykonal viac meraní. Ak je teda odchýlka v latencii siete dostatočne veľká, útoky NetSpectre sa stávajú nerealizovateľnými kvôli veľkému počtu požadovaných meraní.