Hlavní navigace

Chyba NetCAT v CPU Intel umožňuje na dálku číst stisky kláves v SSH

Petr Krčmář

Technologie DDIO umožňuje rychleji vyměňovat data mezi servery díky přímému přístupu síťové karty do keše procesoru. Nově objevená chyba nazvaná NetCAT ale umožňuje tuto vlastnost zneužít ke čtení dat.

Doba čtení: 3 minuty

Sdílet

Vědci z amsterodamské a curyšské univerzity objevili slabinu v procesorech Intel, která umožňuje na dálku ze serverů získávat citlivá data procházející pamětí serverů. Chyba může být velmi dobře zneužita například u poskytovatelů cloudových služeb, kde může jeden zákazník číst citlivé informace svého souseda. Chyba byla v praxi předvedena tím, že bylo možné na dálku číst stisky kláves používaných v šifrovaném terminálu v SSH.

Přímý přístup přes DDIO

Technologie DDIO (Data-Direct I/O) byla Intelem představena v roce 2011 a je k dispozici v serverových procesorech. Umožňuje zejména síťovým kartám přistupovat přímo do poslední úrovně procesorové keše, místo tradiční cesty přes pomalou systémovou paměť. Výsledkem je rychlejší komunikace mezi servery, které se tak při přenosu dat nemusí zdržovat.

Nyní byla objevena zranitelnost tohoto mechanismu, která za určitých okolností dovoluje touto cestou získat stisky kláves či další potenciálně citlivá data ze zranitelného serveru. Objevitelé tuto zranitelnost pojmenovali NetCAT: Network Cache ATtack. Intel na objev reagoval vydáním varování, které v nedůvěryhodných sítích doporučuje vypnout funkcionalitu DDIO či RDMA. Ta je ve výchozím stavu v procesorech zapnutá.

Odborníci ovšem tvrdí, že příští generace útoku bude pravděpodobně schopná krást další typy dat a to zřejmě i při vypnutém RDMA. Nabádají také tvůrce hardware, aby vylepšení na této úrovni lépe testovali, než je vypustí do produkčního prostředí v miliardových sériích.

Zatím jsme jen škrábli povrch

NetCAT má vlastní web, jak je dnes zvykem. NetCAT je velmi mocný, přičemž má jen minimální požadavky. Domníváme se, že jsme zatím jen škrábli povrch všech možností, které tento problém vytváří. V budoucnu se pravděpodobně dočkáme podobných útoků založených na NetCAT, píší tvůrci. Doufáme, že naše snaha bude varováním pro tvůrce procesorů, kteří už nebudou vytvářet mikroarchitekturální úpravy bez patřičných bezpečnostních opatření bránících zneužití.

Výzkumníci pomocí reverzního inženýrství prozkoumali technologii DDIO a zjistili, že si spolu procesor a periferie vyměňují spoustu potenciálně zneužitelných dat. Mimo jiné je možné takto získat velmi přesné informace o času přijetí paketů ze síťového rozhraní. Tím vznikl postranní kanál, ze kterého lze například dedukovat obsah získaný ze stisku jednotlivých kláves.

Útok vychází z faktu, že psaní na klávesnici má své zákonitosti, kterými se automaticky řídí většina uživatelů. Většina lidí například po klávese A stiskne rychleji sousední S než vzdálené G. Z informací o přesném čase a znalosti tohoto vzorce je pak možné velmi přesně odhadnout, co uživatel na klávesnici píše.

Příklad konkrétního útoku je k vidění na následujícím videu:

Technika PRIME+PROBE

K získání potřebných dat použili vědci techniku PRIME+PROBE, česky bychom řekli „připrav a měř“. Nejprve si připraví keš do známého stavu, který je schopen zpětně číst. Jakmile uživatel odešle stisk klávesy, síťová karta přijme paket a pozmění procesorovou keš jeho uložením.

Pokud uživatel stiskne klávesu, pakety dorazí o něco později, což nám signalizuje stisknutou klávesu. Pokud budeme tento postup opakovat cyklicky, dokážeme takto vlastně na dálku monitorovat provoz na síti a odhalit, kdy uživatel mačká klávesy.

Představena byla také druhá varianta útoku, která používá DDIO jako skrytý kanál ke získávání dat ze serveru. Na cílovém stroji běží spolupracující proces, který sám nekomunikuje po síti, ale svému protějšku informace předává právě tímto postranním kanálem. Běžnou cestou je tedy odesílání citlivých dat na síti nezjistitelné, protože se neposílá pomocí paketů, ale jen skrytým postranním kanálem.

Takto je možné obejít bezpečnostní pravidla vynucovaná tradičními firewally. Útočník tak dokáže ze vzdáleného serveru postupně číst různá data, aniž by byl jejich přenos zastaven či případně detekován.

Jen začátek

Intel doporučuje na nedůvěryhodných sítích DDIO úplně vypnout, je potřeba si ale uvědomit, že to bude zároveň znamenat výrazný pokles výkonu. Zatím se zdá, že procesory od AMD a dalších výrobců touto zranitelností postiženy nejsou, neboť neukládají síťová data na sdílenou keš v procesoru.

Je nutné si také říct, že nejde o jednoduše použitelný útok, který by začal být masivně zneužíván napříč internetem. NetCAT je komplexní útok a pro útočníky to zřejmě nebude jablíčko, které stačí utrhnout, píší vědci. Přesto doporučujeme v prostředí s nedůvěryhodnými uživateli, kde záleží na bezpečnosti víc než na výkonu, funkci DDIO vypnout.

Podobně jako v případě útoků Meltdown a Spectre tu byla otevřena zcela nová nová oblast, ve které se pravděpodobně brzy objeví další novinky.

Zdroje