Zraniteľnosť v eBPF umožňuje obísť ochranu pred útokmi Spectre

Včera sme tu na blogu zverejnili novinky o Aya, knižnica na vytváranie ovládačov eBPF v Ruste a je, že účelom tohto je vytvoriť bezpečnejšie ovládače alebo Projekt Prossimo na zabezpečenie pamäte linuxového jadra s Rustom (dva veľké projekty, o ktorých sa dá v nasledujúcich mesiacoch veľa rozprávať).

A v priebehu krátkej doby boli hlásené rôzne zraniteľné miesta v ktorom využite chyby v eBPF a že ide o problém, pri ktorom vývojári jadra neprestali pracovať a riešením je možno Rust.

Dôvodom dotknutia sa tejto témy je ten nedávno vyšla správa, ktorú identifikovali Zraniteľnosť „Ostatné“ v jadre Linuxu (CVE-2021 33624,) pre obísť ochranu proti zraniteľnostiam triedy Spectre, pretože to umožňuje použitie subsystému eBPF na stanovenie obsahu pamäte v dôsledku vytvorenia podmienok pre špekulácie o vykonaní určitých operácií.

Uvádza sa, že zraniteľnosť je to spôsobené poruchami v overovači, ktorý sa používa na zisťovanie chýb a neplatnej činnosti v programoch BPF. Overovateľ vypíše možné cesty vykonania kódu, ale ignoruje všetky možnosti vetvenia, ktoré nie sú platné z hľadiska sémantiky architektúry sady inštrukcií.

Pri spustení programu BPF môže procesor nesprávne predvídať možnosti vetvenia, ktoré overovateľ nezohľadnil, a vykonať ich v špekulatívnom režime.

V postihnutých systémoch môže neprivilegovaný program BPF túto chybu zabezpečenia zneužiť na filtrovanie obsahu ľubovoľnej pamäte jadra (a teda celej fyzickej pamäte) cez bočný kanál.

Napr pri analýze operácie „načítania“ overovateľ predpokladá, že inštrukcia používa register s adresou, ktorej hodnota je vždy v stanovených medziach, ale útočník môže vytvoriť podmienky pod ktorým procesor sa bude špekulatívne pokúšať uskutočniť obchod s adresou, ktorá nespĺňa podmienky overenia.

Útok strašidla vyžaduje prítomnosť konkrétneho skriptu v privilegovanom kóde, čo vedie k špekulatívnemu vykonávaniu pokynov. Manipuláciou s programami BPF, ktoré sa odovzdávajú na vykonanie, je možné vygenerovať také pokyny v eBPF a filtrovať obsah pamäte jadra a ľubovoľné oblasti fyzickej pamäte bočnými kanálmi.

Okrem toho, môžete označiť poznámku o dopade na výkon majetku na ochranu pred triedou zraniteľností Spectre.

V tejto poznámke sú zhrnuté výsledky rr (Record and Replay) debugger optimization, once created by Mozilla to debug hard-to-repeat errors in Firefox. Ukladanie do pamäte cache systémových volaní použitých na overenie existencie adresárov znížilo operáciu "rr sources" pre testovací projekt z 3 minút 19 sekúnd na 36 sekúnd.

Autor optimalizácie sa rozhodol skontrolovať koľko sa zmení výkon po vypnutí ochrany Spectre. Po zavedení systému s parametrom «mitigations = off» bol čas vykonávania «rr sources» bez optimalizácie 2 minúty 5 sekúnd (1.6 krát rýchlejší) a s optimalizáciou 33 sekúnd (9% rýchlejšie).

Kuriózne je, deaktivácia ochrany Spectre nielen znížila dobu behu kódu na úrovni jadra za 1.4 krát (od 2 min. 9 do 1 min. 32 s), tiež znížil čas vykonania v užívateľskom priestore na polovicu (od 1 min. 9 s do 33 s), pravdepodobne kvôli zníženiu efektívnosti, sa medzipamäť procesora a TLB resetujú, keď je povolená ochrana Spectre.

Problém sa objavil od vydania jadra 4.15 a bol opravený vo forme opráv, ktoré v súčasnosti stále nedosahujú všetky distribúcie, preto sa používateľom odporúča, aby v týchto dňoch vykonávali príslušné aktualizácie hneď po prijatí upozornení.

Si chcete o tom vedieť viac, môžete skontrolovať podrobnosti Na nasledujúcom odkaze.


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Za údaje zodpovedá: AB Internet Networks 2008 SL
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.