Závislosť času vykonávania inštrukcie od údajov na CPU ARM a Intel

Eric Biggers, jeden z vývojárov šifry Adiantum a správca linuxového jadra fscrypt subsystému, navrhol sadu záplat na blokovanie bezpečnostných problémov vyplývajúcich z funkcie procesorov Intel, ktorá nezaručuje konštantné časy spúšťania pre rôzne spracovávané dáta. Problém sa objavuje v procesoroch Intel počnúc rodinou Ice Lake. Podobný problém sa pozoruje v procesoroch ARM.

Prítomnosť závislosti času vykonávania inštrukcií od údajov spracovaných v týchto inštrukciách považuje autor záplat za zraniteľnosť procesorov, keďže takéto správanie nemôže zaručiť bezpečnosť kryptografických operácií vykonávaných v systéme. Mnohé implementácie kryptografických algoritmov sú navrhnuté tak, aby zabezpečili, že údaje neovplyvnia čas vykonávania pokynov a porušenie tohto správania môže viesť k vytvoreniu útokov na bočný kanál, ktoré obnovia údaje na základe analýzy času ich spracovania.

Závislosť na údajoch za behu môže byť tiež použitá na spustenie útokov na určenie údajov jadra z používateľského priestoru. Podľa Erica Biggersa nie je štandardne poskytovaný konštantný čas vykonávania ani pre inštrukcie, ktoré vykonávajú operácie sčítania a XOR, ako aj pre špecializované inštrukcie AES-NI (informácie nepotvrdené testami, podľa iných údajov je oneskorenie o jeden cyklus počas násobenia vektorov a počítania bitov).

Na deaktiváciu tohto správania Intel a ARM navrhli nové príznaky: PSTATE bit DIT (Data Independent Timing) pre ARM CPU a MSR bit DOITM (Data Operand Independent Timing Mode) pre Intel CPU, čím sa vracia staré správanie s konštantným časom vykonávania. Intel a ARM odporúčajú povoliť ochranu podľa potreby pre kritický kód, ale v skutočnosti sa kritický výpočet môže vyskytnúť kdekoľvek v jadre a používateľskom priestore, takže zvažujeme, že režimy DOITM a DIT povolíme vždy pre celé jadro.

Pre procesory ARM už vetva jadra Linuxu 6.2 prijala záplaty, ktoré menia správanie jadra, ale tieto záplaty sa považujú za nedostatočné, pretože pokrývajú iba kód jadra a nemenia správanie pre používateľský priestor. V prípade procesorov Intel je zahrnutie ochrany stále v štádiu preskúmania. Vplyv opravy na výkon zatiaľ nebol zmeraný, ale podľa dokumentácie Intelu povolenie DOITM režimu znižuje výkon (napríklad zakázaním niektorých optimalizácií, ako je napríklad dátovo špecifické predbežné načítanie) a v budúcich modeloch procesorov sa môže zníženie výkonu zvýšiť. .

Zdroj: opennet.ru

Pridať komentár