Softueri i mbrojtjes LVI i Google tregoi një performancë të suksesshme 14 herë

Zola Bridges nga Google ai ofroi për grupin e përpiluesit LLVM, një patch me zbatimin e mbrojtjes SESES (Spekulative Execution Side Effect Suppression), e cila ndihmon në bllokimin e sulmeve në mekanizmin e ekzekutimit spekulativ në CPU-të Intel, si p.sh. LVI. Metoda e mbrojtjes zbatohet në nivelin e përpiluesit dhe bazohet në shtimin e udhëzimeve nga përpiluesi kur gjenerohet kodi i makinës LFENCE, të cilat futen para çdo instruksioni leximi ose shkrimi në memorie, si dhe para instruksionit të degës së parë në grupin e instruksioneve që përfundon bllokun.

Instruksioni LFENCE pret që të gjitha leximet e mëparshme të memories të kryejnë dhe çaktivizon parandalimin e udhëzimeve të mëvonshme pas LFENCE derisa të përfundojë kryerja. Përdorimi i LFENCE çon në një ulje të ndjeshme të performancës, kështu që mbrojtja propozohet të përdoret në raste ekstreme për kodin veçanërisht kritik. Përveç mbrojtjes së plotë, patch ofron tre flamuj që ju lejojnë të çaktivizoni në mënyrë selektive nivele të caktuara të mbrojtjes për të zvogëluar ndikimin negativ në performancë.

Në testet e kryera, përdorimi i mbrojtjes SESES për paketën BoringSSL çoi në një ulje të numrit të operacioneve në sekondë të kryera nga biblioteka me 14 herë - performanca e versionit të mbrojtur të bibliotekës ishte mesatarisht vetëm 7.1% e versioni i pambrojtur (ndryshimi në varësi të testit nga 4% në 23%).

Për krahasim, propozuar Më parë, për GNU Assembler, një mekanizëm që kryen zëvendësimin e LFENCE pas çdo operacioni të ngarkimit të memories dhe përpara disa udhëzimeve të degës tregoi një ulje të performancës prej rreth 5 herë (22% e kodit pa mbrojtje). Metoda e mbrojtjes është gjithashtu propozuar и zbatuar nga inxhinierët e Intel, por rezultatet e testimit të performancës për të nuk janë publikuar ende. Fillimisht, studiuesit që identifikuan sulmin LVI parashikuan një rënie 2-19-fish të performancës kur aplikonin mbrojtje të plotë.

Burimi: opennet.ru

Shto një koment