Mitiga las vulnerabilidades de seguridad al prevenir ocalls que llaman a ecalls en Intel® Software Guard Extensions (Intel® SGX) aplicaciones.
No se puede encontrar documentación sobre por qué los ecalls anidadas pueden ser perjudiciales. Un ecall anidada es cuando una llamada ecall llama a ocall y ocall llama a una ecall.
La Intel® Software Guard Extensions (Intel® SGX) para desarrolladores explica:
Debe tener en cuenta que cuando se realiza un OCall, abre la puerta a ECalls anidadas. Una vez fuera del enclave, un atacante que intente encontrar vulnerabilidades puede invocar cualquier función de interfaz de ISV expuesta como ECall para llamar de forma recursiva al enclave. Cuando se necesita OCall, puede reducir el bloqueo de ataque de superficie que bloquea las funciones de interfaz de ISV de modo que no se permiten ECalls anidadas. Por ejemplo, puede almacenar la información de estado (correspondiente a OCall en curso) dentro del enclave. Sin embargo, un enclave no puede depender de ECalls anidadas que se producen en cierto orden durante una OCall. Inicialmente, se permiten los ECalls anidadas (ECalls durante un OCall) y solo están limitados por la cantidad de pila reservada dentro del enclave. Sin embargo, los ISV deben ser conscientes de que tales construcciones "contrarreste el análisis de seguridad del enclave". Cuando surge la necesidad de ECalls anidada, el escritor del enclave debe intentar dividir la aplicación de una manera diferente. Si no se pueden evitar los ECalls anidadas, el escritor del enclave debe limitar las funciones de interfaz de ISV que se pueden llamar recursivamente a solo aquellas estrictamente requeridas.