As atualizações de gerenciamento de memória x86 para a janela de mesclagem do Linux 6.2 foram enviadas com duas adições principais: abordando outro "alvo saboroso para invasores" e, separadamente, também aterrissando a funcionalidade Linear Address Masking (LAM) da Intel.
O alvo saboroso para os invasores que agora está sendo abordado é finalmente randomizar a área de entrada por CPU. Peter Zijlstra, da Intel, trabalhou na randomização da área de entrada por CPU e explicou na postagem anterior do patch:
[Seth Jenkins do Google] descobriu que a área de entrada da CPU; a parte dos dados por CPU que é mapeada nas tabelas de páginas do espaço do usuário para kPTI [Kernel Page Table Isolation] não está sujeita a nenhuma randomização -- independentemente das configurações kASLR [Kernel Address Space Layout Randomization].
Em x86_64, todo um P4D (512 GB) de espaço de endereço virtual é reservado para essa estrutura, que é grande o suficiente para randomizar um pouco as coisas.
Dessa forma, use um esquema de randomização direto que evite duplicatas para espalhar as CPUs existentes pelo espaço disponível.
Isso torna mais difícil encontrar os endereços de estruturas importantes nas áreas de entrada da CPU, como as pilhas de entrada.
A randomização da área de entrada por CPU agora está pronta para ir com o Kernel Linux 6.2. Dave Hansen, da Intel, comentou na solicitação do pull x86/mm , " Isso inclui alguma nova randomização das áreas de entrada por CPU de Peter Z. Sem isso, essas áreas são um alvo saboroso para os invasores. O código de entrada e os mapeamentos são especialmente complicados código e isso causou alguns problemas ao longo do caminho, mas eles se acalmaram. "
Essa solicitação pull também inclui o trabalho da Intel em habilitar o Linear Address Masking (LAM) para uso com os próximos processadores. Intel Linear Address Masking (LAM) permite que o software faça uso de bits de endereço não traduzidos de endereços lineares de 64 bits para metadados. Os endereços lineares usam 48 bits (paginação de 4 níveis) ou 57 bits (paginação de 5 níveis), enquanto o LAM permite que o espaço restante dos endereços lineares de 64 bits seja usado para metadados.
Este artigo anterior tem mais informações básicas sobre LAN e possíveis casos de uso de aplicativos para os bits superiores nos endereços. A solicitação pull x86/mm também observa que pode ser útil também para sanitizadores de memória do espaço do usuário ter menos sobrecarga.
Até a próxima !!
Nenhum comentário:
Postar um comentário