Vundeblecoj en la eBPF-subsistemo kiuj permesas preteriri protekton kontraŭ Specter-atakoj

Vulnerabileco estis identigita en la Linukso-kerno (CVE-2021-33624), kiu permesas la eBPF-subsistemon esti uzata por preteriri protekton kontraŭ Spectre-klasaj vundeblecoj, kiuj ebligas determini la enhavon de memoro kiel rezulto de kreado de kondiĉoj por la. spekula ekzekuto de certaj operacioj. La Spectre-atako postulas la ĉeeston de certa sekvenco de komandoj en privilegiita kodo kiu kondukas al konjekta plenumo de instrukcioj. Manipulante BPF-programojn elsenditajn por ekzekuto, estas eble generi similajn instrukciojn en eBPF kaj liki la enhavon de kernmemoro kaj arbitraj areoj de fizika memoro tra flankaj kanaloj.

La vundebleco estas kaŭzita de difektoj en la kontrolilo, kiu estas uzata por detekti erarojn kaj neakcepteblan agadon en BPF-programoj. La kontrolilo listigas eblajn kodajn ekzekutvojojn, sed transsaltas disbranĉigajn opciojn kiuj estas neakcepteblaj de la perspektivo de la semantiko de la instrukcia aro-arkitekturo. Dum plenumado de BPF-programo, tiaj disbranĉaj elektoj, kiuj ne estas konsiderataj de la kontrolilo, povas esti malĝuste antaŭdiritaj de la procesoro kaj efektivigitaj en spekula reĝimo. Ekzemple, kiam oni analizas la "ŝarĝon" operacion, la kontrolisto atendas ke la instrukcio uzas registron kun adreso kies valoro ĉiam estas ene de la specifitaj limoj, sed atakanto povas krei kondiĉojn sub kiuj la procesoro provos konjekte plenumi operacion kun adreso, kiu ne plenumas la kontrolajn kondiĉojn.

La problemo aperas ekde la liberigo de kerno 4.15 kaj estis riparita en formo de flikoj (1, 2, 3, 4). La vundebleco restas nefiksita en distribuoj (Debian, RHEL, Ubuntu, Fedora, SUSE, Arch).

Aldone, vi povas noti la noton pri la efika efiko de iloj por protekti kontraŭ Spectre-vunereblecoj. La noto resumas la rezultojn de optimumigo de la erarserĉilo rr (Record and Replay), kiu iam estis kreita en Mozilo por sencimigi malfacile ripeteblajn erarojn en Firefox. Kaŝmemoro de la sistemvokoj uzataj por kontroli la ekziston de dosierujoj reduktis la operacion "rr-fontoj" por la testa projekto de 3 minutoj 19 sekundoj al 36 sekundoj.

La aŭtoro pri optimumigo decidis kontroli kiel la rendimento ŝanĝiĝos post malŝalto de Spectre-protekto. Post ekfunkciigo de la sistemo kun la parametro "mildigoj=off", la ekzekuttempo de "rr-fontoj" sen optimumigo estis 2 minutoj 5 sekundoj (1.6 fojojn pli rapida), kaj kun optimumigo ĝi estis 33 sekundoj (9% pli rapida). Interese, malfunkciigi Spectre-protekton ne nur reduktis kodan ekzekuttempon je la kerno-nivelo je 1.4 fojojn (de 2m9s ĝis 1m32s), sed ankaŭ duonigis ekzekuttempon en uzantspaco (de 1m9s ĝis 0m33s), supozeble pro reduktita efikeco de CPU-kaŝmemorfunkciado kaj TLB. rekomenciĝas kiam Spectre-protekto estas ebligita.

fonto: opennet.ru

Aldoni komenton