Erősítik a Linux 7.2-rc2 BPF kódját a JIT-szórási támadások ellen

enlightened Ez az oldal a közösségért készül. heart Kövess minket máshol is:  Linux Mint Magyar Közösség a Mastodon-on  Telegram csatorna – csak hírek  Beszélgessünk a Telegram – Linux csevegő csoport  Hírek olvasása RSS segítségével  Linux Mint Hivatalos Magyar Közösség a Facebook-on      Linux Mint Baráti Kör a Facebook-on
wink Ha hasznosnak találod, és szeretnéd, hogy folytatódjon, támogasd a munkát Ko-fi vagy Paypal segítségével. laugh

kami911 képe

Szokatlan módon a merge-ablak lezárulta után érkezett, és nem egyértelmű, hogy friss biztonsági felfedezések állnak-e mögötte, de a Linux kernel BPF kódját most elkezdték megerősíteni a JIT-szórási támadások ellen. Közben az is meglepő, hogy a Linux BPF kódját eddig még nem keményítették meg JIT-szórási támadásokkal szemben. Az Intel mérnöke, Pawan Gupta beküldte ezt a javítócsomagot, amely a BPF JIT megerősítését célozza JIT-szórás ellen:


"A BPF JIT allokátora sok kis programot csomagol nagyobb, végrehajtható allokációkba, és újrahasznosítja ezeknek az allokációknak a területét, ahogy a programokat betöltik és felszabadítják. Amikor friss kód kerül egy korábbi program által használt helyre, az új programba ugró közvetett ugrás újra felhasználhatja az előző program által hátrahagyott elágazás-előrejelzést.

Ki kell üríteni a közvetett elágazás-előrejelzőket, mielőtt újra felhasználjuk a JIT memóriát, hogy a frissen írt programba irányuló közvetett ugrások ne használjanak fel régi előrejelzéseket ugyanazon a memóriaterületen.

Bevezetjük a bpf_arch_pred_flush_enabled statikus kulcsot és a bpf_arch_pred_flush statikus hívást az elágazás-előrejelzők ürítésére a JIT memória újrafelhasználásakor. Azok az architektúrák, amelyeknek szükségük van ürítésre, beállíthatnak ide egy előrejelző-ürítő függvényt. Alapértelmezés szerint ez egy NOP, és nem generál CALL utasítást.

A csomagnál nagyobb allokációkra ez az ürítés nem vonatkozik. Ez biztonságos, mert a cBPF programok (a nem privilegizált támadási felület) mérete jóval a csomagméret alatt marad. Figyelmeztetést adunk ki, ha ez a feltételezés valaha sérül, miközben az ürítés aktív."

Emellett érkezett egy másik javítócsomag, szintén az Intelnél dolgozó Pawan Guptától, amely az Indirect Branch Predictor Barrier (IBPB) ürítések engedélyezését célozza a BPF JIT allokációknál:

"Engedélyezzük a JIT-szórás elleni megerősítést, ha a Spectre-v2 elleni védelmek aktívak. Konkrétan IBPB ürítést hajtunk végre a BPF JIT memória újrafelhasználásakor. Kihagyjuk az IBPB ürítés engedélyezését, ha a BPF dispatcher már retpoline szekvenciát használ.

Ez a megerősítés csak akkor érvényes, ha a BPF-JIT használatban van. Az engedélyezést a CONFIG_BPF_JIT alá tesszük, hogy a bugs.c továbbra is leforduljon akkor is, ha CONFIG_BPF_JIT=n."

A BPF JIT megerősítésére irányuló munka már bekerült a Linux Git ágba, és a vasárnap érkező Linux 7.2-rc2 kiadás része lesz.