Athari katika mfumo mdogo wa eBPF unaoruhusu ulinzi dhidi ya mashambulizi ya Specter

Athari imetambuliwa katika kinu cha Linux (CVE-2021-33624) ambayo inaruhusu mfumo mdogo wa eBPF kutumika kukwepa ulinzi dhidi ya athari za darasa la Specter, ambayo hufanya iwezekane kubainisha yaliyomo kwenye kumbukumbu kama matokeo ya kuunda hali ya utekelezaji wa kubahatisha wa shughuli fulani. Shambulio la Specter linahitaji uwepo wa mlolongo fulani wa amri katika msimbo wa upendeleo ambao husababisha utekelezaji wa kubahatisha wa maagizo. Kwa kuendesha programu za BPF zinazopitishwa kwa utekelezaji, inawezekana kutoa maagizo sawa katika eBPF na kuvuja yaliyomo kwenye kumbukumbu ya kernel na maeneo ya kiholela ya kumbukumbu ya kimwili kupitia njia za upande.

Athari hii husababishwa na dosari katika kithibitishaji, ambacho hutumika kugundua hitilafu na shughuli zisizokubalika katika programu za BPF. Kithibitishaji kinaorodhesha njia zinazowezekana za utekelezaji wa nambari, lakini huruka chaguzi za matawi ambazo hazikubaliki kutoka kwa mtazamo wa semantiki ya usanifu wa seti ya maagizo. Wakati wa kutekeleza programu ya BPF, chaguzi kama hizo za matawi ambazo hazizingatiwi na kithibitishaji zinaweza kutabiriwa vibaya na kichakataji na kutekelezwa kwa hali ya kubahatisha. Kwa mfano, wakati wa kuchambua operesheni ya "mzigo", kithibitishaji kinatarajia kuwa maagizo hutumia rejista iliyo na anwani ambayo thamani yake iko ndani ya mipaka iliyoainishwa kila wakati, lakini mshambulizi anaweza kuunda hali ambayo processor itajaribu kufanya operesheni kwa kubahatisha. anwani ambayo haikidhi masharti ya uthibitishaji.

Shida imekuwa ikionekana tangu kutolewa kwa kernel 4.15 na imewekwa kwa njia ya viraka (1, 2, 3, 4). Athari bado haijatatuliwa katika usambazaji (Debian, RHEL, Ubuntu, Fedora, SUSE, Arch).

Zaidi ya hayo, unaweza kutambua dokezo kuhusu athari za utendakazi za kulinda dhidi ya athari za Specter. Dokezo linatoa muhtasari wa matokeo ya uboreshaji wa kitatuzi cha rr (Rekodi na Cheza tena), ambacho kiliundwa mara moja huko Mozilla kutatua hitilafu ambazo ni ngumu kurudia katika Firefox. Kuhifadhi simu za mfumo zinazotumiwa kuangalia uwepo wa saraka kumepunguza utendakazi wa "vyanzo vya rr" kwa mradi wa jaribio kutoka dakika 3 sekunde 19 hadi sekunde 36.

Mwandishi wa uboreshaji aliamua kuangalia jinsi utendaji ungebadilika baada ya kuzima ulinzi wa Specter. Baada ya kuwasha mfumo kwa kigezo cha "mitigations=off", muda wa utekelezaji wa "rr sources" bila uboreshaji ulikuwa dakika 2 sekunde 5 (mara 1.6 haraka), na kwa uboreshaji ilikuwa sekunde 33 (9% haraka). Inafurahisha, kulemaza ulinzi wa Specter hakukupunguza tu muda wa utekelezaji wa msimbo katika kiwango cha kernel kwa mara 1.4 (kutoka 2m9s hadi 1m32s), lakini pia kupunguza nusu ya muda wa utekelezaji katika nafasi ya mtumiaji (kutoka 1m9s hadi 0m33s), labda kwa sababu ya kupunguza ufanisi wa uendeshaji wa kache ya CPU na TLB. huweka upya wakati ulinzi wa Specter umewashwa.

Chanzo: opennet.ru

Kuongeza maoni