Ochranný softvér LVI od Google vykázal 14-násobný nárast výkonu

Zola Bridges od spoločnosti Google ponúkol pre kompilátorovú sadu LLVM patch s implementáciou ochrany SESES (Speculative Execution Side Effect Suppression), ktorá pomáha blokovať útoky na mechanizmus špekulatívneho vykonávania v CPU Intel, ako napr. LVI. Metóda ochrany je implementovaná na úrovni kompilátora a je založená na pridávaní inštrukcií kompilátorom pri generovaní strojového kódu LFENCE, ktoré sa vkladajú pred každú inštrukciu čítania alebo zápisu pamäte, ako aj pred prvú inštrukciu vetvenia v skupine inštrukcií, ktorá blok ukončuje.

Inštrukcia LFENCE čaká na potvrdenie všetkých predchádzajúcich čítaní pamäte a zakáže preempciu následných inštrukcií po LFENCE, kým sa odovzdanie nedokončí. Použitie LFENCE vedie k výraznému zníženiu výkonu, preto sa ochrana navrhuje použiť v extrémnych prípadoch pre obzvlášť kritický kód. Okrem úplnej ochrany ponúka oprava tri príznaky, ktoré umožňujú selektívne zakázať určité úrovne ochrany, aby sa znížil negatívny vplyv na výkon.

V uskutočnených testoch použitie ochrany SESES pre balík BoringSSL viedlo k 14-násobnému zníženiu počtu operácií vykonaných knižnicou za sekundu - výkon chránenej verzie knižnice bol v priemere iba 7.1 % nechránená verzia (odchýlka v závislosti od testu od 4 % do 23 %).

Na porovnanie, navrhnuté Predtým pre GNU Assembler mechanizmus, ktorý vykonáva substitúciu LFENCE po každej operácii načítania pamäte a pred niektorými inštrukciami vetvenia, vykazoval zníženie výkonu asi 5-krát (22 % kódu bez ochrany). Spôsob ochrany tiež navrhované и implementovaná inžiniermi Intelu, ale výsledky testovania výkonu preň ešte neboli zverejnené. Spočiatku vedci, ktorí identifikovali útok LVI, predpovedali 2- až 19-násobné zníženie výkonu pri aplikácii plnej ochrany.

Zdroj: opennet.ru

Pridať komentár