Eric Biggers, um dos desenvolvedores da cifra Adiantum e mantenedor de um subsistema do kernel. Linux fscrypt, предложил набор патчей для блокирования проблем с безопасностью, возникающих из-за особенности процессоров Intel, не гарантирующей постоянное время выполнения инструкций для разных обрабатываемых данных. В процессорах Intel проблема проявляется начиная с семейства Ice Lake. Аналогичная проблема наблюдается и в процессорах ARM.
A presença de dependência do tempo de execução das instruções dos dados processados nestas instruções é considerada pelo autor dos patches como uma vulnerabilidade nos processadores, uma vez que tal comportamento não pode garantir a segurança das operações criptográficas realizadas no sistema. Muitas implementações de algoritmos criptográficos são projetadas para garantir que os dados não afetem o tempo de execução das instruções, e a violação desse comportamento pode levar à criação de ataques de canal lateral que recuperam dados com base na análise de seu tempo de processamento.
Potencialmente, a dependência de dados de tempo de execução também pode ser usada para lançar ataques para determinar dados do kernel do espaço do usuário. Segundo Eric Biggers, o tempo de execução constante não é fornecido por padrão mesmo para instruções que realizam operações de adição e XOR, bem como para instruções especializadas AES-NI (informações não confirmadas por testes, segundo outras fontes, há um atraso de um ciclo durante a multiplicação de vetores e contagem de bits).
Para desabilitar esse comportamento, Intel e ARM propuseram novos flags: PSTATE bit DIT (Data Independent Timing) para CPUs ARM e MSR bit DOITM (Data Operand Independent Timing Mode) para CPUs Intel, retornando o comportamento antigo com tempo de execução constante. A Intel e a ARM recomendam ativar a proteção conforme necessário para códigos críticos, mas, na realidade, a computação crítica pode ocorrer em qualquer lugar do kernel e do espaço do usuário, por isso estamos considerando ativar os modos DOITM e DIT para todo o kernel o tempo todo.
Для процессоров ARM в ветку ядра Linux 6.2 уже приняты патчи, меняющие поведение для ядра, но данные патчи рассматриваются как недостаточные, так как они охватывают только код ядра и не меняют поведение для пространства пользователя. Для процессоров Intel включение защиты пока находится только на стадии рецензирования. Измерение влияния патча на производительность пока не проводилось, но по данным из документации Intel включение режима DOITM снижает производительность (например, из-за отключения некоторых оптимизаций, таких как специфичная для определённых данных упреждающая загрузка) и в будущих моделях процессоров снижение производительности может усилиться.
Fonte: opennet.ru
