O Intel Trust Domain Extensions ( TDX ) é um dos novos recursos dos processadores "Sapphire Rapids" escaláveis Xeon de 4ª geração, mas está limitado nesta geração à implantação por alguns parceiros de nuvem selecionados. Para o Kernel Linux 6.3, esse recurso para as máquinas virtuais isoladas de hardware continua sendo refinado.
O suporte do Intel TDX para Linux tanto no lado do host quanto no lado do convidado vem se unindo ao longo dos últimos ciclos do kernel. Com o Linux 6.3, o foco das alterações do TDX está na prevenção de exceções inesperadas de virtualização de hosts, removendo mapeamentos de convidados e notificações #VE excessivas.
A solicitação pull x86/tdx das alterações do Kernel Linux 6.3 resume o trabalho como:
"Além de uma pequena correção, o conteúdo aqui é para garantir que os convidados TDX nunca vejam exceções de virtualização (#VE's) que podem ser induzidas pelo VMM não confiável. Esta é uma propriedade altamente
desejável. Sem ela, o tratamento de exceção #VE cairia em algum lugar entre NMIs, verificações de máquina e insanidade total. Com ele, o manuseio do #VE permanece bastante mundano."
O patch do Intel TDX que faz parte desta solicitação pull para desabilitar NOTIFY_ENABLES explica:
"Existe uma classe de ataques de canal lateral contra enclaves SGX chamada "SGX Step". Esses ataques criam muitas exceções dentro dos enclaves. Basicamente, execute uma instrução no enclave, cause uma exceção
. que um VMM poderia atacar um convidado TDX da mesma forma, causando muitos #VE's. A arquitetura TDX inclui novas contramedidas para esses ataques. Basicamente, conta o número de exceções e pode enviar outra exceção *especial* assim que o número de VMM- #VE's induzidos atingem um limite crítico.
Mas, essas exceções especiais são independentes de qualquer ação que o convidado execute. Elas podem ocorrer em qualquer lugar que o convidado execute. Isso inclui áreas sensíveis como o código de entrada. O manipulador #VE (não paranóico) é incapaz de lidar com exceções nessas áreas.
Felizmente, as exceções especiais podem ser desativadas pelo convidado por meio da gravação no campo NOTIFY_ENABLES TDCS. NOTIFY_ENABLES está desativado por padrão, mas pode ser ativado por um gerenciador de inicialização, firmware ou um kernel anterior antes da execução do kernel atual.
Desative o recurso NOTIFY_ENABLES explícita e incondicionalmente. Qualquer #VE baseado em NOTIFY_ENABLES que ocorrer antes desse ponto terminará no manipulador de exceção #VE inicial e morrerá devido a um motivo de saída inesperado."
Portanto, a limpeza em torno das exceções de virtualização (#VE) está pronta para o Kernel Linux 6.3. Provavelmente será com os processadores Emerald Rapids de próxima geração, onde o suporte TDX se tornará amplamente disponível.
Até a próxima !!
Nenhum comentário:
Postar um comentário