Dipendenza dei tempi di esecuzione delle istruzioni dai dati su CPU ARM e Intel.

Eric Biggers, uno degli sviluppatori dell'algoritmo Adiantum e maintainer del sottosistema del kernel Linux fscrypt, ha proposto un insieme di patch per bloccare i problemi di sicurezza derivanti da una caratteristica dei processori Intel che non garantisce un tempo di esecuzione costante per diversi dati elaborati. Nei processori Intel, il problema si manifesta a partire dalla famiglia Ice Lake. Un problema simile si osserva anche nei processori ARM.

La dipendenza del tempo di esecuzione delle istruzioni dai dati elaborati in queste istruzioni è considerata dall'autore delle patch come una vulnerabilità nei processori, poiché tale comportamento non può garantire la sicurezza delle operazioni crittografiche effettuate nel sistema. Molte implementazioni di algoritmi crittografici sono progettate affinché i dati non influiscano sul tempo di esecuzione delle istruzioni, e una violazione di questo comportamento può portare a creare attacchi tramite canali laterali, recuperando dati sulla base dell'analisi del tempo di elaborazione.

Potenzialmente, la dipendenza del tempo di esecuzione dai dati può anche essere utilizzata per organizzare attacchi per identificare dati del kernel dallo spazio utente. Secondo quanto dichiarato da Eric Biggers, il tempo di esecuzione costante per impostazione predefinita non è garantito nemmeno per le istruzioni che eseguono operazioni di somma e XOR, così come per istruzioni specializzate AES-NI (l'informazione non è confermata da test, secondo altre fonti, durante la moltiplicazione dei vettori e il conteggio dei bit si verifica un ritardo di un ciclo).

Per disattivare il comportamento in questione, le aziende Intel e ARM hanno proposto nuovi flag: il bit PSTATE DIT (Data Independent Timing) per le CPU ARM e il bit MSR DOITM (Data Operand Independent Timing Mode) per le CPU Intel, che restituiscono il vecchio comportamento con un tempo di esecuzione costante. Le aziende Intel e ARM raccomandano di attivare la protezione secondo necessità per il codice particolarmente critico, ma nella pratica i calcoli importanti possono trovarsi in qualsiasi parte del kernel e dello spazio utente, quindi si sta considerando la possibilità di attivare permanentemente i modi DOITM e DIT per l'intero kernel.

Per i processori ARM, nel ramo del kernel Linux 6.2 sono già state accettate patch che cambiano il comportamento per il kernel, ma queste patch sono considerate insufficienti, poiché coprono solo il codice del kernel e non modificano il comportamento per lo spazio utente. Per i processori Intel, l'attivazione della protezione è attualmente solo in fase di revisione. La misurazione dell'impatto delle patch sulle prestazioni non è stata ancora condotta, ma secondo la documentazione Intel, l'attivazione della modalità DOITM riduce le prestazioni (ad esempio, a causa della disattivazione di alcune ottimizzazioni, come il caricamento proattivo specifico per determinati dati), e nei futuri modelli di processori, il calo delle prestazioni potrebbe aumentare.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS 🔥 Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS | ProHoster