Tegnap itt tettük közzé a blogon a híreket Aya, könyvtár az eBPF illesztőprogramok létrehozásához a Rust-ban, és az a célja, hogy biztonságosabb illesztőprogramokat vagy Prossimo projekt a memória biztosítása érdekében a Linux kernel Rust-szal (két nagyszerű projekt, amelyekről a következő hónapokban sokat lehet beszélni).
És ez az rövid idő alatt különféle sérülékenységeket jelentettek amiben használja ki az eBPF hibáit és hogy ez egy olyan kérdés, amelyben a kernel fejlesztői nem álltak le, és talán a Rust a megoldás.
Ennek a témának az érintése az oka nemrégiben megjelent a hír, amelyet azonosítottak "Egyéb" biztonsági rés a Linux kernelben (CVE-2021 33624-) az bypass védelem a Spectre osztályú sebezhetőségek ellen, mivel ez lehetővé teszi az eBPF alrendszer használatát a memória tartalmának meghatározásához bizonyos műveletek végrehajtására vonatkozó spekulációk feltételeinek megteremtése eredményeként.
Megemlítik, hogy a sérülékenység a hitelesítő hibái okozzák, amelyet a BPF programok hibáinak és érvénytelen tevékenységeinek felderítésére használnak. A hitelesítő felsorolja a lehetséges kódfuttatási utakat, de figyelmen kívül hagy minden olyan elágazási beállítást, amely az utasításkészlet architektúra szemantikája szempontjából nem érvényes.
BPF program futtatásakor az elágazási lehetőségeket, amelyeket a hitelesítő nem vett figyelembe, a processzor helytelenül megjósolhatja, és spekulatív módban hajthatja végre.
Az érintett rendszereken egy nem kiváltságos BPF program kihasználhatja ezt a biztonsági rést, hogy egy tetszőleges kernelmemória (és ezáltal az összes fizikai memória) tartalmát egy mellékcsatornán keresztül kiszűrje.
Pl. a "betöltés" művelet elemzése során az ellenőr azt feltételezi, hogy az utasítás regisztert használ címmel, amelynek értéke mindig a megadott határokon belül van, de a támadó feltételeket teremthet amely alatt a processzor spekulatív módon megkísérli a kereskedelem végrehajtását olyan címmel, amely nem felel meg az ellenőrzési feltételeknek.
A Spectre támadása megköveteli egy speciális szkript jelenlétét a kiváltságos kódban, ami az utasítások spekulatív végrehajtásához vezet. A végrehajtás céljából átadott BPF programok manipulálásával lehetőség van ilyen utasítások előállítására az eBPF-ben, és a kernelmemória tartalmának és a fizikai memória tetszőleges területeinek szűrésére az oldalsó csatornákon keresztül.
Ezen túlmenően, megjegyzéssel megjelölheti a teljesítmény hatását eszközök hogy megvédje a Spectre sebezhetőség osztályától.
Ez a megjegyzés összefoglalja az eredményeket debrger optimalization rr (Record and Replay), amelyet egyszer a Mozilla készített a nehezen megismételhető hibák hibakereséséhez a Firefoxban. A könyvtárak létezésének ellenőrzésére használt rendszerhívások gyorsítótárazásával a tesztprojekt "rr források" művelete 3 perc 19 másodpercről 36 másodpercre csökkent.
Az optimalizálás szerzője úgy döntött, hogy ellenőrzi mennyi fog változni teljesítmény a Spectre védelem letiltása után. A rendszer indítása után a "mitigations = off" paraméterrel az optimalizálás nélküli "rr források" végrehajtási ideje 2 perc 5 másodperc volt (1.6-szor gyorsabb), optimalizálással pedig 33 másodperc (9% -kal gyorsabb).
Kíváncsi, a Spectre védelem letiltása nemcsak a futási időt csökkenti a kernel szintű kód 1.4-szerese (2 perc 9-től 1 percig 32 másodpercig), felére csökkentette a végrehajtási időt a felhasználói térben is (1 perc 9-től 33-ig), feltehetően a hatékonyság csökkenése miatt a CPU gyorsítótár és a TLB visszaáll, amikor a Spectre védelem engedélyezve van.
A probléma a 4.15-es rendszermag kiadása és a foltok formájában lett rögzítve, amelyek jelenleg még nem érik el az összes disztribúciót, ezért a felhasználók számára ajánlott, hogy manapság végezzék el a megfelelő frissítéseket, amint megkapják az értesítéseket.
Si többet szeretne tudni róla, ellenőrizheti a részleteket A következő linken.