EETOP|云计算FPGA的重大安全隐患:无需漏洞也能攻破

EETOP
EETOP创芯网(易特创芯):国内著名的老牌电子工程师社区及半导体行业门户网站(150万会员)
www.eetop.cnbbs.eetop.cn
blog.eetop.cnedu.eetop.cn
来源:老石谈芯作者:老石
当前 , FPGA已经成为云数据中心里重要的硬件加速单元 。 例如 , 在之前的文章中详细介绍过微软的“Catapult”项目 。 通过这个项目 , 微软在Azure云数据中心里部署了上百万个基于FPGA的智能网卡 , 并使用FPGA对一系列应用进行了硬件加速 。 这其中包括必应搜索(Bing)的文件排名运算 , 以及通过FPGA构建的实时AI系统“Brainwave” 。
亚马逊AWS则采用了名为FPGA即服务(FaaS)的业务模式 , 也就是将FPGA作为了AWS云的硬件加速实例 , 面向云服务的广大用户和开发者 。 这种业务模式提供了FPGA云服务的完整基础设施架构 , 包括FPGA的开发、调试、部署、维护等等 , 使得开发者可以直接利用云中的FPGA资源进行算法的硬件加速和开发 。 腾讯云、阿里云、华为云等公有云提供商也纷纷跟进 , 也在云服务中加入了FPGA的硬件加速实例 。
然而 , 随着FPGA在云数据中心的不断部署 , 由此引发的安全性隐患也逐渐成为业界关注的重点之一 。 和CPU、GPU、网络交换芯片等数据中心常见的硬件单元不同 , FPGA带来的潜在安全性问题有着非常独特的一面 。
一方面 , FPGA芯片本身可能存在高危漏洞 。 在之前的文章中 , 我们介绍过赛灵思的7系列FPGA被曝出名为“StarBleed”的漏洞 , 它使得攻击者能同时攻破FPGA配置文件的加密和鉴权两个重要环节 , 并由此随意更改FPGA中实现的逻辑功能 。 这个漏洞的严重之处在于 , 一旦FPGA芯片被攻破 , 就无法通过软件补丁的方式进行修复 , 而只能停机换芯片 。
另一方面 , 由于FPGA的特殊性 , 即使芯片没有任何功能漏洞 , 攻击者也可以使用一些很巧妙的手段进行破坏性的操作 , 并破解并窃取加密信息 。 今天这篇文章 , 就将介绍这其中的一个攻击方法 。
FPGA虚拟化与多租户FPGA
在FPGA的云计算应用中 , 虚拟化技术是目前比较常见的FPGA管理和资源调度方式 。 关于FPGA虚拟化技术 , 有兴趣的读者可以看看老石之前的文章《FPGA虚拟化:突破次元壁的技术》 , 里面详细介绍了FPGA虚拟化的很多技术细节 。 简单来说 , 虚拟化技术在传统的FPGA开发层级中加入了额外的一层 , 从而将用户的应用逻辑与底层硬件分离开 , 使开发者无需太关心硬件的实现方式 , 这能大幅降低FPGA的开发难度 , 缩短开发周期 。
EETOP|云计算FPGA的重大安全隐患:无需漏洞也能攻破
文章图片
通过FPGA虚拟化技术 , 就可以实现在单个FPGA上划分出多个逻辑区域 , 并分配给不同的用户进行使用 , 这就是FPGA的多租户(Multi-tenent)技术 。
在多租户FPGA中 , 理论上不同用户的区域是相互独立的 , 这可以通过划分不同的FPGA设计区域实现 。 不同的用户并不会共享FPGA上的逻辑资源 , 此外 , 他们的FPGA配置文件、上层软件等都应该是加密和独立的 。 这些都由虚拟层进行调度和管理 , 在技术上 , 这可以通过FPGA的部分可重构(PartialReconfiguration)特性实现 。
例如 , 下图中就展示了两种不同的多租户FPGA实现方法 , 第一种使用了两个相互独立的设计区域 , 第二种则实现了多个用户设计A、B、C、D在FPGA上的混合排列 。
EETOP|云计算FPGA的重大安全隐患:无需漏洞也能攻破
文章图片
事实上 , 不同用户的设计区域很难做到完全独立 。 比如 , 在同一个FPGA芯片上 , 供电、时钟等全局资源往往需要共享 。 仅仅如此 , 就会给多租户FPGA设计带来安全隐患 。
针对FPGA的电压攻击
在今年的FCCM大会上 , 来自马萨诸塞大学的RussellTessier教授做了名为“SecurityandPrivacyConcernsfortheFPGA-AcceleratedCloudandDatacenters”的报告 , 并介绍了一种针对FPGA的电压攻击方法 。


推荐阅读