Today, users can "lift-and-shift" unmodified applications into modern, VM-based Trusted Execution Environments (TEEs) in order to gain hardware-based security guarantees. However, TEEs do not protect applications against disk rollback attacks, where persistent storage can be reverted to an earlier state after a crash; existing rollback resistance solutions either only support a subset of applications or require code modification. Our key insight is that restoring disk consistency after a rollback attack guarantees rollback resistance for any application. We present Rollbaccine, a device mapper that provides automatic rollback resistance for all applications by provably preserving disk consistency. Rollbaccine intercepts and replicates writes to disk, restores lost state from backups during recovery, and minimizes overheads by taking advantage of the weak, multi-threaded semantics of disk operations. Rollbaccine performs on-par with state-of-the-art, non-automatic rollback resistant solutions; in fact, across benchmarks over PostgreSQL, HDFS, and two file systems (ext4 and xfs), Rollbaccine adds only 19% overhead, except for the fsync-heavy Filebench Varmail.
翻译:如今,用户可以将未经修改的应用程序“直接迁移”到基于现代虚拟机的可信执行环境(TEE)中,以获得基于硬件的安全保证。然而,TEE无法保护应用程序免受磁盘回滚攻击,即持久存储可能在系统崩溃后恢复到早期状态;现有的防回滚解决方案要么仅支持部分应用程序,要么需要修改代码。我们的核心见解是:在回滚攻击后恢复磁盘一致性,即可保证任何应用程序的防回滚能力。我们提出了Rollbaccine,这是一种设备映射器,通过可证明地保持磁盘一致性,为所有应用程序提供自动的防回滚保护。Rollbaccine拦截并复制对磁盘的写入操作,在恢复期间从备份中还原丢失的状态,并利用磁盘操作的弱多线程语义来最小化开销。Rollbaccine的性能与最先进的非自动防回滚解决方案相当;事实上,在PostgreSQL、HDFS以及两种文件系统(ext4和xfs)的基准测试中,除了fsync密集型的Filebench Varmail外,Rollbaccine仅增加了19%的开销。