Minderung von Sicherheitsschwachstellen, indem verhindert wird, dass in Intel® Software Guard Extensions (Intel® SGX) Anwendungen Intel® Software Guard Extensions anrufe.
Es können keine Dokumentationen dazu gefunden werden, warum verschachtelte Ecalls schädlich sein können. Ein verschachtelter Notruf ist der, wenn ein Ecall einen Ocall anruft und der Ocall einen Ecall anruft.
Das Intel® Software Guard Extensions (Intel® SGX) Entwicklerhandbuch erklärt:
Beachten Sie, dass bei einem OCall-System die Tür für verschachtelte ECalls geöffnet wird. Außerhalb der Enklave kann ein Angreifer, der versucht, Schwachstellen zu finden, jede ISV-Schnittstellenfunktion aufrufen, die als ECall verfügbar gemacht wird, um rekursiv in die Enklave zu rufen. Wenn ein OCall erforderlich ist, können Sie die Blockierung der ISV-Schnittstellenfunktionen auf der Oberfläche reduzieren, so dass verschachtelte ECalls nicht zulässig sind. Sie können zum Beispiel die Zustandsinformationen (entsprechend dem in Bearbeitung des OCall) in der Enklave speichern. Eine Enklave kann jedoch nicht von verschachtelten ECalls abhängig sein, die in einer bestimmten Reihenfolge während eines OCall auftreten. Zunächst sind verschachtelte ECalls (ECalls während eines OCall) zulässig und nur beschränkt durch die in der Enklave reservierte Stack-Menge. ISVs sollten jedoch wissen, dass solche Konstrukte die Sicherheitsanalyse in der Enklave komplizierter machen. Wenn verschachtelte ECall-Lösungen notwendig sind, sollte der Enklave-BSM versuchen, die Anwendung auf eine andere Art und Weise zu partitionieren. Wenn verschachtelte ECalls nicht vermieden werden können, sollte die Enklave bloss die ISV-Schnittstellenfunktionen, die rekursiv nur auf die unbedingt erforderlichen Funktionen beschränkt werden können.