U AMD procesorima je identificirana još jedna ranjivost koja dopušta Meltdown napade

Tim istraživača s Tehničkog sveučilišta u Grazu (Austrija) i Helmholtz centra za informacijsku sigurnost (CISPA) otkrio je ranjivost (CVE-2021-26318) u svim AMD procesorima koja omogućuje izvođenje Meltdown-klase side- kanalski napadi (u početku se pretpostavljalo da AMD procesori nisu pogođeni ranjivošću Meltdown). U praktičnom smislu, napad se može koristiti za uspostavljanje tajnih komunikacijskih kanala, praćenje aktivnosti u kernelu ili dobivanje informacija o adresama u memoriji kernela kako bi se zaobišla KASLR zaštita dok se iskorištavaju ranjivosti u kernelu.

AMD smatra neprikladnim poduzimanje posebnih mjera za blokiranje problema, budući da je ranjivost, poput sličnog napada otkrivenog u kolovozu, malo korisna u stvarnim uvjetima, ograničena je trenutnim granicama adresnog prostora procesa i zahtijeva prisutnost određenih gotove sekvence instrukcija (gadgeti) u kernelu. Kako bi demonstrirali napad, istraživači su svoj vlastiti kernel modul učitali s umjetno dodanom gadgetom. U stvarnim uvjetima, napadači mogu koristiti, na primjer, redovito pojavljivanje ranjivosti u eBPF podsustavu za zamjenu potrebnih sekvenci.

Za zaštitu od ove nove vrste napada, AMD je preporučio korištenje sigurnih tehnika kodiranja koje pomažu blokirati Meltdown napade, kao što je korištenje LFENCE uputa. Istraživači koji su identificirali problem preporučuju omogućavanje strože izolacije tablice memorijskih stranica (KPTI), koja se prije koristila samo za Intel procesore.

Tijekom eksperimenta, istraživači su uspjeli procuriti informacije iz kernela u proces u korisničkom prostoru brzinom od 52 bajta u sekundi, s obzirom na prisutnost gadgeta u kernelu koji izvodi operaciju “if (offset < data_len) tmp = LUT[podaci[pomak] * 4096];” . Predloženo je nekoliko metoda za dohvaćanje informacija putem sporednih kanala koje završe u predmemoriji tijekom spekulativnog izvršenja. Prva se metoda temelji na analizi odstupanja u vremenu izvođenja procesorske instrukcije “PREFETCH” (Prefetch+Time), a druga na promjeni promjene potrošnje energije prilikom izvođenja “PREFETCH” (Prefetch+Power).

Podsjetimo se da se klasična Meltdown ranjivost temelji na činjenici da tijekom spekulativnog izvršavanja instrukcija, procesor može pristupiti privatnom području podataka i zatim odbaciti rezultat, budući da postavljene privilegije zabranjuju takav pristup korisničkom procesu. U programu je spekulativno izvedeni blok odvojen od glavnog koda uvjetnom granom, koja se u stvarnim uvjetima uvijek aktivira, ali zbog činjenice da uvjetna naredba koristi izračunatu vrijednost koju procesor ne zna tijekom preventivnog izvođenja koda, sve opcije grana provode se špekulativno.

Budući da spekulativno izvršene operacije koriste istu predmemoriju kao i normalno izvršene instrukcije, moguće je tijekom spekulativnog izvođenja postaviti markere u predmemoriju koji odražavaju sadržaj pojedinačnih bitova u privatnom memorijskom području, a zatim u normalno izvršenom kodu odrediti njihovu vrijednost kroz vrijeme analiza pristupa predmemoriranim i ne-keširanim podacima.

Izvor: opennet.ru

Dodajte komentar