Zranitelnost v eBPF umožňuje obejít ochranu před útoky Spectre

Včera jsme zde na blogu zveřejnili novinky o Aya, knihovna pro vytváření ovladačů eBPF v Rustu a je, že účelem je vytvořit bezpečnější ovladače nebo Projekt Prossimo pro zajištění paměti linuxového jádra s Rustem (dva skvělé projekty, o kterých bude v následujících měsících hodně mluvit).

A během krátké doby byly hlášeny různé chyby zabezpečení ve kterém využijte chyby v eBPF a že jde o problém, ve kterém vývojáři jádra nepřestali pracovat a možná je tím řešením Rust.

Důvodem pro dotek na toto téma je ten nedávno byla vydána zpráva, kterou identifikovali Chyba zabezpečení „Other“ v jádře Linuxu (CVE-2021-33624) pro obejít ochranu před zranitelnostmi třídy Spectre, protože to umožňuje použít subsystém eBPF, aby bylo možné určit obsah paměti v důsledku vytvoření podmínek pro spekulace o provedení určitých operací.

Uvádí se, že zranitelnost je to způsobeno selháním ověřovatele, který se používá k detekci chyb a neplatné aktivity v programech BPF. Ověřovatel uvádí možné cesty provádění kódu, ale ignoruje všechny možnosti větvení, které nejsou platné z hlediska sémantiky architektury sady instrukcí.

Při spuštění programu BPF může procesor nesprávně předvídat možnosti větvení, které ověřovatel nezohlednil, a provést je ve spekulativním režimu.

V postižených systémech může neprivilegovaný program BPF tuto chybu zabezpečení zneužít k filtrování obsahu paměti libovolného jádra (a tedy veškeré fyzické paměti) přes postranní kanál.

Např při analýze operace „načítání“ ověřovatel předpokládá, že instrukce používá registr s adresou, jejíž hodnota je vždy ve stanovených mezích, ale útočník může vytvořit podmínky pod kterými procesor se bude spekulativně pokoušet provést obchod s adresou, která nesplňuje podmínky pro ověření.

Strašidelný útok vyžaduje přítomnost konkrétního skriptu v privilegovaném kódu, což vede ke spekulativnímu provádění pokynů. Manipulací s programy BPF, které jsou předány k provedení, je možné vygenerovat takové instrukce v eBPF a filtrovat obsah paměti jádra a libovolné oblasti fyzické paměti bočními kanály.

Navíc, můžete označit poznámku o dopadu na výkon aktiv k ochraně před třídou zranitelností Spectre.

Tato poznámka shrnuje výsledky debugger optimization rr (Record and Replay), once created by Mozilla to debug hard-to-repeat errors in Firefox. Ukládání do mezipaměti systémových volání použitých k ověření existence adresářů snížilo operaci "rr sources" pro testovací projekt ze 3 minut 19 sekund na 36 sekund.

Autor optimalizace se rozhodl zkontrolovat kolik se změní výkon po deaktivaci ochrany Spectre. Po zavedení systému s parametrem „mitigations = off“ byla doba spuštění „rr sources“ bez optimalizace 2 minuty 5 sekund (1.6krát rychlejší) a s optimalizací 33 sekund (9% rychlejší).

Zvědavě, deaktivace ochrany Spectre nejen snížila dobu provádění kódu na úrovni jádra za 1.4 krát (od 2 min 9 s do 1 min 32 s), také to snížilo dobu provádění v uživatelském prostoru na polovinu (od 1 min 9 s do 33 s), pravděpodobně kvůli snížení účinnosti mezipaměti CPU a TLB se resetují, když je aktivována ochrana Spectre.

Problém se objevil od vydání jádra 4.15 a byl opraven ve formě oprav, které v tuto chvíli stále nedosahují všech distribucí, takže se uživatelům doporučuje, aby v těchto dnech prováděli příslušné aktualizace, jakmile obdrží oznámení.

Si chcete o tom vědět víc, můžete zkontrolovat podrobnosti Na následujícím odkazu.


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Za data odpovídá: AB Internet Networks 2008 SL
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.