Zola Bridges z Google pre sadu kompilátorov LLVM ponúka patch s implementáciou ochrany SESES (Potlačenie vedľajších účinkov špekulatívneho vykonávania), ktorý pomáha blokovať útoky na mechanizmus špekulatívneho vykonávania v CPU Intel, podobné . Ochranná metóda je implementovaná na úrovni kompilátora a je založená na pridávaní inštrukcií , ktoré sú vložené pred každú inštrukciu čítania z pamäte alebo zápisu do pamäte, ako aj pred prvou inštrukciou vetvenia v skupine inštrukcií ukončujúcej blok.
Inštrukcia LFENCE očakáva dokončenie všetkých predchádzajúcich operácií čítania z pamäte a zakazuje špekulatívne vykonávanie nasledujúcich inštrukcií po LFENCE, až kým nebude dokončené. Použitie LFENCE vedie k podstatnému poklesu výkonu, preto sa odporúča používať ochranu len v extrémnych prípadoch pre mimoriadne citlivý kód. Okrem úplnej ochrany patch ponúka tri argumenty, ktoré umožňujú selektívne vypnúť určité úrovne ochrany s cieľom znížiť negatívny dopad na výkon.
V vykonaných testoch použitie ochrany SESES pre balík BoringSSL viedlo k zníženiu počtu operácií uskutočnených knižnicou za sekundu o 14-násobok — výkon verzie knižnice so zabezpečením v priemere dosiahol iba 7,1% z výkonu nezabezpečenej verzie (rozsah v závislosti od testu od 4% do 23%).
Pre porovnanie, predtým mechanizmus pre GNU Assembler, ktorý vykonáva vkladanie LFENCE po každej operácii načítania z pamäte a pred niektorými inštrukciami vetvenia, vykázal pokles výkonu približne 5-násobne (22% z kódu bez ochrany). Ochranná metóda bola tiež a inžiniermi Intel, ale výsledky testovania výkonu pre ňu zatiaľ neboli zverejnené. Pôvodne vedci, ktorí identifikovali útok LVI, predpokladali pokles výkonu pri použití plnej ochrany v rozmedzí 2-19-násobne.
Zdroj: opennet.ru
