Zola Bridges Google'ist LLVM kompilaatorite kogumikule mĂ”eldud patĆĄ, mis rakendab SESES (Speculative Execution Side Effect Suppression) kaitset, mis aitab blokeerida Intel'i CPU spekulatiivse tĂ€itmise mehhanismi rĂŒnnakud, nagu . Kaitse meetod on ellu viidud kompilaatori tasemel ja pĂ”hineb kompilaatori genereeritud masinkoodi kĂ€skude lisamisel. , mis paigaldatakse iga mĂ€lust lugemise vĂ”i mĂ€lu kirjutamise kĂ€su ette, samuti enne esimest harukĂ€sku kĂ€sugrupis, mis lĂ”petab ploki.
LFENCE kÀsk ootab, kuni kÔik eelnevad operatsioonid mÀlust lugemise lÔpetavad ja keelab edasise tÀitmise pÀrast LFENCE kÀsku, kuni fikseerimine on lÔpetatud. LFENCE rakendamine pÔhjustab mÀrkimisvÀÀrset jÔudluse langust, seetÔttu on soovitatav kaitset rakendada ÀÀrmuslikes olukordades vaid eriti kriitilise koodi puhul. Peale tÀieliku kaitse pakub patƥ kolme lippu, mis vÔimaldavad valikuliselt keelata teatud kaitse tasemeid jÔudluse negatiivse mÔju vÀhendamiseks.
Testide kĂ€igus tĂ”i SESES-i kaitse rakendamine BoringSSL-i paketile kaasa kordades vĂ€iksema tehingute arvu sekundis â kaitstud versioon raamatukogust saavutas keskmiselt vaid 7,1% kaitsmata variandi tulemustest (katsete pĂ”hjal varieerus see vahemikus 4% kuni 23%).
VĂ”rdluseks, varem GNU Assembleris mehhanism, mis asendas LFENCE'i igal mĂ€lust laadimise operatsiooni jĂ€rel ja enne mĂ”ningaid harutehingute kĂ€ske, nĂ€itas tootlikkuse langust umbes 5 korda (22% kaitseta koodist). Kaitsemeetod on samuti ja inseneride Intel poolt, kuid selle tootlikkuse testimise tulemusi pole veel avaldatud. Alguses prognoosisid LVI rĂŒnnaku avastanud teadlased, et tĂ€ielikku kaitset rakendades vĂ€heneb tootlikkus 2-19 korda.
Allikas: opennet.ru
