Spectreren erasoen aurkako babesa saihesteko aukera ematen duten eBPF azpisistemako ahultasunak

Linux nukleoan (CVE-2021-33624) ahultasun bat identifikatu da, eta eBPF azpisistema erabiltzeko aukera ematen du Spectre klaseko ahultasunen aurkako babesa saihesteko, memoriaren edukia zehaztea ahalbidetzen baitute, baldintzak sortzearen ondorioz. eragiketa jakin batzuen exekuzio espekulatiboa. Spectreren erasoak kode pribilegiatuan komando-sekuentzia jakin bat egotea eskatzen du, instrukzioen exekuzio espekulatibora eramaten duena. Exekutatzeko transmititutako BPF programak manipulatuz, posible da eBPFn antzeko instrukzioak sortzea eta nukleoaren memoriaren eta memoria fisikoaren eremu arbitrarioen edukia alboko kanalen bidez filtratzea.

Zaurgarritasuna egiaztatzailearen akatsek eragiten dute, BPF programetan akatsak eta jarduera onartezinak detektatzeko erabiltzen dena. Egiaztatzaileak kodea exekutatzeko bide posibleak zerrendatzen ditu, baina instrukzio-multzoaren arkitekturaren semantikaren ikuspuntutik onartezinak diren adarkatze-aukerak saltatzen ditu. BPF programa bat exekutatzen denean, egiaztatzaileak kontuan hartzen ez dituen adarkatze-aukerak oker iragar ditzake prozesadoreak eta modu espekulatiboan exekutatu. Esate baterako, "karga" eragiketa aztertzean, egiaztatzaileak espero du instrukzioak balio zehaztutako mugen barruan dagoen helbide bat duen erregistro bat erabiltzea, baina erasotzaile batek prozesadorea espekulatiboki eragiketa bat egiten saiatuko den baldintzak sor ditzake. egiaztapen-baldintzak betetzen ez dituen helbidea.

Arazoa 4.15 nukleoa kaleratu zenetik agertzen ari da eta adabaki moduan konpondu da (1, 2, 3, 4). Ahultasunak konpondu gabe jarraitzen du banaketetan (Debian, RHEL, Ubuntu, Fedora, SUSE, Arch).

Gainera, Spectreren ahultasunetatik babesteko tresnen errendimenduari buruzko oharra ohar dezakezu. Oharrak rr (Grabatu eta Erreproduzitu) araztailearen optimizazioaren emaitzak laburbiltzen ditu, behin Mozillan sortu zen Firefox-en errepikatzen diren akatsak arazteko. Direktorioen existentzia egiaztatzeko erabilitako sistema-deiak cachean gordetzeak proba-proiektuaren "rr iturriak" eragiketa murriztu zuen 3 minutu eta 19 segundotik 36 segundora.

Optimizazio egileak Spectre babesa desgaitu ondoren errendimendua nola aldatuko zen egiaztatzea erabaki zuen. Sistema β€œmitigations=off” parametroarekin abiarazi ondoren, optimizaziorik gabe β€œrr source”en exekuzio-denbora 2 minutu eta 5 segundo izan zen (1.6 aldiz azkarragoa), eta optimizazioarekin 33 segundokoa (% 9 azkarragoa). Interesgarria da Spectre babesa desgaitzeak kernel mailan kodearen exekuzio-denbora 1.4 aldiz murriztu zuen (2m9s-tik 1m32s-ra), baizik eta exekuzio-denbora erdira murriztu zen erabiltzaileen espazioan (1m9s-tik 0m33s-ra), seguru asko, CPU cachearen eragiketa eta TLB eraginkortasun murrizteagatik. Berrezartzen da Spectre babesa gaituta dagoenean.

Iturria: opennet.ru

Gehitu iruzkin berria