Zola Bridges nga Google për setin e kompilatorëve LLVM, një patch me implementimin e mbrojtjes SESES (Speculative Execution Side Effect Suppression), që ndihmon në bllokimin e sulmeve mbi mekanizmin e ekzekutimit spekullativ në CPU-të Intel, të ngjashëm me . Metoda e mbrojtjes është implementuar në nivelin e kompilatorit dhe bazohet në shtimin nga kompilatorti, gjatë gjenerimit të kodit makinë, të instrukcioneve , të cilat vendosen para çdo instruksioni që lexon nga memorie ose shkruan në memorie, si dhe para instruksionit të parë të degëzimit në grupin e instrukcioneve që përfundon bllokun.
Instruksioni LFENCE pret që të gjitha operacionet e mëparshme të leximit nga memoria të jenë të konfirmuara dhe ndalon ekzekutimin e parashikueshëm të instrukcioneve që vijnë pas LFENCE, deri sa konfirmimi të përfundojë. Përdorimi i LFENCE sjell një rënie të konsiderueshme të performancës, prandaj mbrojtjen rekomandohet ta përdorin në raste ekstreme për kodin shumë kritik. Përveç mbrojtjes së plotë, patch-i ofron tri bandera që lejojnë çaktivizimin selektiv të niveleve të caktuara të mbrojtjes për të ulur ndikimin negativ në performancë.
Në testet e kryera, aplikimi i mbrojtjes SESES për paketën BoringSSL çoi në një rënie të numrit të operacioneve të kryera nga biblioteka në sekondë në 14 herë - performanca e variantit të mbrojtur të bibliotekës ishte në mesatarisht vetëm 7.1% e treguesve të variantit të pambrojtur (variacioni në varësi të testit nga 4% deri në 23%).
Për krahasim, më parë për GNU Assembler, mekanizmi që kryen vendosjen e LFENCE pas çdo operacioni ngarkimi nga memoria dhe para disa instrukcionesh degëzimi, tregoi një rënie të performancës prej rreth 5 herë (22% nga kodi pa mbrojtje). Metoda e mbrojtjes gjithashtu dhe nga inxhinierët e Intel, por rezultatet e testimeve të performancës për të nuk janë publikuar ende. Fillimisht, hulumtuesit që identifikuan sulmin LVI parashikuan një rënie të performancës me përdorimin e mbrojtjes së plotë nga 2-19 herë.
Burimi: opennet.ru
