Mga kahuyangan sa eBPF subsystem nga nagtugot sa pag-bypass sa proteksyon batok sa mga pag-atake sa Spectre

Usa ka kahuyang ang giila sa Linux kernel (CVE-2021-33624) nga nagtugot sa eBPF subsystem nga gamiton sa paglaktaw sa proteksyon batok sa mga kahuyangan sa klase sa Spectre, nga nagpaposible sa pagtino sa mga sulod sa memorya isip resulta sa pagmugna og mga kondisyon alang sa espekulatibo nga pagpatuman sa pipila ka mga operasyon. Ang pag-atake sa Spectre nanginahanglan sa presensya sa usa ka piho nga han-ay sa mga mando sa pribilihiyo nga code nga nagdala sa espekulatibo nga pagpatuman sa mga panudlo. Pinaagi sa pagmaniobra sa mga programa sa BPF nga gipasa alang sa pagpatuman, posible nga makamugna og susama nga mga instruksyon sa eBPF ug ma-leak ang mga sulod sa kernel memory ug arbitraryong mga bahin sa pisikal nga memorya pinaagi sa mga side channel.

Ang pagkahuyang tungod sa mga sayup sa verifier, nga gigamit aron mahibal-an ang mga sayup ug dili madawat nga kalihokan sa mga programa sa BPF. Gilista sa verifier ang posible nga mga agianan sa pagpatuman sa code, apan gilaktawan ang mga kapilian sa pagsanga nga dili madawat gikan sa punto sa pagtan-aw sa mga semantiko sa arkitektura sa set sa panudlo. Kung nagpatuman sa usa ka programa sa BPF, ang ingon nga mga kapilian sa pagsanga nga wala gikonsiderar sa verifier mahimong sayup nga gitagna sa processor ug gipatuman sa speculative mode. Pananglitan, sa pag-analisar sa "load" nga operasyon, ang verifier nagpaabut nga ang instruksyon naggamit sa usa ka rehistro nga adunay usa ka adres kansang bili kanunay sulod sa gitakda nga mga utlanan, apan ang usa ka tig-atake makahimo og mga kondisyon diin ang processor mosulay sa pagpahigayon sa usa ka operasyon nga adunay usa ka adres nga wala makaabot sa mga kondisyon sa pag-verify.

Ang problema nagpakita sukad sa pagpagawas sa kernel 4.15 ug naayo sa porma sa mga patch (1, 2, 3, 4). Ang kahuyang nagpabilin nga wala ma-fix sa mga distribusyon (Debian, RHEL, Ubuntu, Fedora, SUSE, Arch).

Dugang pa, mahimo nimong matikdan ang nota bahin sa epekto sa pasundayag sa mga himan aron mapanalipdan batok sa mga kahuyangan sa Spectre. Ang nota nagsumaryo sa mga resulta sa pag-optimize sa rr (Record and Replay) debugger, nga kaniadto gimugna sa Mozilla aron sa pag-debug sa lisud-sa-pag-usab nga mga sayop sa Firefox. Ang pag-cache sa mga tawag sa sistema nga gigamit sa pagsusi sa pagkaanaa sa mga direktoryo nagpamenos sa "rr sources" nga operasyon alang sa proyekto sa pagsulay gikan sa 3 minutos 19 segundos ngadto sa 36 segundos.

Nakahukom ang tagsulat sa pag-optimize nga susihon kung giunsa ang pagbag-o sa pasundayag pagkahuman gi-disable ang proteksyon sa Specter. Pagkahuman sa pag-boot sa sistema gamit ang parameter nga "mitigations = off", ang oras sa pagpatuman sa "rr sources" nga walay pag-optimize mao ang 2 minuto 5 segundos (1.6 ka beses nga mas paspas), ug uban ang pag-optimize kini 33 segundos (9% mas paspas). Makapainteres, ang pag-disable sa proteksyon sa Specter dili lamang nakunhuran ang oras sa pagpatuman sa code sa lebel sa kernel sa 1.4 ka beses (gikan sa 2m9s hangtod 1m32s), apan gitunga usab ang oras sa pagpatay sa wanang sa gumagamit (gikan sa 1m9s hangtod 0m33s), lagmit tungod sa pagkunhod sa kahusayan sa operasyon sa cache sa CPU ug TLB i-reset kung ang proteksyon sa Spectre gipagana.

Source: opennet.ru

Idugang sa usa ka comment