16

软件架构缺陷成为Intel SGX新型攻击面- 百度安全相关论文入选计算机顶会ASPLOS

 4 years ago
source link: http://mp.weixin.qq.com/s?__biz=MzA3NTQ3ODI0NA%3D%3D&%3Bmid=2247485253&%3Bidx=1&%3Bsn=50f63185ef28b6f55e418039bca34146
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

近日,受疫情原因,转移到线上举办的ASPLOS 2020公布了计算机领域最新研究成果,其中就包括了百度安全提交的论文《COINAttacks: On Insecurity of Enclave Untrusted Interfaces in SGX》,论文阐述了存在一种Intel SGX Enclave的软件接口风险,并提出了一组针对Intel SGX软件的新型攻击– COIN Attacks。 尽管Intel SGX 提供了强大的硬件安全容器,但是百度安全的研究团队发现,很多基于SGX的应用软件及框架设计有众多缺陷。 这些软件架构设计上的疏忽使得攻击者无须权限,即可能够绕过SGX Enclave 的严密封锁,获取存储在SGX Enclave的核心敏感数据。

海外读者可通过下方链接或点击阅读原文查看视频

https://www.youtube.com/watch?v=oL6aACFCrLA

ASPLOS是计算机系统结构领域的顶级国际会议,涉及体系结构、硬件、编程语言、编译器、操作系统和网络等多个方向,尤其重视不同方向之间的交叉。从1982年创办至今,ASPLOS推动了多核处理器、虚拟化、RAID、RISC、深度学习处理器等计算机系统结构领域的核心创新,具有巨大的学术和工业影响力。ASPLOS也是中国计算机学会(CCF)推荐的A类国际会议。

Intel SGX —— 给数据上锁

手机打车留下了家庭住址,线上支付留下了银行卡密码···衣食住行越来越多的功能被移植到了互联网当中,让一切都化作一个个被标记的数据,“万能”的大数据,让我们变得“无所不知”,却也让我们所有的机密信息“无处隐私”。

我们在使用任一款程序时,总会产生一些不想被他人知晓的隐私信息,为了保护这些隐私,操作系统通常会对相关的数据进行加密处理,阻止没有权限的第三者(包括用户、应用等等)去访问这些核心数据。然而即便是这样,仍然存在许多种可能,绕过这些加密处理获取更高权限,拿到我们的隐私信息。

不仅程序使用者存在隐私泄露的风险,程序开发者也会担心使用者盗用了自己的关键代码,转手卖掉、盗版开发甚至发起攻击,这都会给开发者带来不可预估的损失。

为了解决这个问题,Intel就提出了SGX技术。SGX 的思路是直接在芯片上提供一个可信的空间Enclave,用于封装程序上的关键代码和核心数据,保护它们不被外部程序所访问,不受恶意软件的攻击。换言之,可以理解为SGX就像一个由第三方设计保管的数据保险箱,不管是用户还是程序开发者,都可以将自己的核心数据放到这个保险箱里,并且允许在两方互不接触的情况下,通过身份认证的方式,完成数据的传输。如此一来,用户不会担心隐私被程序泄露,程序开发者也不用在害怕成果被盗用或被白盒攻击,peace & love····

ARr6vyJ.png!web

同时,SGX能够提供基于处理器的安全防护(只信任CPU和enclave自身)。这意味着一旦程序和数据位于Enclave中,即便操作系统管理员也无法影响Enclave里面的代码和数据,也就是说能够对Enclave发号施令的只有CPU和它自己。具体来看,数据在enclave“小黑盒”中的运行状态:

1. 把应用程序分为两部分:安全应用程序和非安全应用程序;

2. 将合法程序的安全操作封装在一个enclave中;

3. 当调用 enclave 函数时,只有 enclave 内部的代码才能查看其数据,并始终拒绝外部访问;当调用结束时,enclave 的数据会留在受保护的内存中

保险箱不再安全,软件架构缺陷成为Intel SGX硬件的“猪队友”

这时候问题就来了,由于这些机密数据被保存在可信的第三方,那么程序开发者如何实现在安全的前提下,“无接触调用”保险箱里的数据呢?对此,为了与来自非Enclave的数据进行交互,Intel SGX提供了两种类型的接口函数 ——ECALL和OCALL,以建立起桥接可信与不可信环境的通信通道。

  • ECALL:Enclavecall,非安全区的应用程序进入安全区的入口

  • OCALL: Outcall,允许安全区功能调出不受信任的应用程序,然后返回安全区

不难看出,这一接口函数的设置将对Enclave的通信通道,设置为了一条“单行线”,只要产生访问,就要通过ECALL\OCALL两扇大门。然而即便是在这一严密的传输机制下,也还是会产生数据的泄露。就在近日线上举行的ASPLOS 2020大会上,来自百度安全的研究员Yueqiang Cheng和来自FSU的实习生Mustakimur发表的《COIN Attacks: On Insecurity of Enclave Untrusted Interfaces in SGX》议题中,详细介绍了一种新型SGX相关攻击 —— COINAttack。利用该漏洞,攻击者无须特殊权限,即可能够绕过SGX enclave的严密封锁,获取存储在SGX Enclave中的核心敏感数据。COIN Attack的出现,从另外一个维度(接口安全),再一次验证了SGX Enclave模型的弱点– SGX Enclave的安全,不仅依赖于SGX的强隔离保证,还需要有对软件架构的细心设计,确保健壮安全的接口调用方式。开发者如果忽视软件中的接口安全,整个SGX Encalve的安全保障都会丧失。

BbuYn2R.png!web

COIN Attack主要发现了四类安全接口问题:

1. 输入控制: 攻击者可以任意控制输入参数来测试SGX是否检测了所有的情况;

2. 调用序列:攻击者可以以任意的次序调用SGX接口。这可能会打破SGX对于某些API调用次序的隐式假设;

3. 并行调用:攻击者可以任意并行调用SGX接口,从而导致concurrency问题;

4. 嵌套调用:攻击者可以发起nested调用,从而导致系统状态混乱和行为异常。

通过COIN Attack,攻击者可以进而破坏SGX Enclave的完整性或者偷取数据,甚至是泄露所有Enclave里面的内容。为此,百度安全实验室开发了一个COIN Attack的检测框架,通过符号执行的方法,可以捕获各种各样的漏洞。据介绍,该框架支持当前最常见的几种类型的检测,详细列表见下图。

J3iMniz.png!web

利用COIN Attack框架,百度安全还检测了目前Github上面最流行的SGX应用(见下图),合计发现了52个漏洞。

IvymYvr.png!web

其中,检测出漏洞最多的是一款开源安全加密通讯方案mbedtls-SGX,竟然有高达11个的安全漏洞。而由Intel推出的Intel-SGX-SSL(用于安全通讯的开源SSL实现),也竟然有高达5个严重漏洞。 试想,如果企业应用里面使用了这些被大家广泛认可的开源库,他们的安全通讯将面临重大安全隐患,甚至整个安全服务的数据都将面临泄露的风险。 

聚焦数据安全,百度安全构建开放生态 

长期以来,虽然SGX硬件受到侧信道攻击等威胁, 但是Enclave 的强安全假设和工作模型仍然使Intel SGX成为基于硬件隐私防护技术的最强代表。COIN Attack的出现提醒大家,尽管有强大的硬件隔离机制,系统软件的设计仍然是安全的一个关注点。SGX软件框架和应用开发者如果忽视接口安全,将会导致整个SGX Encalve的安全保障丧失。 对此,由百度安全实验室开发的COIN Attack的自动化检测工具,已经在GitHub上开源(https://github.com/mustakcsecuet/COIN-Attacks),包括堆Heap memory leak、Stack memory leak、Ineffectual condition、Use-after-free、Double free、Stack overflow、Heap overflow、Null pointer dereference等8项安全策略。

Bfyeaei.png!web

在当前以云计算、人工智能、区块链等新技术为驱动的智能时代,数据成为企业的核 心资产,如何在公有云和数据离岸等场景保护数据不泄漏、不被滥用成为业界共同关心的急迫问题。基于芯片加密技术广阔的应用前景,百度安全还与英特尔早在2018 ABCSUMMIT百度云智峰会,就联合发布了全球首个内存安全的可信安全计算服务框架—— MesaTEE。

z2myY3Q.png!web 

MesaTEE 提供内存安全和接口安全的SGX Enclave 。基于自研的混合内存安全技术(Hybrid MemorySafety与Non-bypassable Security Paradigm构建了完整的FaaS通用计算框架,提供了严密而实用的隐私和安全保障能力。重新定义了未来的大数据商业模式,即使客户端和服务/平台提供商不完全相互信任,也可以有效地保护数据或模型的机密性和完整性。同时,MesaTEE增加了全面的接口安全保证,从而自身可以抵御COIN Attack。

目前,MesaTEE已全票通过投票,正式成为Apache基金会的孵化器项目(Apache Teaclave),团结社区力量进一步丰富内存安全SGX技术生态,让更多的客户可以享受下一代数据隐私和安全解决方案,实现普惠安全。

3yeMfyB.jpg!web


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK