User programs recover from hardware exceptions and respond to signals by executing custom handlers that they register specifically for such events. We present SIGY attack, which abuses this programming model on Intel SGX to break the confidentiality and integrity guarantees of enclaves. SIGY uses the untrusted OS to deliver fake hardware events and injects fake signals in an enclave at any point. Such unintended execution of benign program-defined handlers in an enclave corrupts its state and violates execution integrity. 7 runtimes and library OSes (OpenEnclave, Gramine, Scone, Asylo, Teaclave, Occlum, EnclaveOS) are vulnerable to SIGY. 8 languages supported in Intel SGX have programming constructs that are vulnerable to SIGY. We use SIGY to demonstrate 4 proof of concept exploits on webservers (Nginx, Node.js) to leak secrets and data analytics workloads in different languages (C and Java) to break execution integrity.
翻译:用户程序通过执行其为特定事件注册的自定义处理程序,从硬件异常中恢复并响应信号。我们提出SIGY攻击,该方法滥用Intel SGX上的这一编程模型,破坏飞地的机密性与完整性保障。SIGY利用不可信操作系统在飞地中任意时刻传递虚假硬件事件并注入伪造信号。在飞地中意外执行良性程序定义的处理程序会破坏其状态并违反执行完整性。7个运行时与库操作系统(OpenEnclave、Gramine、Scone、Asylo、Teaclave、Occlum、EnclaveOS)易受SIGY攻击。Intel SGX支持的8种语言中存在的编程构造均易受SIGY攻击。我们利用SIGY在Web服务器(Nginx、Node.js)上展示了4个概念验证漏洞利用,以泄露机密并破坏不同语言(C和Java)数据分析工作负载的执行完整性。