Causa:
Espera-se que a inicialização de grandes quantidades de memória para uma pilha de enclave levará muito tempo. Inicializar e adicionar memória ao Enclave Page Cache (EPC) para um enclave é muito mais complexo do que uma simples alocação de memória em uma aplicação regular. Antes que um pedaço de memória seja adicionado ao EPC, ele deve passar por várias verificações de segurança, incluindo ser medido usando uma função de hash segura SHA-2 de 256 bits.
Consulte as seções 5.1, 5.3, 5.6 em SGX explicadas e as instruções EADD e EEXTEND no ciclo de vida Intel SGX enclave.
Mitigação:
Se o processador suportar Intel® Software Guard Extensions (Intel® SGX) SGX2, no Arquivo de configuração do Enclave:
HeapInitSize é a quantidade para inicializar totalmente (ou seja , EADD , a página em seguida , EEXTEND it) no lançamento do enclave, o que leva tempo. Com um tamanho mínimo de inicialização, seria mais rápido, e o resto da memória só seria adicionada utilizando as instruções SGX2 quando alocadas, via malloc, pelo enclave durante o tempo de execução.