Az utasítások végrehajtási idejének függősége az ARM és Intel CPU adataitól

Eric Biggers, az Adiantum titkosító algoritmus egyik fejlesztője és a Linux fscrypt kernel alrendszerének karbantartója, egy javítócsomagot javasolt a biztonsági problémák kezelésére, amelyek az Intel processzorok jellemzőiből adódnak, és nem garantálják az utasítások végrehajtási idejének állandóságát a különböző feldolgozott adatok esetében. Az Intel processzoroknál a probléma az Ice Lake családtól kezdődően jelentkezik. Hasonló probléma figyelhető meg az ARM processzoroknál is.

A javítócsomag szerzője az utasítások adataitól való függőséget a processzorokban sebezhetőségként kezeli, mivel ez a viselkedés nem garantálja a titkosítási műveletek biztonságát a rendszeren belül. Sok titkosítási algoritmus implementációja arra számít, hogy az adatok nem befolyásolják az utasítások végrehajtási idejét, és ennek a viselkedésnek a megsértése oldalsó csatornás támadások létrehozásához vezethet, amelyek az adatok helyreállítására építenek az feldolgozási időelemzés alapján.

Hasonlóképpen, az adatoktól való végrehajtási idő függősége potenciálisan felhasználható a kernel adatinak a felhasználói térből való kikövetkeztetésére irányuló támadásokhoz. Eric Biggers nyilatkozata szerint az alapértelmezett mentesség, amely az utasítások összeadását és XOR műveletek végrehajtását biztosítja, valamint az AES-NI speciális utasítások esetén sem biztosított, és más források szerint a vektorok szorzásakor és a bitek számolásakor egy ciklus késleltetést okoz.

Az Intel és ARM vállalatok a vizsgált viselkedés letiltására új zászlókat javasoltak: PSTATE DIT (Data Independent Timing) bit a CPU ARM számára és MSR DOITM (Data Operand Independent Timing Mode) bit a CPU Intel számára, amelyek visszaállítják a régi viselkedést, amely állandó végrehajtási időt biztosít. Az Intel és ARM vállalatok azt ajánlják, hogy szükség esetén aktiválják a védelmet különösen fontos kód esetén, de a valóságban fontos számítások a kernel bármely részén és a felhasználói térben előfordulhatnak, ezért a DOITM és DIT módok folyamatos aktiválásának lehetőségét mérlegelik az egész kernel számára.

ARM processzorokhoz a Linux 6.2 kernel ágon már elfogadtak javításokat, amelyek megváltoztatják a kernel viselkedését, de ezek a javítások elégtelennek számítanak, mivel csak a kernel kódjára vonatkoznak, és nem változtatják meg a felhasználói tér viselkedését. Intel processzorok esetében a védelem aktiválása jelenleg csak ellenőrzés alatt áll. A javítás teljesítményre gyakorolt hatásának mérése még nem történt meg, de az Intel dokumentációja szerint a DOITM mód aktiválása csökkenti a teljesítményt (például bizonyos optimalizációk, mint az adott adatokra vonatkozó előre betöltés letiltása miatt), és a jövőbeli processzor modellek esetében a teljesítménycsökkenés fokozódhat.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster