Zola Bridges Google'ist LLVM kompilaatorite komplekti jaoks pakutud patš SESES (Spekulatiivse Täideviimise Küljefekti Kahandamine) rakendusega, mis aitab blokeerida rünnakuid Intel CPU spekulatiivse täideviimise mehhanismi vastu, sarnased . Kaitsemeetod on rakendatud kompilaatori tasemel, tuginedes kompilaatori poolt genereeritud masinkoodile antud käskudele , mis paigutatakse enne igat mälu lugemist või mälu kirjutamist ning samuti enne esimest harukäsku instruktsioonide grupis, mis lõpetab ploki.
LFENCE käsk ootab, kuni kõik eelnevad mälu lugemistoimingud on fikseeritud ja keelab järgneva LFENCE järel asuvate käskude spekulatiivse täideviimise, kuni fikseerimine on lõpetatud. LFENCE'i kasutamine toob kaasa märkimisväärse jõudluse languse, seega soovitatakse kaitset rakendada äärmuslikel juhtudel äärmiselt kriitilise koodi jaoks. Peale täieliku kaitse pakub patš kolme lippu, mis võimaldavad kindlaksmääratult välja lülitada teatud kaitsetasemeid, et vähendada sooritusvõime negatiivset mõju.
Viidatud testide kohaselt viis SESES'i kaitse BoringSSL paketi puhul salvestatud teekide tööde arvu vähenemiseni 14 korda — kaitstud raamatukogu kogutud versiooni keskmine jõudlus oli vaid 7.1% kaitseta versiooni näitajatest (sõltuvalt testist varieerus see 4% kuni 23%).
Võrdluseks, varem GNU Assembler'i puhul näitas mehhanism, mis paigutas LFENCE'i iga mälu laadimise operatsiooni järel ja enne mõningaid harukäsklusi, jõudlust umbes 5 korda (22% kaitseta koodist). Kaitsemeetod on samuti ja Intel'i inseneride välja töötatud, kuid selle jõudlustestide tulemused pole veel avaldatud. Alguses prognoosisid LVI rünnaku avastanud teadlased, et täieliku kaitse rakendamine toob kaasa jõudluse vähenemise 2-19 korda.
Allikas: opennet.ru
