Afhængighed af instruktionsudførelsestid på data på ARM og Intel CPU'er

Eric Biggers, en af ​​udviklerne af Adiantum-chifferet og vedligeholderen af ​​Linux-kernens fscrypt-undersystem, foreslog et sæt patches til at blokere sikkerhedsproblemer, der stammer fra en funktion i Intel-processorer, der ikke garanterer konstante eksekveringstider for forskellige behandlede data. Problemet opstår i Intel-processorer, der starter med Ice Lake-familien. Et lignende problem observeres i ARM-processorer.

Tilstedeværelsen af ​​en afhængighed af udførelsestiden for instruktioner på de data, der behandles i disse instruktioner, betragtes af forfatteren af ​​patches som en sårbarhed hos processorer, da en sådan adfærd ikke kan garantere sikkerheden af ​​kryptografiske operationer udført i systemet. Mange implementeringer af kryptografiske algoritmer er designet til at sikre, at data ikke påvirker udførelsestiden for instruktioner, og overtrædelse af denne adfærd kan føre til oprettelsen af ​​sidekanalangreb, der gendanner data baseret på analyse af dets behandlingstid.

Potentielt kan runtime-dataafhængighed også bruges til at starte angreb for at bestemme kernedata fra brugerrummet. Ifølge Eric Biggers leveres konstant udførelsestid ikke som standard, selv for instruktioner, der udfører tilføjelses- og XOR-operationer, såvel som for specialiserede AES-NI-instruktioner (oplysninger, der ikke er bekræftet af test, ifølge andre data er der en forsinkelse på en cyklus under vektormultiplikation og bittælling).

For at deaktivere denne adfærd har Intel og ARM foreslået nye flag: PSTATE bit DIT (Data Independent Timing) for ARM CPU'er og MSR bit DOITM (Data Operand Independent Timing Mode) for Intel CPU'er, hvilket returnerer den gamle adfærd med konstant udførelsestid. Intel og ARM anbefaler at aktivere beskyttelse efter behov for kritisk kode, men i virkeligheden kan kritisk beregning forekomme hvor som helst i kernen og brugerrummet, så vi overvejer til enhver tid at aktivere DOITM- og DIT-tilstande for hele kernen.

For ARM-processorer har Linux 6.2-kernegrenen allerede vedtaget patches, der ændrer adfærden for kernen, men disse patches anses for utilstrækkelige, da de kun dækker kernekoden og ikke ændrer adfærden for brugerrummet. For Intel-processorer er medtagelsen af ​​beskyttelse stadig på revisionsstadiet. Effekten af ​​patchen på ydeevnen er endnu ikke blevet målt, men ifølge Intel-dokumentation reducerer aktivering af DOITM-tilstand ydeevnen (for eksempel ved at deaktivere nogle optimeringer, såsom dataspecifik forudindlæsning), og i fremtidige processormodeller kan ydeevnereduktionen øges .

Kilde: opennet.ru

Tilføj en kommentar