Akár 70%-kal is visszavetheti a Linux kernel teljesítményét a Retbleed javítás

Címkék

A VMware mérnökei teljesítmény-visszaesést észleltek az 5.19-es Linux kernelben az 5.18-ashoz képest. Utánanéztek és kiderült, hogy a regressziót a 6ad0ad2bf8a6 commit (Retbleed javítás) okozza. Észlelésüket jelezték az LKML-en. Részletek itt.

Hozzászólások

Mármint nem önmagában a kernel teljesítményével van a gond, hanem a Linuxon futtatott VM-ek teljesítményével. Érdemes elolvasni a szálat a levlistán, arra még nem született válasz, hogy a VMware miért mutatja magának a guestnek is azt, hogy a CPU retbleedes, amikor a host már kivédi ezt. Azaz gyakorlatilag a guest duplán dolgozik.

Való igaz, de még ha duplán is dolgozik, az a 70% akkor is nagyon durva. A Ratbleed elleni kód egy natív rendszeren lassít 3-5%-ot, jó, legyen 10, duplázzuk meg, mert a VM-ben is levesz max. ugyanennyit, az akkor is max. 20%, nem 70. Itt inkább valami regresszió van simán, ami kapcsolatban lehet magával a Ratbleed-folttal, de nem egyenes következmény.

A computer is like air conditioning – it becomes useless when you open Windows.” (Linus Torvalds)

Sot...

Amikor "uj" (valojaban egy hasznalt haswell i7 4790) gepemet vettem anno, megbenchmarkoltam ezeket a mitigacio dolgokat nativan es KVM-es VM-ben is. Mind a 4-fele kombot kiprobaltam.

Nyilvan a host=off, guest=off volt a leggyorsabb, ez nem meglepo. Viszont a masodik host=on, guest=on volt, vagyis a "duplan" mitigalas. Meglepo modon a vegyes felallasok host=on, guest=off vagy forditva kicsit lassabbak voltak a mindketto on-hoz kepest is. Annyira nem izgatott, hogy elkezdjem kinyomozni mi ennek az oka, megelegedtem vele, hogy jo ez ugy ha mindket helyen defaulton hagyom.

Nyilvan ez meg az eredeti Meltdown/Spectre sebezhetosegek esete volt, a mostani lehet hogy ebbol a szempontbol mashogy viselkedik. De nekem is gyanus, hogy ez valami VMware-specifikus dolog lesz.

Régóta vágyok én, az androidok mezonkincsére már!

Szerkesztve: 2022. 09. 12., h – 11:58

Oh fuck no. Not this again!

Ha ez igy megy tovabb, 2035-re a security szakemberek visszalassitjak a Pentium 2-es szintjere a core i9-est. ;)

Jó a kép! :-) A végén Hajbinak lesz igaza és ki kell kapcsolni ezeket a védelmeket. Persze megfontolás után, de ezek a helyi sebezhetőségek (nem olvastam még utána, de fogok) általában szervereken nem kihasználhatóak ha a támadó nem tud kódot injektálni.

Hát volt ugye NetSpectre variáns, ami remote, de szerencsére annyira lassú volt, hogy gyakorlatban nem tűnik hatékonynak.

Szerveren a fő para a cloud szolgáltatóknál van, ahol a támadó - random másik előfizetőként - igenis tud kódot injektálni a "saját" VM-jébe. Ha a hypervisor védelmét ezzel ki tudja játszani, akkor szar van a palacsintában. Kérdés, hogy az IDS rendszerek elég jók-e ahhoz, hogy legalább jelezzék a cloud szolgáltatónak, ha valamelyik ügyfél ilyenekkel próbálkozik. Ami cikkeket (jópár éve) olvastam erről, mind arra jutottak, hogy durva teljesítményvesztés bevállalása nélkül még megbízhatóan detektálni sem lehet az ilyen próbálkozásokat. A triviális CPU performance counter alapú detektálás vagy elég könnyen kijátszható volt vagy hajlamos volt fals pozitívakat adni bizonyos fajta valós workloadokra is. Nem tudom fejlődött-e a technika ebből a szempontból.

Régóta vágyok én, az androidok mezonkincsére már!

Amondó vagyok, hogy félig van igazsága ebben-abban. Bár ez csak mázli szerintem. Körülményektől függ, ki mit csinál, milyen hardveren. Virtuális gépben simán értelmetlen, de pl. gyenge hardveren én is megléptem, hogy letiltottam ezeket a linuxos foltokat (mitigations=off kernelparaméter), mint a Meltdown, meg a többi, pl. ilyen 10 éven 2 mag 4 szálas, régi i5-i7-es Thinkpadeken például sokat számít, C2D-kon még többet, eleve nem acélos gépek, még ha ez a sok folt is levesz, akkor nagyon durván is megérezhető, felhasználástól függően. Nem csak Linuxon, pl. OpenBSD-n is simán engedélyeztem ilyenkor a default tiltott Hyper-Threadinget, mert 2 magos proci nagyon rá van szorulva.

Amúgy FOSS unixlike rendszereken túl is vannak lihegve ezek a sérülékenységek. Hiszen aki ezeket használja, az többségében vagy szinte kizárólag tárolóból vagy ellenőrizhető forrásból telepít, főleg FOSS kódokat, amik a nyíltság miatt eleve nem tartalmazhatnak csúnyaságot, bináris formában meg alá vannak írva, így belebarmolni nem lehet senkinek. Windowson már sokkal kritikusabb, ahol mindenféle weboldalról guberált, szutyok zárt kód lefut. Egyedül a böngésző lehet közös támadási felület, de egyrészt a böngészőket külön is foltozni szokták az ilyen procisérülékenységek ellen, meg ugye ezek alapból sandboxolt megoldások. Legtöbbször már a fordítók is figyelembe veszik ezeket a sérülékenységeket, lásd ratpoline alkalmazása. Így ha a kernelben minden vonatkozó ki van kapcsolva, akkor is marad többszörös védelmi vonal.

Modern hardveren (utóbbi 5-6 generáció, azok, kb. amiket a Win11 is támogat) viszont nem tiltanám le ezeket a patcheket. Ezeken nem hogy nem gyorsít, de több mérés szerint még enyhe lassulást is okoz, mert a foltokba azóta integráltak optimalizációkat is, amikkel nyerhető sebesség a teljesen patch-mentes állapothoz képest. Így pl. Ryzen 2600, 4700U, 6800H, stb. gépeken alapértelmezésben hagyok minden ilyen foltot.

A computer is like air conditioning – it becomes useless when you open Windows.” (Linus Torvalds)

> Hiszen aki ezeket használja, az többségében vagy szinte kizárólag tárolóból vagy ellenőrizhető forrásból telepít, főleg FOSS kódokat, amik a nyíltság miatt eleve nem tartalmazhatnak csúnyaságot, bináris formában meg alá vannak írva, így belebarmolni nem lehet senkinek.

Találkoztál már a ma oly divatos curl+pipe+shell mintával?

Van, de nem meghatározó. Curl kimenetet egyébként sem javasolt azonnal shellbe pipe-olni, előtte érdemes elolvasni. A git clone https://akármi sem veszélytelen, de ugyebár a kód ott is látszik, aki nem vakmerő, megnézi. Ezek összeségében is sokkal biztonságosabbak, mint a Windows platform esetén mindenféle szutyok oldalról szedett install.exe, setup.msi, és bár az újabb Windowsok néznek aláírást, meg forrást, hogy honnan van, illetve a virnyákirtó is átmegy rajta, de még így is neccesebb, még a kódba se tudsz belenézni.

A computer is like air conditioning – it becomes useless when you open Windows.” (Linus Torvalds)

Linus-on kívül egyáltalán van bármilyen quality gate merge előtt?