Veikleikar í eBPF undirkerfinu sem leyfa framhjáhaldsvörn gegn Spectre árásum

Varnarleysi hefur fundist í Linux kjarnanum (CVE-2021-33624) sem gerir kleift að nota eBPF undirkerfið til að komast framhjá vörn gegn varnarleysi í Specter-flokki, sem gerir það mögulegt að ákvarða innihald minnis vegna þess að skapa skilyrði fyrir íhugandi framkvæmd ákveðinna aðgerða. Specter-árásin krefst tilvistar ákveðinnar röð skipana í forréttindakóða sem leiðir til íhugandi framkvæmdar á leiðbeiningum. Með því að vinna með BPF forrit sem send eru til framkvæmdar er hægt að búa til svipaðar leiðbeiningar í eBPF og leka innihaldi kjarnaminnis og handahófskenndra sviða líkamlegs minnis í gegnum hliðarrásir.

Varnarleysið stafar af göllum í sannprófandanum, sem er notað til að greina villur og óviðunandi virkni í BPF forritum. Sannprófandinn telur upp mögulegar keyrsluleiðir kóða, en sleppir greiningarvalkostum sem eru óviðunandi frá sjónarhóli merkingarfræði arkitektúrs kennslusetts. Þegar BPF forrit er keyrt getur örgjörvinn spáð rangt fyrir um slíka greiningarvalkosti sem sannprófandinn tekur ekki með í reikninginn og keyrt í spákaupmennsku. Til dæmis, þegar „hlaða“ aðgerðin er greind, býst sannprófandinn við því að leiðbeiningin noti skrá með heimilisfangi þar sem gildi þess er alltaf innan tilgreindra marka, en árásarmaður getur skapað aðstæður þar sem örgjörvinn reynir að framkvæma aðgerð með vangaveltur. heimilisfang sem uppfyllir ekki sannprófunarskilyrðin.

Vandamálið hefur verið að birtast frá útgáfu kjarna 4.15 og hefur verið lagað í formi plástra (1, 2, 3, 4). Varnarleysið er óráðið í dreifingum (Debian, RHEL, Ubuntu, Fedora, SUSE, Arch).

Að auki geturðu tekið eftir athugasemdinni um frammistöðuáhrif verkfæra til að vernda gegn Spectre varnarleysi. Skýringin dregur saman niðurstöður hagræðingar á rr (Record and Replay) villuleitarforritið, sem eitt sinn var búið til í Mozilla til að kemba villur sem erfitt er að endurtaka í Firefox. Með því að vista kerfissímtölin í skyndiminni til að athuga hvort möppur væru til, minnkaði „rr sources“ aðgerðina fyrir prófunarverkefnið úr 3 mínútum 19 sekúndum í 36 sekúndur.

Hagræðingarhöfundur ákvað að athuga hvernig frammistaða myndi breytast eftir að hafa slökkt á Spectre-vörninni. Eftir að kerfið var ræst með „mitigations=off“ færibreytunni var framkvæmdartími „rr sources“ án hagræðingar 2 mínútur 5 sekúndur (1.6 sinnum hraðar) og með fínstillingu var hann 33 sekúndur (9% hraðar). Athyglisvert er að slökkva á Specter-vörn minnkaði ekki aðeins keyrslutíma kóða á kjarnastigi um 1.4 sinnum (úr 2m9s í 1m32s), heldur einnig helmingunartíma í notendarými (úr 1m9s í 0m33s), væntanlega vegna minni skilvirkni CPU skyndiminni og TLB endurstillast þegar Specter vörn er virkjuð.

Heimild: opennet.ru

Bæta við athugasemd