书 书 书
第44卷 第5期
2021年5月 计 算 机 学 报
CHINESEJOURNALOFCOMPUTERS Vol.4M4Nay2o0.251
收稿日期:20200402;在线发布日期:20200918.本课题得到国家“八六三”高技术研究发展计划项目基金(2018YFB1003600)资助.
于颖超,博士研究生,工程师,主要研究方向为安全操作系统、软件脆弱性分析、嵌入式设备安全等.Email:yuych830305@163.com. 陈左宁,研究员,中国工程院院士,主要研究领域为信息安全、计算机体系结构等.甘水滔(通信作者),博士,助理研究员,主要研究方向 为系统安全、程序分析、脆弱性检测等.Email:ganshuitao@gamil.com.秦晓军,博士,高级工程师,主要研究方向为软件脆弱性分析、人 工智能安全等.
嵌入式设备固件安全分析技术研究
于颖超
1) 1) 陈左宁2) 甘水滔
1) 秦晓军
1)
(数学工程与先进计算国家重点实验室 江苏无锡 214083)
2)(中国工程院 北京 100088)
摘 要 随着嵌入式设备的种类和数量的增加,设备之间日益增长的互联互通、制造商对安全的忽视、设备固件更 新不及时或难以更新等,使得嵌入式设备的安全受到了严峻的考验,越来越多的设备漏洞被披露.但由于嵌入式设 备种类繁多、专用性强、源码或设计文档往往不公开、运行环境受限等诸多因素的影响,通用漏洞挖掘技术无法直 接适配.近年来,国内外安全专家和学者针对嵌入式设备及其固件的安全分析和测评技术提出了很多切实可行的 解决方案,但缺乏详细和全面介绍最新安全研究成果的论文,使得安全分析人员难以系统地了解嵌入式设备及其 固件安全分析技术的研究进展.本文围绕着当前嵌入式设备固件面临的安全风险,分析和总结了国内外最新的研 究成果,并对相关安全技术进行了综合分析和评估.首先对嵌入式设备及其固件的表现形式、分类及获取方法、面 临的安全攻击层面以及自动化解析情况进行了深入研究.然后,对嵌入式设备固件安全分析技术进行了细化分析, 从静态分析、符号执行、二进制漏洞关联、动态分析平台和模糊测试等五个方面进行了详细分析和横向评估.最后 对未来的研究方向进行了展望.
关键词 嵌入式设备;固件;静态分析;符号执行;固件托管;模糊测试 中图法分类号TP309 犇犗犐号10.11897/SP.J.1016.2021.00859
犚 犲 狊 犲 犪 狉 犮 犺 狅 狀 狋 犺 犲 犜 犲 犮 犺 狀 狅 犾 狅 犵 犻 犲 狊 狅 犳 犛 犲 犮 狌 狉 犻 狋 狔 犃 狀 犪 犾 狔 狊 犻 狊 犜 犲 犮 犺 狀 狅 犾 狅 犵 犻 犲 狊 狅 狀 狋 犺 犲 犈 犿 犫 犲 犱 犱 犲 犱 犇 犲 狏 犻 犮 犲 犉 犻 狉 犿 狑 犪 狉 犲
YUYingChao1) CHENZuoNing2) GANShuiTao1) QINXiaoJun1)
1)(犛狋犪狋犲犓犲狔犔犪犫狅狉犪狋狅狉狔狅犳犕犪狋犺犲犿犪狋犻犮犪犾犈狀犵犻狀犲犲狉犻狀犵犪狀犱犃犱狏犪狀犮犲犱犆狅犿狆狌狋犻狀犵,犠狌狓犻,犑犻犪狀犵狊狌 214083)
2)(犆犺犻狀犲狊犲犃犮犪犱犲犿狔狅犳犈狀犵犻狀犲犲狉犻狀犵,犅犲犻犼犻狀犵 100088)
犃犫狊狋狉犪犮狋 Withtheincreaseofthetypesandnumbersoftheembeddeddevicesintoday’srapidly evolvingIoT(InternetofThings)era,theirsecurityfacesahugechallengebecauseofthe increasinginterconnectionbetweendevices,manufactures’ofneglectofthesecuritywhile designingthedevice,thenottimely(orevendifficult)firmwareupdate,andsoon.Moreand moredevicevulnerabilitieshavebeenexposedinrecentyears,revealingthatembeddeddevicesare pronetolotsofvulnerabilities.However,thecharacteristicsoftheembeddeddevices(suchas widevariety,strongspecificity,closedsourceandlimitedoperatingenvironmentandsoon)make thegeneralvulnerabilityminingtechnologiesinabilitytobedirectlyadaptedtotheembedded devices.Inrecentyears,alotofpracticalandfeasiblesolutionstowardsthesecurityanalysisand evaluationoftheembeddeddevicesandtheirfirmwarehavebeenproposedbythesecurityexperts andscholarsathomeandabroad.Butsofar,thereisnodetailedandcomprehensivesurveypaper aboutthelatestsecurityresearchresultsontheembeddeddevicesandtheirfirmware,which
《 计
算 机
学 报
》
makesitdifficultforthesecurityanalysisresearcherstosystematicallyunderstandtheprogressof theembeddeddeviceanditsfirmwaresecurityanalysistechnologies.Focusingonthesecurity risksfacedbythecurrentembeddeddevicefirmware,thispapergivesasurveyofthelatest researchfruitsathomeandabroad,andmakesacomprehensiveanalysisandevaluationofthe relatedsecurityanalysistechnologies.Firstly,itdeeplydetailsthemanifestation,theclassification andtheacquisitionmethodoftheembeddeddeviceanditsfirmware,aswellastheattacksurfaces andtheautomatedextractionmethods.Asitshows,theattacksurfacetargetedatembedded deviceinvolvestheentirelifecycleoftheembeddeddevice,rangingfromthehardwarelevelto thenetworklevel,andtherearemanytypesofvulnerability,withwebvulnerabilities(suchas crosssitescripting,commandinjection,authenticationbypass,etc.)andmemoryvulnerabilities
(suchasdenyofservice,bufferoverflow,memorycorruption,etc.)eveninequalproportionin thelastthreeyears.Secondly,thetechnologiesofthesecurityanalysisontheembedded firmwarehavebeenrefinedandanalyzed,rangingfromstaticanalysis,symbolexecution,the binaryvulnerabilityassociation,dynamicanalysisplatformtofuzzingtest.Theanalysisshows thattheresearchonthesecurityanalysistechnologyofembeddeddevicesandtheirfirmwarehas beenrisinggraduallyinrecentyears,andsomeprogresshasbeenmade,especiallythebinary firmwarevulnerabilitysearchbasedonAItechnologyandthedynamicanalysistechnologybased onfirmwarerehosting,bothreflectingthefusionofthenewtechnologyandtraditionalsecurity technology.However,asitshows,theembeddeddevicefirmwaresecurityanalysisisstillinits infancy,andthereisstillalotofopenworktobefurtherstudied.So,astheendofthispaper, wegivesomeinterestingresearchdirectionsfortheresearchers,suchasfully/semiautomated firmwarehostingandeffectivegreybox/blackboxfuzzertowardsembeddedfirmware.
犓犲狔狑狅狉犱狊 embeddeddevice;firmware;staticanalysis;symbolicexecution;firmwarerehosting; fuzzingtest
1 引 言
在当今“万物互联”的时代,嵌入式设备逐渐成 为接入云端的重要组件.与计算、移动设备不同,相 当数量的嵌入式设备出于专用性考虑,在产品投放 之前,几乎不会做代码审计、安全测试等流程,加 之嵌入式设备的系统架构与通用设备不同,往往缺 乏相应的安全机制,一旦被攻破,危害极大.2016年 10月,Mirai对美国域名服务商Dyn发起的DDoS
(DistributedDenyofService)攻击,一度致使全球超 百万台的IoT(InternetofThings)设备被感染[1].究 其机理,Mirai通过利用某款智能摄像头的漏洞,成 功入侵大量的连接在互联网上的IoT嵌入式设备, 实现了对目标网络的DDoS攻击.
近年来,业界尝试将各类应用比较良好的通用计 算系统漏洞自动化挖掘方法应用到嵌入式设备,但应 用效果一直受限于嵌入式设备存在的以下问题:
(1)底层硬件平台的复杂异构
种类繁多、厂商众多、软硬件的实现差异大是当
前“万物互联”的IoT时代嵌入式设备的一大主要 特色,底层硬件平台的复杂异构性是嵌入式设备安 全分析面临的巨大障碍,针对通用的x86或x86_64 平台的静/动态分析方案无法直接适用.
(2)专用性强、源码/文档不公开
大多数嵌入式系统均是厂商根据其产品特色定 制的程序,不同程序员的设计风格和编码方式不同, 即使是同一种网络协议和硬件接口,不同厂商不同 开发人员的实现方式也不尽相同,给测试方法的通 用化带来了极大阻碍.
(3)运行环境受限
出于成本和安全考虑,嵌入式设备往往会裁剪 掉不必要组件,且会在出厂时封死其调试接口,避免 与外界直接交互,使动态测试难以直接作用于物理 设备上.即使可以通过二进制重写或静态插桩等手 段[2],将动态分析方法部署到实际物理设备中,但其 分析性能极大受限于硬件CPU(CentralProcessing Unit)计算能力不足,进而会影响到其分析结果.
(4)嵌入式设备程序与通用PC程序不同 嵌入式设备程序往往通过外围设备(比如说wifi
0 6
8 计 算 机 学 报 2021年
《 计
算 机
学 报
》
模块)与外部进行交互.最直观的方式是通过移动 app或者web管理接口呈现给用户,用户借助这些接 口发送请求给实际的设备,设备接收到处理请求之 后,再分发给具体的应用程序.后台处理程序涉及到 哪些应用程序、这些程序之间如何交互对于前端用户/ 分析人员来说完全是黑盒,因此加剧了分析难度[3].
尽管嵌入式设备之间硬件和应用领域差异很 大,但它们在一定程度上都需要运行软件.专门为嵌 入式设备定制的软件通常称为固件,不同于传统软 件,固件通常通过一组外围设备与外界进而交互.但 固件具备类似于传统软件的重要特征,其重要部分 通常采用不安全的低级语言(比如C)构建,这些语 言携带的脆弱特征给固件埋下了各种安全隐患.
近年来,国内外安全专家和学者针对嵌入式设 备及其固件的安全分析和测评技术提出了很多切实 可行的解决方案,但目前还没有详细和全面介绍最 新安全研究成果的论文.本文围绕当前嵌入式设备 面临的安全风险,分析和总结了国内外最新研究成 果,并对相关安全技术进行了综合分析和评估.本文 第2节描述嵌入式设备固件的背景知识;第3节详 细介绍嵌入式设备面临的攻击层面;第4节简要描 述了现有分析工作的一个总结;第5节描述了设备 固件获取和自动化解析情况;第6节详细阐述了嵌 入式设备固件安全分析技术,并对其进行了横向分 析和评估;第7节对未来的研究方向进行了展望.
2 背景知识
21 嵌入式设备及其固件
如第1节所述,与通用PC系统一样,嵌入式设 备通过驱动软件来执行指定的任务,这个软件又称 之为“固件”,与传统的桌面/服务器软件相比,嵌入 式设备固件的区别如下:
(1)嵌入式系统固件通常直接与底层硬件交互 以执行其任务.
(2)嵌入式系统固件大多数情况下会被集成到 嵌入式设备中,存储在ROM(ReadOnlyMemory) 或非易失内存芯片,比如flash内存或EEPROM
(ElectricallyErasableProgrammableReadOnly Memory).
(3)嵌入式系统固件的格式复杂多样,没有统 一的标准,并且通常以单个“blob”或“image”的形式 提供,且包含了确保设备运行所需的所有内容.因 此,数据、代码和元数据是交织在一起的,并且执行 的入口点可能硬编码在了固件中,以方便处理器直 接使用.
如图1所示,嵌入式设备至少由一个执行其固件 的CPU和一组外设组成.制造商通常会在SoC上将 其处理器单元与一组预先定义好的外设组合在一起. 外设分片上外设和片外外设.固件不能直接访问片外 外设,只能通过特殊的片上外设与片外外设进行交 互,比如通过通用同步/异步接收/发送(USART)、总 线控制器或网络接口等.CPU与片上外设之间的交 互取决于CPU本身,但通常可以划分为以下几种:
图1 CPUs外设接口
(1)MMIO(MemoryMappedInput/Output)要 求外设的硬件寄存器映射到CPU可访问的内存空 间,因此,外设的状态、外设的配置以及进出的数据,都 可以通过读取和写入特定的内存位置来查询.
(2)PMIO(PortMappedInput/Output),一些 ISAs(IndustrialStandardArchitecture)会引入一些 特殊的指令(比如in和out)与外设进行通信,此时, 外设寄存器不会映射到主存,而是通过使用这些指 令查询端口进行访问.
(3)IRQs(InterruptRequests)由外设发起,通 知CPU某种事情即将发生,比如计时器完成、新数据 到达等.当一个IRQ到达时,CPU尽可能快地保存它 的当前状态,将执行转移到相应的ISR(Interrupt ServiceRoutine).ISR在中断上下文中执行,一旦
完成,处理器将恢复到先前执行的点继续执行.
(4)DMA(DirectMemoryAccess)允许外设独 立于CPU在其它外设和主存之间传输数据,允许 在处理器执行其它任务时交换大量数据.DMA的 I/O行为严重依赖于外设的内部设计.通常,DMA控
制器通过中断来通知CPU进行完整的数据传输. 固件与片外外设之间的交互进一步增加了固件
1 6 8 5期 于颖超等:嵌入式设备固件安全分析技术研究
《 计
算 机
学 报
》
分析的复杂度.由于每一个产品通常都包含了定制 的电路板,所以每个固件的完整执行环境在很大程 度上都是唯一的.现有的仿真工具(如QEMU[4]和 SIMICS[5])支持的CPU数目相对有限,支持的片上 和片外设备更少.要使用这些工具,必须实现片上和 片外外设以符合固件使用的MMIO寄存器接口,这 就需要理解并实现每一个设备的状态机和逻辑,这 是一项耗时且具有挑战性的任务.
22 嵌入式设备固件类型分类
根据文献[6],依据嵌入式设备使用的操作系统 类型,将其划分为以下三种类型:
(1)I型.基于通用目的操作系统的设备.改进 通用的Linux核心,用在嵌入式系统中,通常使用轻 量级的用户空间环境,比如busybox、uClibc等.这 类设备中,与定制硬件的交互大部分是通过特定的 设备驱动进行的.
(2)II型.基于嵌入式操作系统的设备.通常适 用于一些计算能力较低的设备,虽然可能不存在内 存管理单元等高级处理器特性,但是操作系统内核
和应用程序代码之间的逻辑隔离仍然存在.比如 VxWorks、ZephyrOS这样的操作系统,常用于单用 途的用户电子设备,比如LTE调制解调器或DVD 播放器等.
(3)III型.不具备操作系统抽象的设备.这类设 备采用所谓的“monolithicfirmware”[6],其操作通 常基于一个控制循环和从外设触发的中断以处理外 部事件.在这些设备上运行的代码可以完全定制,也 可以基于操作系统库,但最终形成的固件是一个独 立的软件.
表1给出了这三种类型的设备固件的一个简要 分析,I型设备通常具有较强大的处理器性能和高 容量的内存,其固件格式和文件系统相对健全,一般 会选择标准的Squashfs、YAFFS2、JFFS2等文件系 统,易于装载/解包,可动态仿真运行.II型和III型 设备,功能相对简单,代码量小,存储空间也小,其固 件格式和文件系统相对不统一,多数情况下,只能按 照固件的装载规则直接映射到内存空间中执行,因 此仿真运行的难度较大.
表1 不同类型设备固件的比较
设备类型 功能 代码量级 存储空间 内存管理 安全机制 固件格式 文件系统 易装载 可动态模拟 I型 丰富 大 大 健全 有 标准 有 是 是 II型 简单 小 小 不健全 无 自定义 有 否 否 III型 简单 小 小 不存在 无 自定义 无 否 否
图2 嵌入式设备固件体系结构和OS类型占比情况
Chen等人[7]利用网络爬虫收集了23035个固 件镜像,对其体系结构、操作系统进行了统计,结果 如图2所示,MIPS架构(含大、小端,32位)的设备 排第一位,约81.9%,第二位是32位的小端ARM,
占8.9%,这两种体系总共占所有固件镜像的90.8%. 在OS分类中,Linux和类Linux的设备(I型)占约 50%,III型占42%左右,约8%的设备使用了专用 的操作系统,需要使用专有的固件提取工具才能正 确提取其内核和文件系统.
3 嵌入式设备面临的安全风险分析
本节将从攻击层面和漏洞类型两个方面阐述当 前嵌入式设备面临的安全风险,并给出现有的设备 固件分析工作的一个简单总结.
31 攻击层面
嵌入式设备通常由硬件、固件/系统、应用软件 和网络服务组件组成,本节对各个层面面临的攻击 进行了一个简单的分析总结,如图3所示.
图3 嵌入式设备面临的攻击层面 2
6
8 计 算 机 学 报 2021年
《 计
算 机
学 报
》
3.1.1 硬件
在整个供应链的攻击中,硬件层面最具破坏性. 一旦能够探到物理硬件底层,通过相应的技术手段, 可以获取对整个设备的控制权.
通过调试接口攻击.不安全的调试接口是物理 设备安全检查列表中的第一项,攻击者可以通过这 个接口获取高权限的shell,进而修改或替换固件.
犳犾犪狊犺芯片.物理设备上的flash芯片常用于存 储固件,如果这个芯片没有设置读写保护权限的 话,攻击者可以直接读取(通过dump或者调试接 口)固件分析并修改固件以绕过接口访问的认证.
侧信道分析攻击.侧信道分析攻击利用被攻击 设备的硬件特征泄漏来提取被处理数据的信息,并 利用这些信息推断出设备上的敏感信息,比如认证 密钥等.攻击者不会以任何方式篡改被攻击的设备, 只需要进行适当的观察(通过适当的工具远程或物 理观察)就可以成功地发起攻击.根据观察到的泄 漏,使用最广泛的侧信道攻击分别是微体系结构/缓 存、时间、功耗和电磁发射攻击[8].
节点复制攻击.Zhou等人[9]指出攻击者可以使 用一个受其控制的虚拟设备替换掉受害者的真实设 备,所有来自受害者用户的控制命令都会暴露给 这个虚拟设备,进而暴露给攻击者.攻击者还可以远 程接管设备,获取传感器读取到的内容来监控受害 者的家,甚至操控智能家居设备,造成数据泄漏. 这种新的攻击方式极大地扩大了嵌入式设备的攻击 层面.
3.1.2 固件/操作系统
固件/操作系统中的漏洞影响巨大,它们可以为 攻击者提供特权和控制.隐藏在固件中的恶意代码 可以为攻击者提供最高级别的特权,破坏系统的启 动过程,给操作系统打补丁,并获取对设备的几乎无 所不能的控制.
固件恶意软件.QSnatch
①
是以QNAP提供的 NAS设备为目标的恶意软件,通过修改受害者设备 的固件可以窃取用户名和口令、阻止固件更新,并且 控制定期调度的作业或脚本等.JungleSec勒索软 件②
通过攻击IPMI(IntelligentPlatformManagement Interface)来攻击网络上的设备.Citrix漏洞[10]是一个企业设备固件漏洞,攻击者可以在没有认证证书 的情况下,接管目标设备,访问公司的内部网络. VPNFilter攻击[11]是设备无法更新招致的APT攻 击示例.
固件修改攻击.Basnight等人[12]阐述了如何恶 意修改固件并且将其上传到可编程控制逻辑器上. 通过逆向,攻击者可以初步了解固件更新机制,进而 修改配置文件,以便在固件更新中注入恶意代码. Cui等人[13]分析了大量的LaserJet打印机固件,通
过对大量的硬件组件进行逆向执行了固件修改攻 击.Konstantinou[14]将固件修改定义为针对IoT范 式的一类新的网络物理攻击,并指出固件修改攻 击之所以能够成功是因为固件更新机制缺乏完整 性验证或者完整性算法的鲁棒性不强造成的.
操作系统层面.嵌入式设备一般是轻量级的, 由于空间受限,通常会对系统做裁剪,内核版本一般 比较低,也不会及时更新,低版本内核中存在的内存 溢出问题很可能会同固件一起长期存在,攻击者一 旦获取内核版本,索引出低级别的溢出漏洞,就可以 利用它来提升自己的特权.此外,操作系统中存在很 多驱动程序[15],远程攻击者可以利用驱动中的漏洞 导致拒绝服务或执行任意代码,比如MarvellWifi 芯片驱动程序中存在诸如CVE201914901、CVE 201914897和CVE201914896等多个漏洞,它们
会导致内核中基于堆或栈的缓冲区溢出.操作系统 的特权级较高,必然也是嵌入式设备攻击者的一个 重要的攻击面.
3.1.3 应用软件
后门.最简单的后门之一就是设备中存在缺省 用户名和密码,虽然简单,但却经常在网络设备中出 现.2013年,DLink路由器中被爆出攻击者通过将 浏览器的用户代理字符串设置为一个特定的字符串
(“xmlset_roodkcableoj28840ybtide”)便可以在不经 认证的情况下远程访问设备[16].2016年的Mirai DDoS攻击[17]就是将拥有后门账户的数十万台设备
构建了一个僵尸网络.同样,攻击者通过Telestar DigitalGmbHIoT音频设备劫持了Telestar
③
.第三方代码库复用.出于成本考虑,嵌入式设 备的开发通常会复用大量的第三方组件,为了加速 产品的研发,设计人员往往会直接使用相关功能组 件,而缺乏对代码的安全性审计,因此,很容易引入
3 6 8 5期 于颖超等:嵌入式设备固件安全分析技术研究
①
②
③
https://www.zdnet.com/article/thousandsofqnapnas deviceshavebeeninfectedwiththeqsnatchmalware/ https://www.bleepingcomputer.com/news/security/jun glesecransomwareinfectsvictimsthroughipmiremote consoles/
https://securityaffairs.co/wordpress/91069/hacking/telestar iotradiodeviceshack.html
《 计
算 机
学 报
》
未知漏洞,而且原有代码中的已知漏洞也可能不会 被关注到,比如openssl库中的heartbleed漏洞就存 在于很多IoT设备[18]中.据科恩实验室的报告
①
,第 三方库导致的Nday安全风险占比超过发现总量 的90%.厂商定制代码.嵌入式设备由于功能的广泛性 及底层架构的异构性,每一个厂商的每一款设备的 固件都需要大量的开发工作,一方面需要适配第三 方库,另一方面仍然需要厂商自主开发新的代码模 块,实现其特定的功能.开发人员在开发过程中安全 意识不足,极易引起代码设计上的安全缺陷[19]. 3.1.4 网络服务
嵌入式网络设备中不仅存在像Bluetooth
②
、 WiFi③
、Zigbee④
等这样的低层通信协议,而且还存 在像HTTP、BLE[20]等这样的上层通信协议,用于 与外界/用户进行交互.设备之间互联互通会使用相 关的开放协议,标准不统一,且容易被破解,于是便 给嵌入式设备带来了新的攻击层面.远程管理接口不安全.为了方便管理,嵌入式 设备往往会向用户提供远程管理接口,其通信协议 往往会采用弱口令甚至不采用加密算法,比如在文 献[21]中,IoT设备连接到网络时,WiFi口令就是 以明文传输的.攻击者可以通过平台漏洞提取私人 信息或者构建僵尸网络来控制安装了管理APP的 移动手机,进而控制它所管控的智能设备.
外设协议方面.最近的一些攻击表明[2225],外 设通常会成为攻击者执行远程利用的入口,通过欺 骗一个被破坏的设备生成特定的输出,然后在设备 驱动器中作为一个输入处理这个设备生成的特定输 出时,会触发一个全系统破坏漏洞[22,26].Vaccari等 人[27]阐述了敌手如何通过网络破坏使用了ZigBee 协议的设备.
通信协议方面.通信协议往往存在明文传输、 链路劫持、重放攻击等安全风险.ARDDoS攻击就 是通过IoT通信协议约束应用协议来实现的[2829]. 近年来,工控领域应用最广泛的MQTT协议也屡 屡爆出安全风险[3031].需要说明的是,嵌入式设备上 频繁爆出的协议漏洞未必存在于协议本身,更多的 可能存在于协议的具体实现方法上.
暴力搜索攻击.攻击者可以通过扫描和分析在 网设备的开放端口,在开放端口上发起暴力破解攻 击,破解设备的弱加密/弱认证算法以达到其目的. Mirai及其变种Miori[3233]即是通过Telnet使用出
厂默认凭证来暴力破解并传播到其它设备的.一旦 有设备被破解成功,感染了Mirai/Miori,它将成为 botnet的一部分,促进DDoS攻击.
犘犺犪狀狋狅犿设备攻击.Phantom设备攻击[9,3435]关 注IoT设备、移动app和云端三者之间交互过程中存 在的设计缺陷,通过一个受攻击者控制的Phantom 设备远程替换/劫持受害者设备,进而控制设备或者 监控/操控设备收集/生成的数据,以实现远程设备 拒绝服务攻击、非法设备占用、固件窃取、敏感数据 泄露等攻击.
32 公开漏洞分析
为了分析设备固件漏洞,本文收集并统计了 NVD漏洞数据库
⑤
中的固件漏洞,并对其漏洞类型 分布情况做了一个统计,需要说明的是,本文仅分析 了近三年(2017.1.1~2019.12.31)的数据,且数据 样本是通过匹配firmware以及典型的设备厂商⑥
检 索出来的数据去重得到的.从互联网公开的漏洞来看,近三年的固件漏洞 数量没有明显的变化趋势,在10%左右波动,如图4 所示.Web型(XSS、命令注入、认证绕过等)和内存 型漏洞(DoS、溢出、内存破坏等)占比不分伯仲.分 析其原因,一方面,大部分的嵌入式设备都会配置 web接口方便用户管理使用,因此,嵌入式设备中的 web服务器同样易于遭受web型漏洞的破坏.另一 方面,这些web管理接口通常是使用二进制CGIs
(CommonGatewayInterface)而非脚本实现的,因 此,同样可能存在内存型漏洞.
事实上,近年来出现了大量的固件漏洞被利用 的示例[3638],这表明伴随着连接设备的快速增长,攻 击面也在不断增加,但分析发现,目前在嵌入式设备 上发现的许多漏洞仍然可以被认为是“lowhanging fruits”[39],比如弱身份认证、不安全的缺省配置、硬
编码的凭证或未经身份验证的管理接口等[39].这一 类型的漏洞通过静态扫描可以很容易发现,而且通 过增强设备厂商和消费者用户的安全意识可以很容 易缓解.但是由编程错误导致的内存破坏仍然困扰
4 6
8 计 算 机 学 报 2021年
① ②
③ ④
⑤ ⑥
《腾讯安全科恩实验室IoT产品白皮书》 https://www.wifi.org/
https://zigbee.org/
https://www.bluetooth.com/
h收集的设备厂商包括ttps://nvd.nist.gov/:cisco,Huawei,TPLink,DLink, LinkSys,MikroTik,Netgear,OpenWrt,QNAP,SuperMicro, sinology,Tenda,Trendnet.其它的设备厂商的样本,没有纳
入到分析范围.