Se exploradas, essas falhas podem permitir que invasores obtenham acesso não autorizado a informações confidenciais ou geralmente causem problemas
Recentemente, a notícia de que Eric Biggers um dos desenvolvedores da cifra Adiantum e mantenedor do subsistema do kernel Linux fscrypt, propôs um conjunto de patches para bloquear os problemas de segurança derivada da peculiaridade do Processadores Intel que não garantem tempos de execução constantes para as instruções dos diferentes dados processados.
Sobre sua proposta, ele cita que nos processadores Intel o problema vem se manifestando desde a família Ice Lake, além do fato de que Também um problema semelhante é observado em processadores ARM.
A dependência do tempo de execução das instruções dos dados tratados nestas instruções é considerado pelo autor dos patchesÉ como uma vulnerabilidade nos processadores, já que tal comportamento não pode garantir a segurança das operações criptográficas feito no sistema.
Gostaria de chamar a atenção das pessoas para o fato de que nas últimas CPUs Intel e Arm , por padrão no momento da execução das instruções pode depender dos dados valores operados. Isso inclui até instruções como adição, XOR e iInstruções AES, que são tradicionalmente consideradas de tempo constante em relação aos valores de dados operados.
Muitas implementações de algoritmos criptográficos dependem do fato de que os dados não afetam o tempo de execução da instrução, e a violação desse comportamento pode levar à criação de ataques de canal lateral que recuperam dados com base na análise de tempo.
Potencialmente dependência de tempo de execução em dados também pode ser usado para encenar ataques para determinar os dados do kernel do espaço do usuário.
As instruções de tempo não constante quebram o código criptográfico baseado no código de tempo constante para evitar ataques de tempo em chaves criptográficas, ou seja, a maioria
código criptográfico. Esse problema também pode ter um impacto mais amplo na capacidade de
sistemas operacionais para proteger dados de processos não privilegiados.Para a Intel, os processadores com Ice Lake e posteriores são afetados por esse problema.
A solução para esse problema é definir um sinalizador de CPU que restaure o antigo e correto
comportamento de temporização independente de dados: DIT em Arm e DOITM em Intel.
De acordo com Eric Biggers, inclusive para instruções que executam operações de adição e XOR, bem como para instruções AES-NI especializadas, nenhum tempo de execução constante fornecido por padrão (a informação não confirmado por teste, de acordo com outros dados, há um atraso de um ciclo ao multiplicar vetores e contar bits).
Para desabilitar este comportamento, Intel e ARM propuseram novas soluções, como o bit PSTATE DIT (Data Independent Timing) para CPUs ARM e o bit DOITM (Data Operand Independent Timing Mode) MSR para CPUs Intel, retornando o comportamento anterior com tempo de execução constante.
Intel e ARM recomendamos habilitar a proteção conforme necessário para código crítico, mas, na realidade, cálculos importantes podem ocorrer em qualquer lugar no kernel e no espaço do usuário, portanto, a possibilidade de habilitar permanentemente os modos DOITM e DIT em todo o kernel está sendo considerada.
Para os Processadores ARM, ramificação do kernel Linux 6.2 já recebeu patches que alteram o comportamento do kernel, mas esses patches são considerados insuficientes uma vez que cobrem apenas o código do kernel e não alteram o comportamento do espaço do usuário.
Para processadores Intel, a inclusão da proteção está apenas em fase de revisão. O impacto do patch no desempenho ainda não foi medido, mas, de acordo com a documentação da Intel, ativar o modo DOITM reduz o desempenho (por exemplo, devido à desativação de algumas otimizações, como pré-carregamento específico de dados) e, em futuros modelos de processador, a degradação do desempenho pode aumentar.
Por fim, se estiver interessado em saber mais sobre o assunto, pode consultar os detalhes no link a seguir