In-storage computing with modern solid-state drives (SSDs) enables developers to offload programs from the host to the SSD. It has been proven to be an effective approach to alleviate the I/O bottleneck. To facilitate in-storage computing, many frameworks have been proposed. However, few of them treat the in-storage security as the first citizen. Specifically, since modern SSD controllers do not have a trusted execution environment, an offloaded (malicious) program could steal, modify, and even destroy the data stored in the SSD. In this paper, we first investigate the attacks that could be conducted by offloaded in-storage programs. To defend against these attacks, we build a lightweight trusted execution environment, named IceClave for in-storage computing. IceClave enables security isolation between in-storage programs and flash management functions that include flash address translation, data access control, and garbage collection, with TrustZone extensions. IceClave also achieves security isolation between in-storage programs by enforcing memory integrity verification of in-storage DRAM with low overhead. To protect data loaded from flash chips, IceClave develops a lightweight data encryption/decryption mechanism in flash controllers. We develop IceClave with a full system simulator. We evaluate IceClave with a variety of data-intensive applications such as databases. Compared to state-of-the-art in-storage computing approaches, IceClave introduces only 7.6% performance overhead, while enforcing security isolation in the SSD controller with minimal hardware cost. IceClave still keeps the performance benefit of in-storage computing by delivering up to 2.31$\times$ better performance than the conventional host-based trusted computing approach.
翻译:使用现代固态驱动器(SSDs)的存储计算使开发者能够从主机卸载程序到 SSD 。 事实证明, 这是减轻 I/ O 瓶颈的有效方法。 为了方便存储计算, 提出了许多框架。 但是, 他们中很少有人将存储安全作为第一位公民对待。 具体地说, 由于现代 SSD 控制器没有可信的执行环境, 卸载( 可疑) 程序可以窃取、 修改甚至销毁 SSD 中存储的数据 。 在本文中, 我们首先调查可以通过在存储程序中卸载自动存储程序进行的攻击。 为了防范这些攻击, 我们建立了一个轻重的可信任的执行环境, 名为 IceC 。 IC 能够让存储程序与包括闪存地址翻译、数据存取控制和垃圾收集在内的闪存管理功能之间的安全隔离, 仅以信任区为基础扩展。 ICC 也通过在存储程序中进行最小的存储方式实现安全隔离, 通过在存储程序中执行ISDRM( IMA) 的存储核查成本, 和低重的运行中, 将数据加密数据从存储系统的运行数据从存储中进行升级数据自动转换。