Enquanto Retbleed estava ganhando as manchetes desde a semana passada e a atenção dos desenvolvedores do kernel, um engenheiro da Intel enviou uma nova série de patches adicionando suporte ao kernel Linux para “BHI_DIS” como uma nova mitigação baseada em hardware que parece estar chegando com futuras CPUs Intel para melhor defesa off Spectre-BHI (Branch History Injection) que foi divulgado em março. Porém, as indicações iniciais são que essa nova prevenção baseada em hardware pode ser ainda mais cara para o desempenho e não está sendo habilitada por padrão. Portanto, a Intel trabalha para evitar ataques Spectre-BHI.
Tornado público em março pela VUSec foi o Spectre BHI como uma extensão do Spectre V2 e também às vezes chamado de Spectre-BHB. As CPUs ARM são afetadas por essa vulnerabilidade de injeção de histórico de ramificação e as CPUs da Intel também são da 12ª geração Alder Lake até pelo menos Haswell.
Quando o Spectre Branch History Injection/Branch History Buffer foi divulgado em março, as mitigações do kernel Linux chegaram para CPUs Arm e Intel. Desde então, não houve muito a relatar sobre ataques de injeção de histórico de ramificação, enquanto na semana passada, enquanto os desenvolvedores estavam ocupados com o Retbleed, uma série de patches do kernel Linux foi enviada para suportar BHI_DIS como uma prevenção BHI baseada em hardware para futuras CPUs Intel.
A série de patches Intel BHI_DIS explica:
Os ataques de injeção de histórico de ramificação (BHI) podem ser atenuados usando o bit de controle preditor indireto BHI_DIS_S localizado no registro MSR_IA32_SPEC_CTRL. Defina BHI_DIS em MSR_IA32_SPC_CTRL para evitar que destinos previstos de ramificações indiretas executadas em CPL0, CPL1 ou CPL2 sejam selecionados com base no histórico de ramificações de ramificações executadas em CPL3.
O suporte para esse recurso é enumerado por CPUID.7.2.EDX[BHI_CTRL] (bit 4).Os usuários que desejam proteção BHI podem especificar spectre_v2=eibrs,bhi_dis para habilitar proteções BHI de hardware. Em plataformas onde as proteções BHI não estão disponíveis no hardware, reverta para eibrs, retpoline mitigações.
Intel trabalha em nova prevenção baseada em hardware para ataques Spectre-BHI
O bit CPUID.7.2.EDX[BHI_CTRL] tem sido parte da documentação técnica da Intel, mas somente na semana passada vimos patches do kernel Linux para habilitar opcionalmente este controle BHI_DIS. Os processadores atualmente lançados não suportam esta prevenção baseada em hardware, mas presumivelmente está chegando na próxima geração de CPUs Intel e, portanto, agora preparando o controle do kernel Linux para habilitar esse recurso.
É notável que, mesmo com futuras CPUs com esse recurso, os patches atuais do kernel do Linux não estão configurados para habilitar a proteção BHI_DIS por padrão. O usuário/administrador deve optar por ele com a opção spectre_v2=eibrs,bhi_dis para desfrutar de eIBRS e BHI_DIS.
Assim, em resposta a essa série de patches da Intel, Boris Petkov, desenvolvedor de longa data do Linux x86, imediatamente perguntou por que essa proteção de hardware não é ativada automaticamente para plataformas suportadas.
Peter Zijlstra da Intel também perguntou publicamente na lista de discussão do kernel qual hardware terá esse recurso e ” [até onde eu sei] isso não é selecionado automaticamente; quão ruim é o desempenho para que isso não seja assim? “
A postagem da série de patches e esses dois acompanhamentos foram publicados na quinta-feira. Agora na segunda-feira à tarde e não há mais respostas/detalhes públicos sobre o suporte de hardware BHI_DIS ou o custo de desempenho ou outro motivo para não ter isso ativado por padrão.