Mitigar vulnerabilidades de segurança impedindo chamadas de chamadas em aplicativos Intel® Software Guard Extensions (Intel® SGX).
Não foi possível encontrar documentação sobre por que as chamadas aninhadas podem ser prejudiciais. Uma ligação aninhada é quando um e-call liga para uma ochamada e o chamado liga para uma ligação.
O Guia do Intel® Software Guard Extensions (Intel® SGX) explica:
Você deve estar ciente de que quando uma OCall é feita, ele abre as portas para ECalls aninhados. Uma vez fora do enclave, um invasor que tentar encontrar vulnerabilidades pode invocar qualquer função de interface ISV exposta como ECall para ligar recursivamente para o enclave. Quando uma OCall é necessária, você pode reduzir as funções de interface ISV de bloqueio de ataque de superfície, de tal forma que as ECalls aninhadas não são permitidas. Por exemplo, você pode armazenar as informações de estado (correspondentes ao OCall em andamento) dentro do enclave. No entanto, um enclave não pode depender de ECalls aninhados que ocorrem em determinados ordem durante uma OCall. Inicialmente, são permitidos ECalls aninhados (ECalls durante um OCall) e limitados apenas pela quantidade de pilha reservada dentro do enclave. No entanto, os ISVs devem estar cientes de que tais construções complicam a análise de segurança no enclave. Quando surgir a necessidade de ECalls aninhados, o escritor do enclave deve tentar particionar o aplicativo de outra forma. Se as ECalls aninhadas não puderem ser evitadas, o escritor do enclave deve limitar as funções de interface ISV que podem ser chamadas recursivamente apenas para aquelas estritamente necessárias.