Facebook已经向德国学术团队颁发了100,000美元的奖金,用于开发新的代码隔离技术,该技术可用于在计算机内处理敏感数据时保护敏感数据。
该奖项被评为互联网防御奖,是Facebook自2014年以来每年发放的100,000美元现金奖励,用于USENIX颁发的最具创新性的研究,USENIX是每年8月中旬在美国举行的领先安全会议。
今年的获奖者是来自德国萨尔大学和马克斯普朗克软件系统研究所的六位学者。
六人研究团队开发了ERIM,这是一种结合了硬件和软件安全功能的新技术,提供了一种隔离计算机内处理的敏感数据的新方法。
这种技术的新颖之处在于ERIM以很小的性能开销实现了这一点,使其成为在现实环境中部署的理想选择。
孤立敏感数据的古老问题 - 有效
在执行期间隔离敏感数据一直是个问题。家庭计算机或服务器需要在应用程序运行时保持应用程序最敏感的数据安全。
例如,服务器需要在面向网络的服务中隔离加密密钥,因此连接到服务器的攻击者将无法通过使用服务器软件中的漏洞来获取加密或会话密钥。
同样,攻击者可以利用应用程序链接组件/库中的漏洞来提取由不同组件处理的敏感用户数据 - 例如,浏览器的PDF库可以授予攻击者访问密码或cookie的权限。
出于这些原因,找到一种隔离数据的方法一直是一个持续的问题。多年来,已经提出了几种方法来解决这个问题。
在软件级别,有软件故障隔离(SFI),而在硬件级别则有嵌套分页,VMFUNC或MPK。但是,已知这两种类型的保护都需要修改应用程序的代码和编译器系统,或者在从不受信任的源执行代码时会产生性能开销。测量的开销在10%到42%之间变化,这是许多运行生产系统的公司不愿意承担的性能影响。
什么是ERIM
创建ERIM是为了解决某些CPU架构(即Intel x86 CPU)上的性能开销问题。
这项新技术的工作原理是利用英特尔内存保护密钥(MPK),这是自2010年中期以来添加到英特尔CPU的基于硬件的新安全功能,它允许在英特尔CPU内部处理的数据分散到多个CPU内存虚拟页面。
每个内存页面都由一个4位域ID进行签名,允许将应用程序的进程空间拆分为可以安全处理数据的较小域(以实现进程内数据隔离)。
问题在于,当应用程序利用新的英特尔MPK安全功能时,在这些域之间切换会降低应用程序读取所需数据的速度 - 从而降低其性能。
此外,仅使用MPK并不能保证进程内数据隔离,因为恶意组件可以授予自己修改PKRU的能力,PKRU是一个控制哪些应用程序组件可以写入哪个CPU虚拟内存页面的寄存器 - 有效地将MPK中和为安全功能。
ERIM带来的是几乎零性能开销,同时还使用二进制检测技术来关注PKRU修改。
ERIM可以确定这些PKRU修改是否“安全”,甚至可以重写二进制代码以消除“无意中发生的PKRU更新指令”,从而有效地保护应用程序的MPK实现免受试图绕过该功能的恶意代码的影响。
真实世界的适用性
根据研究团队的说法,ERIM测试显示,对于需要在CPU内存页之间制作超过100,000个交换机的应用程序,性能开销低于1% - 这在Web服务器中发生了很多。
应用于NGINX的ERIM测试表明,受ERIM保护的Web服务器的Web请求吞吐量在普通服务器的5%以内。
这将使部署该技术以保护此类Web服务器上的敏感数据(如加密或会话密钥)具有成本效益。