Vulnerabilitete në nën-sistemin e eBPF, që lejojnë kalimin e mbrojtjes nga sulmet e klasës Spectre

Në kernin Linux është zbuluar një dobësi (CVE-2021-33624) që lejon përdorimin e nën-sistemit eBPF për të anashkaluar mbrojtjen nga dobësitë e klasës Spectre, duke mundësuar përcaktimin e përmbajtjes së kujtesës si rezultat i krijimit të kushteve për ekzekutimin spekulativ të operacioneve të caktuara. Për një sulm Spectre kërkohet prania në kodin me privilegje të një sekuence të caktuar komandash që çon në ekzekutimin spekulativ të instruksioneve. Përmes manipulimit të programeve BPF të dërguara për ekzekutim, është e mundur të krijohen instruksione të tilla në eBPF dhe të arrihet rrjedhja e përmbajtjes së kujtesës nga kanale të jashtme.

Dobësia është shkaktuar nga mangësitë në verifikuesin që përdoret për të zbuluar gabimet dhe aktivitetet e papranueshme në programet BPF. Verifikuesi përshkruan rrugët e mundshme të ekzekutimit të kodit, por kalon variante të degezimit që janë të papranueshme nga pikëpamja semantike e arkitekturës së setit të komandave. Kur ekzekutohet një program BPF, variante të këtilla degezimi, që nuk janë marrë në konsideratë nga verifikuesi, mund të parashikohen gabim nga procesori dhe të ekzekutohen në modalitetin spekulativ. Për shembull, kur analizohet operacioni 'load', verifikuesi llogarit se në instruksion përdoret një regjistër me adresë, vlera e të cilit është gjithmonë brenda kufijve të caktuar, por sulmuesi mund të krijojë kushte ku procesori përpiqet të ekzekutojë spekulativisht një operacion me një adresë që nuk i përmbahet kushteve të verifikimit.

Problemi shfaqet që nga lëshimi i kernit 4.15 dhe është zgjidhur përmes patch-ave (1, 2, 3, 4). Në distribucionet, dobësia ende mbetet e patretur (Debian, RHEL, Ubuntu, Fedora, SUSE, Arch).

Për më tepër, mund të përmendet një shënim mbi ndikimin në performancë të mjeteve për mbrojtjen nga dobësitë e klasës Spectre. Në shënim janë përmbledhur rezultatet e optimizimit të debugger-it rr (Record and Replay), i krijuar dikur në Mozilla për të diagnostikuar gabimet e vështira për tu përsëritur në Firefox. Kyçja e thirrjeve sistemike të përdorura për të verifikuar ekzistencën e direktorëve lejoi të reduktohet realizimi i operacionit 'rr sources' për një projekt testues nga 3 minuta 19 sekonda në 36 sekonda.

Autori i optimizimit vendosi tĂ« kontrollojĂ« se si do tĂ« ndryshonte performanca pas çaktivizimit tĂ« mbrojtjes nga Spectre. Pas ngarkimit tĂ« sistemit me parametrin 'mitigations=off', koha e ekzekutimit tĂ« 'rr sources' pa optimizim ishte 2 minuta 5 sekonda (1.6 herĂ« mĂ« e shpejtĂ«), ndĂ«rsa me optimizim - 33 sekonda (9% mĂ« e shpejtĂ«). ËshtĂ« interesante se çaktivizimi i mbrojtjes nga Spectre jo vetĂ«m qĂ« reduktoi me 1.4 herĂ« kohĂ«n e ekzekutimit tĂ« kodit nĂ« nivelin e kernit (nga 2m9s nĂ« 1m32s), por gjithashtu reduktoi me dy herĂ« kohĂ«n e ekzekutimit nĂ« hapĂ«sirĂ«n e pĂ«rdoruesit (nga 1m9s nĂ« 0m33s), ndoshta pĂ«r shkak tĂ« uljes sĂ« efikasitetit tĂ« punĂ«s sĂ« CPU-cache dhe pavlefshmĂ«rive TLB kur mbrojtja nga Spectre Ă«shtĂ« aktive.

Burimi: opennet.ru

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster