Kwetsberheden yn it eBPF-subsysteem wêrtroch beskerming tsjin Spectre-oanfallen mooglik is omgean

In kwetsberens is identifisearre yn 'e Linux-kernel (CVE-2021-33624) wêrtroch it eBPF-subsysteem kin wurde brûkt om beskerming tsjin Spectre-klasse kwetsberens te omgean, dy't it mooglik meitsje om de ynhâld fan ûnthâld te bepalen as gefolch fan it meitsjen fan betingsten foar de spekulative útfiering fan bepaalde operaasjes. De Spectre-oanfal fereasket de oanwêzigens fan in bepaalde folchoarder fan kommando's yn privilegearre koade dy't liedt ta spekulative útfiering fan ynstruksjes. Troch BPF-programma's te manipulearjen dy't foar útfiering oerbrocht binne, is it mooglik om ferlykbere ynstruksjes yn eBPF te generearjen en de ynhâld fan kernelûnthâld en willekeurige gebieten fan fysyk ûnthâld fia sydkanalen te lekken.

De kwetsberens wurdt feroarsake troch gebreken yn 'e ferifiearder, dy't wurdt brûkt om flaters en ûnakseptabele aktiviteit yn BPF-programma's te detektearjen. De ferifiearder telt mooglike koade-útfierpaden op, mar slacht fertakkingsopsjes oer dy't net akseptabel binne út it eachpunt fan 'e semantyk fan' e ynstruksjeset-arsjitektuer. By it útfieren fan in BPF-programma kinne sokke fertakkingsopsjes dy't net wurde rekken holden troch de ferifiearder ferkeard foarsein wurde troch de prosessor en útfierd yn spekulative modus. Bygelyks, by it analysearjen fan 'e operaasje "load" ferwachtet de ferifiearder dat de ynstruksje in register brûkt mei in adres wêrfan de wearde altyd binnen de opjûne grinzen is, mar in oanfaller kin betingsten oanmeitsje wêryn't de prosessor sil besykje in operaasje spekulatyf út te fieren mei in adres dat net foldocht oan de ferifikaasjebetingsten.

It probleem is ferskynde sûnt de frijlitting fan kernel 4.15 en is reparearre yn 'e foarm fan patches (1, 2, 3, 4). De kwetsberens bliuwt unfixed yn distribúsjes (Debian, RHEL, Ubuntu, Fedora, SUSE, Arch).

Derneist kinne jo de notysje notearje oer de prestaasjesynfloed fan ark om te beskermjen tsjin Spectre-kwetsberheden. De notysje gearfettet de resultaten fan optimalisaasje fan de rr (Record and Replay) debugger, dy't eartiids makke is yn Mozilla om dreech te werheljen flaters yn Firefox te debuggen. Caching fan de systeemoproppen brûkt om it bestean fan mappen te kontrolearjen fermindere de operaasje "rr-boarnen" foar it testprojekt fan 3 minuten 19 sekonden nei 36 sekonden.

De auteur fan optimalisaasje besleat om te kontrolearjen hoe't prestaasjes feroarje nei it útskeakeljen fan Spectre-beskerming. Nei it opstarten fan it systeem mei de parameter "mitigaasjes = út" wie de útfieringstiid fan "rr boarnen" sûnder optimisaasje 2 minuten 5 sekonden (1.6 kear flugger), en mei optimisaasje wie it 33 sekonden (9% flugger). It is nijsgjirrich dat it útskeakeljen fan Spectre-beskerming net allinich de útfieringstiid fan koade op it kernelnivo fermindere mei 1.4 kear (fan 2m9s nei 1m32s), mar ek halvearre útfieringstiid yn brûkersromte (fan 1m9s nei 0m33s), nei alle gedachten troch fermindere effisjinsje CPU-cache-operaasje en TLB reset as Spectre beskerming is ynskeakele.

Boarne: opennet.ru

Add a comment