利用可信运行环境实现写保护应对高权限数据篡改

作者: 赵连莹 多伦多大学

非法数据篡改是多年以来困扰用户的问题,从单纯的恶意删除和破坏到近年引起公众关注的勒索软件(ransomware)。不同于操作系统和应用软件,用户数据常常具有非金钱可衡量的价值或不可重现。现有的相关应对技术(主要针对勒索软件)大多基于已知恶意程序的特性,如二进制特征或行为规律,无法第一时间应对非已知恶意程序。更重要的是,这些技术几乎都需要操作系统是可靠的,而可以破坏操作系统的恶意程序(如rootkit)没有被考虑进去。

我们提出将防御重点从检测或消除此类恶意程序转移到直接数据保护上,从而做到和恶意程序种类或版本无关。可信计算环境(TEE)是多数当代处理器都具有的安全特性,我们同时结合某些存储设备也具有的类似安全特性,设计并实现了一种可编程的数据写保护工具,Inuksuk。基本原理是:将用户指定的受保护文件通过存储设备TEE置于常态写保护模式,而用户程序日常的写入操作产生的数据则通过处理器TEE环境以新版本的形式写入存储设备。

高权限恶意程序的特点是可以侵染计算机上的任何软件。因此这里需要的写保护不能依赖包括操作系统在内的软件来实现。SED(Self-Encrypting Drive)可以看做普通的硬盘(机械或SSD)和一个特殊硬件加解密引擎的整合产品。它可以内部设置一个密钥,所有进入硬盘的数据都被实时加密,同时离开到主机的数据被解密;此密钥不会暴露到这个加密引擎之外。它还可以对指定区域的数据实时密码保护的访问控制,比如没有密码的情况下只能读或者无法访问。Inuksuk主要依靠这种访问控制来实现只读(写保护)。

那么此密码的存储便成为关键:如果由软件保护,高权限恶意程序便可借由篡改软件获取密码来实现访问被保护的文件(如对他们加密并索要赎金)。TEE通常可以将指定数据(如此处的密码)以密码学的方式“封存”,即:只有预设的程序被加载时才能解密数据,即使预设程序只有一个比特被篡改,密码也无法被取出。此预设程序即Inuksuk。至此,由SED实施硬件级别的写保护,由主机TEE负责保护SED的密码。用户无需记住任何密码。整个Inuksuk构架如下图:

由于主机TEE需要和SED进行可信的I/O操作,故我们选用具有系统权限的Intel TXT或AMD SVM。密码被封存在TPM芯片中。

我们的保护目标是从Inuksuk安装起已经存在的被保护数据的完整性(由写保护实现)以及对后续修改以多版本形式保存(由TEE内预定逻辑实现)。这样,一旦用户发现被勒索软件感染,在SED上有之前的文件历史可以直接将SED盘装载到其它电脑读出。如果高权限恶意程序尝试直接在TEE外修改被保护文件,操作将被SED硬件忽略(没有密码)。为了保证用户程序的操作不受影响,Inuksuk的实现将原始被保护文件留在原处(供读写)而在SED上生成一个备份。Inuksuk的Updater按照用户配置在特定时间比较原始文件相对于SED上文件的修改,在TEE内将修改以新版本形式写入SED。

随着时间的推移SED的空间会减少,我们利用配置好的自动版本删除来释放空间,如只保留一年以内的版本。如果用户需要删除文件(而不是版本),我们在TEE内开发了一个简易的Browser,供用户批量选择并删除任意文件,如下图。

值得一提的是,TXT/SVM (TEE)的运行会覆盖当前操作系统的状态,我们使用Flicker[2]来在操作系统和TEE之间切换。Flicker只支持32-bit的Windows 7,我们将Flicker移植到目前常用的Windows 10 64-bit,使得它在其它场景下的应用(多为64-bit系统)成为可能。

论文链接: TEE-aided Write Protection Against Privileged Data Tampering

部分参考文献

[1] J. Huang, J. Xu, X. Xing, P. Liu, and M. K. Qureshi, “FlashGuard: Leveraging intrinsic flash properties to defend against encryption ransomware,” in ACM CCS’17, Dallas, TX, USA, 2017.

[2] J. M. McCune, B. J. Parno, A. Perrig, M. K. Reiter, and H. Isozaki, “Flicker: An execution infrastructure for tcb minimization,” in European Conference on Computer Systems (EuroSys’08), Glasgow, Scotland UK, 2008, pp. 315–328.

[3] E. Kolodenker, W. Koch, G. Stringhini, and M. Egele, “PayBreak: Defense against cryptographic ransomware,” in ACM Asia Conference on Computer and Communications Security (ASIACCS’17), Abu Dhabi, UAE, 2017, pp. 599–611.

[4] A. Kharraz and E. Kirda, “Redemption: Real-time protection against ransomware at end-hosts,” in RAID’17, Atlanta, GA, USA, 2017.

[5] A. Kharaz, S. Arshad, C. Mulliner, W. Robertson, and E. Kirda, “UNVEIL: A large-scale, automated approach to detecting ransomware,” in USENIX Security Symposium, Austin, TX, 2016.

[6] A. Continella, A. Guagnelli, G. Zingaro, G. De Pasquale, A. Barenghi, S. Zanero, and F. Maggi, “ShieldFS: A self-healing, ransomware-aware filesystem,” in ACSAC’16, Los Angeles, CA, USA, 2016.

[7] K. R. B. Butler, S. McLaughlin, and P. D. McDaniel, “Rootkit-resistant disks,” in ACM CCS’08, Alexandria, Virginia, USA, 2008.

作者简介 :  赵连莹 (Viau),Postdoctoral Fellow,多伦多大学 (University of Toronto),加拿大 。博士毕业于Concordia University (信息与系统工程);硕士毕业于天津大学 (通信与信息系统)。此前的工作领域包括嵌入式系统软硬件以及大型主机(Mainframes),在业内从事相关工作6年 (IBM China) 。当前主要研究方向为信息系统安全,包括硬件/系统相关的安全问题,基于密码的鉴权,可信计算等。并发表多篇文章于ACM CCS, NDSS, NSPW, FC以及IEEE TIFS。

Bookmark the permalink.

Comments are closed.