Modern applications are increasingly advanced and complex, and inevitably contain exploitable software bugs despite the ongoing efforts. The applications today often involve processing of sensitive information. However, the lack of privilege separation within the user space leaves sensitive application secret such as cryptographic keys just as unprotected as a "hello world" string. Cutting-edge hardware-supported security features are being introduced. However, the features are often vendor-specific or lack compatibility with older generations of the processors. The situation leaves developers with no portable solution to incorporate protection for the sensitive application component. We propose LOTRx86, a fundamental and portable approach for user space privilege separation. Our approach creates a more privileged user execution layer called PrivUser through harnessing the underused intermediate privilege levels on the x86 architecture. The PrivUser memory space, a set of pages within process address space that are inaccessible to user mode, is a safe place for application secrets and routines that access them. We implement the LOTRx86 ABI that exports the privilege-based, accessing the protected application secret only requires a change in the privilege, eliminating the need for costly remote procedure calls or change in address space. We evaluated our platform by developing a proof-of-concept LOTRx86-enabled web server that employs our architecture to securely access its private key during SSL connection and thereby mitigating the HeartBleed vulnerability by design. We conducted a set of experiments including a performance measurement on the PoC on both Intel and AMD PCs, and confirmed that LOTRx86 incurs only a limited performance overhead.
翻译:现代应用日益先进和复杂,尽管不断作出努力,但不可避免地含有可开发的软件错误。今天的应用经常涉及敏感信息的处理。然而,用户空间内缺乏特权分离,使得敏感应用秘密,例如加密钥匙等敏感应用秘密与“你好世界”的字符串一样得不到保护。正在引入尖端硬件支持的安全特征。但是,这些特征往往是供应商特有的,或者与老一代处理器不兼容。这种情况使得开发商没有便携式解决方案来纳入对敏感应用部分的保护。我们提出LOTRx86,这是用户空间特权分离的基本和便携式方法。我们的方法通过在x86的架构中利用未充分利用的中间特权级别创建了一个称为Priivuser的用户执行层。Privuser记忆空间,这是流程空间内一套无法使用用户模式的网页,是应用程序秘密和与老一代处理器的相容。我们实施了LOTRx86 ABB,输出基于特权的弱点,进入受保护的应用程序秘密只要求改变特权,不再需要昂贵的远程程序,或者改变地址空间定位中的定位系统。我们用LOTRSLSLSL的高级服务器的连接系统,因此对SL-SLSLSLSL进行一个安全的高级操作进行了升级。我们在SLSLSLSLSLSL的升级的连接,从而对SLSLSLSL的操作进行了一个安全性能进行安全操作。