第27届现场可编程逻辑与应用国际会议(The International Conference on Field-Programmable Logic and Applications,FPL)九月份在比利时根特召开。在FPL 2017上,一篇来自德国卡尔斯鲁厄理工学院(Karlsruhe Institute of Technology)的论文《Voltage Drop-based Fault Attacks on FPGAs
using Valid Bitstreams》获得了最佳论文奖,同时也成为了所有与会者谈论的焦点。

本文作者@小哲打豆豆为雷锋网专栏作者,目前在多伦多大学电子工程系就读博士,以下为作者对于本篇论文的介绍。

背景介绍

FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)因为其卓越的灵活性而越来越受到用户青睐。不论是低端的IoT设备,还是高端的云计算中心,FPGA在这些最新的应用场景下都展示出高效的计算能力。加上过去就一直在应用FPGA的关键行业,例如军工,航空航天等,诸多领域的发展都给FPGA的安全性带来了新的挑战。

之前对FPGA攻击的研究都是基于本地的,例如,更改FPGA的电源或时钟,或在管脚人为注入“特洛伊代码”。随着FPGA越来越多的在云计算中心中的应用,任何人都可以远程在服务器的FPGA上占用一部分逻辑门,将这个区域设置为自己需要的任意电路,以实现运算加速等功能。而之前,FPGA只能通过受信任的IP提供者被设置。这意味着FPGA在云计算这类应用中将前所未有的暴露自身的安全漏洞。

这项研究的威胁模型基于以下假设:攻击者可以重构部分或全部FPGA的逻辑门,目的是对系统发起DoS(Denial of Service)攻击。作者对两种FPGA分别进行了测试,一类是在云计算中心作为加速器的FPGA,另一类是有片上SoC的FPGA,这类FPGA多应用在IoT场景下。对两种FPGA的研究都发现,发动的DoS攻击可以使FPGA完全瘫痪直至手动复位电源。对于有片上SoC的FPGA来说,在其应用场景下可能并没有电源复位的选项,唯一复位电源的的办法只能是将电池取出再放回。

电路设计

针对FPGA的DoS攻击的基本原理大致如下:通过编辑片上逻辑,使FPGA负载能在瞬间改变。由于电源瞬态响应缓慢,以及电源分配网络(Power Delivery Network,PDN)的设计缺陷,导致FPGA电压过低,进入欠压保护而被锁定,进而达到瘫痪设备的目的。

为了达到瞬间改变FPGA负载的效果,作者将一个逻辑单元的输出经过一个非门连回到输出端。如下图所示,这样的电路构成了一个正反馈的环形振荡器(Ring Oscillator)。环形振荡器里的CMOS开关管会以极快的速度翻转,消耗大量电流。大量逻辑单元都被设置成这样的环形振荡器,并且通过一个使能信号控制所有振荡器,就能瞬间改变FPGA的电流负载。通过控制使能信号的开关频率fRO-t,可以模拟不同的负载变化来观察其对FPGA的影响。

实验结果与讨论

作者测试了三块FPGA开发板,分别是:有40纳米的Xilinx Virterx 6 FPGA的ML605开发板,28纳米的Kintex 7 FPGA的KC705开发板,以及28纳米的Zynq 7020 SoC-FPGA(双ARM Cortex A9 + 片上FPGA)的Zedboard开发板。

测试中,三种开发板都在一定条件下发生了欠压保护导致的系统崩溃。ML605和KC705在欠压保护后均无法自动恢复。Zedboard则会随机出现三种不同的系统故障:一是和前两块开发板一样出现无法自动复位的欠压保护;一种是芯片自动重置,片上所有的设置,包括两个ARM核的状态也被重置;第三种状况类似重置,但是作者在试图重新配置芯片时发生软件故障,之后系统便进入第一种无法自动恢复的欠压保护模式。可见,不论出现何种故障,都需要手动重置电源才能恢复系统。

以ML605开发板作为实例,作者在片上布设了18720个环形振荡器,大约只占用了12%的片上资源。使能信号的频率fRO-t从20kHz到2MHz。实验发现,在高于1MHz时,片上电压压降不足以引起欠压保护;在80kHz到1MHz的范围内,系统崩溃会随机的发生;而在频率小于80kHz时,系统崩溃几乎必然发生。

作者同时将两块开发板通过PCIe接口接入工作站,发现系统崩溃同样发生了。崩溃后ML605可以通过板上的电源开关进行复位,而KC705甚至必须要将整个工作站重启才能恢复。下表总结了三块板在不同状态下的能耗:

以上实例展示了通过欠压保护机制对FPGA发动DoS攻击的方法。如此发动的DoS攻击快速,且可以导致整块FPGA不可逆的瘫痪,直至手动重置电源。

允许用户自己设置FPGA实现运算加速的系统中,无疑暴露了巨大的安全隐患。这导致整台服务器需要重新启动。如果系统是通过不可替换的电池供电的话,FPGA将陷入永久的DoS状态。

结论

FPGA在云计算和IoT中都有大量的应用,在这些新的应用中,传统的比特流加密(bitstream encryption)等安全措施已经不足以应对新的挑战。在这项研究中,作者揭示了一个新的安全漏洞,通过一类方法可以对FPGA发动DoS攻击,并在两代FPGA上进行了实测。结果发现,仅仅利用12%的片上资源,就可以使FPGA由于欠压保护而完全瘫痪。

本文作者:小哲打豆豆
本文转自雷锋网禁止二次转载,原文链接

FPL 2017最佳论文:如何对FPGA云发动DoS攻击?相关推荐

  1. 云栖科技评论第26期:人工智能界年度顶级会议AAAI 2017最佳论文出炉

    1.人工智能界年度顶级会议AAAI 2017最佳论文出炉 人工智能界年度顶级会议AAAI 2017最佳论文出炉 [新闻摘要]人工智能界年度顶级会议AAAI2017于2月4日在美国旧金山举行,会议围绕人 ...

  2. 何恺明!再斩ICCV 2017最佳论文

    夏乙 若朴 发自 凹非寺 量子位 出品 | 公众号 QbitAI 何恺明第三次斩获顶会最佳论文! 昨天下午,ICCV 2017最佳论文公布. 何恺明为一作的Mask R-CNN论文,不负众望获得最佳论 ...

  3. edos攻击的服务器修复,d您的云服务器dos攻击

    d您的云服务器dos攻击 内容精选 换一换 根据云服务器ID,查询云服务器的详细信息.您可以在API Explorer中直接运行调试该接口.GET /v2.1/{project_id}/servers ...

  4. 体系结构顶会 ASPLOS 2017 最佳论文出炉,阿里云周靖人主旨演讲

    2017年4月11日晚,在西安举行的架构体系的顶级会议ASPLOS(面向编程语言和操作系统的架构支持会议,Architectural Support for Programming Languages ...

  5. 牛!何恺明包揽2项ICCV 2017最佳论文奖!这位高考状元告诉你什么是开挂的人生

    大神终究是大神! 刚刚,AI 科技大本营获悉,继两次荣获 CVPR 最佳论文奖之后,何恺明参与的两篇最新论文又分别摘下 ICCV 2017 的最佳论文奖(Best Paper Award)和最佳学生论 ...

  6. CIKM'2017 最佳论文鉴赏

    写在前面 背景 感谢组织,让我有幸参加了11月初在新加坡举办的ACM CIKM 2017.CIKM全称是Conference on Information and Knowledge Manageme ...

  7. ACMMM2017 | 电子科大斩获最佳论文!中科院自动化所多媒体计算组获得IEEE期刊最佳论文!

    本文授权转自专知(Quan_zhuanzhi) 第25届ACM国际多媒体会议(ACM International Conference on Multimedia, 简称ACM MM)于2017年10 ...

  8. 后浪“95”获 CVPR 2020 最佳论文,前得主这样解读

    来源 | AI TIME 论道 CVPR 2020已落下帷幕,共计投稿6656篇,录用1470篇,涵盖的方向包括目标检测.目标跟踪.图像分割.人脸识别.姿态估计.三维点云.视频分析.模型加速.GAN. ...

  9. AAAI 2021最佳论文奖出炉,北航成最大赢家,还有这样一批华人学术新星!

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 编辑丨机器之心 第 35 届 AAAI 人工智能会议已于 2 月 2 日在线上召开.在刚刚举行的开幕式 ...

最新文章

  1. 渗透Xen hypervisor
  2. 浏览器的内核及版本的判断
  3. redis(22)--二进制位数组
  4. wpf Combobox 样式的问题
  5. php redis 读写分离类,yii实现redis读写分离
  6. python 中的pickle库
  7. 机器学习 vs 深度学习到底有啥区别,为什么更多人选择机器学习
  8. linux快速切换目录命令,Linux在命令行快速切换目录 - 米扑博客
  9. 记表格设计规范整理与页面可视化生成工具开发
  10. CLR Via CSharp读书笔记(11):事件
  11. vue 调用 js 获取的今天日期、本周、本月、本年起始和结束日期
  12. IPHONE屏幕大小,分辨率解析
  13. android 标签开源控件,Android开源控件ViewPager Indicator的使用方法
  14. 豌豆荚搜索手机中的游戏app形成列表的原理
  15. Golang 给视频添加背景音乐 | Golang工具
  16. linux安装globalsign证书,globalsign代码签名证书
  17. 使用Arduino开发ESP32(二十一):WiFiBlueToothSwitch例程,按键切换esp32为蓝牙或wifi模式
  18. vmware windows7安装usb3.0驱动
  19. 惠州学院计算机学院2019,2019惠州学院专业排名
  20. C++编译器无法捕捉到的8种错误

热门文章

  1. 手机网页转换为html文件,怎么在手机上打开HTML文件
  2. Unity Built-in Shader转URP Shader 接口查询对照表
  3. 巨控 自建服务器,GRM云服务器的Web数据接口.PDF
  4. 从数据库中取出数据表,导入并生成excel
  5. 第一次作业:深入Linux源码分析进程模型
  6. centos6安装composer
  7. HTML元素title里面如何换行
  8. 解决360等等浏览器兼容模式解析不兼容代码
  9. java/android 做题中整理的碎片小贴士(12)
  10. 前端解析返回的对象时json显示$ref问题的解决