物联网固件漏洞与审计技术研究综述
sensors 22 January 2024
1.引言
在过去的十年中,许多研究集中在加强网络和应用层的物联网安全;然而,安全物联网基础设施的一个重要且经常被忽视的方面
2021年微软对安全格局的审查表明,由于固件安全原语的显著失效和支持,越来越多的攻击集中在物联网设备固件和BIOS (基本输入/输出系统)上。
1.概述了固件安全的多个领域的相关工作,包括逆向工程、工具开发、审计机制以及机器学习中的初步相关工作。本文将物联网环境固有的局限性与现有的工具和审计机制进行耦合。
2、在现有文献的基础上,提出并分析跨越八个宽轴的物联网固件漏洞、它们各自的易感性触发器和域限制。尽管先前的一些研究的确关注了脆弱性谱的特定方面,但本文的目的不仅在于定义和分类脆弱性、挑战和相应的缓解措施,还在于将它们与利用向量和有助于识别脆弱性的审计工具进行映射。
3、进行了详细的软件脆弱性分析,讨论了逆向工程方法以及在静态和动态脆弱性分析领域中可用的最新解决方案和框架。提出了混合的漏洞审计方法,指出了现有审计技术的局限性,并提出了提高可扩展性、覆盖率、支持度和自动化程度的建议。这是一个传统上被忽视的领域,因为过去的方法提供的解决方案针对的是没有资源限制的开放系统,而现有的逆向工程工具侧重于激发系统行为,而不是识别漏洞。
4.总结了物联网固件安全领域的最新研究,包括框架统一、多平台和多架构支持、工具管理、机器学习和区块链技术,这些都在改善固件安全挑战、增加漏洞覆盖率的背景下进行,并为未来的研究提供了潜在的建议。
2.相关工作
主要关注点
(1)接口安全:
一是物联网硬件、软件、网络和应用领域的接口漏洞识别。
A Survey of Security Vulnerability Analysis, Discovery, Detection, and Mitigation on IoT Devices
诸葛建伟
二是消费者设备的接口安全和漏洞解决方案,详细介绍了远程劫持和控制物联网软件的机制,包括监视节点和物联网专用恶意软件构成的一般威胁。
(2)审计技术
静态审计,动态审计,基本的漏洞审计,以及模糊测试,符号执行
(3)逆向工程
对商用物联网设备进行逆向工程评估,故障注入等,研究弱验证、设备能力和后门。
系统·仿真成为研究主题。
(4)新兴领域
区块链,机器学习,主要是讲区块链技术的应用接入对信息交互的加密
(5)商业开发
ARM公司TrustZone为用户提供了基于硬件的安全扩展,建立信任根( RoT )和加密服务,以安全地存储关键(固件)数据,这是对传统可信平台模块( TPM )的改进。TrustZone允许通过(基于硬件的)隔离驱动更广泛的托管敏感服务集;
Intel Turstlite 是一种适用于低功耗嵌入式设备的通用安全架构,允许远程管理、身份验证、空中更新( over the air,OTA )和远程证明。
低成本方案,IoTware内存访问控制也可以使用SMART 实现,使用带有密钥的ROM测量例程来提供远程证明。
3.固件漏洞:影响与挑战
物联网中多种技术的融合使得物联网设备对多种攻击向量的敏感度更高。
先前的研究有多种方法根据其偏好的判别器对漏洞进行聚类:
攻击源(物理的、本地的、网络的、互联网的),
威胁性质(硬件、操作系统、软件、交互),
TCP/IP协议族层,
环境(现货,企业级)
影响(拒绝服务、僵尸主机、损害QoS、数据泄露等)。
(1)系统属性
- 软件损坏:物联网固件天生容易受到软件损坏的影响,例如在服务启动或运行时或升级过程中引入的编码错误。自带的指针违例、类型混乱等问题,恶意代码注入,特权指令编程问题,暴露在固件威胁中。
- 内存管理
无效的有害的代码会导致整数溢出、缓冲区溢出,内存限制加剧安全漏洞的原因。
基于硬件的信任管理( HTM )被认为是一种最优的解决方案,但空间和财务成本再次可能使其不适用于物联网软件。
采用HTM还受到物联网系统中缺乏专用内存管理单元( MMU )的限制,导致频繁的内存违规行为。
- 错误配置
(2) 接入机制
接入、身份验证和凭证管理在修补物联网节点很常见,一般采用OTA更新的方式
- 访问控制
- 授权
(3)组件复用
硬件和软件组件的重用,包括现成的板卡、电路、传感器、启动程式或软件库。
用以减少物联网领域的开发时间和相关成本,同时无意中忽略了由于异构交叉连接而产生的漏洞。在多控制器系统中,来自不同厂商的固件需要对每个单独的组件进行全面的安全分析和测试。
在一个控制器或可利用的软件中的固件漏洞可能导致级联威胁,扰乱整个操作,并导致一系列不安全的物联网设备的大规模生产
开发资源,不断发展的IOT应用使得供应商雇佣有限专业知识的开发人员开发固件
(4)网络接口
物联网设备通过多种接口类型和网络协议与其他异构系统进行交互。然而,这可能转化为应用程序编程接口( API )和协议易感性,使潜在的攻击者有机会损害设备功能和可访问性。
- Web Services
物联网设备通过一系列Web API与云、雾、边缘计算和监控系统进行通信。不安全、设计不良的Web服务仍然是设备利用的主要原因之一,允许通过应用程序级和基于固件的攻击。
IoTReaper,已经成功地利用物联网Web接口对设备软件发起了各种各样的攻击
- 网络协议
供应商使用广泛的标准化和专有网络协议,当与可重用的硬件和软件组件相结合时,可能会导致物联网软件中现有安全问题的传播。
蜜罐记录了将近98 %的物联网软件的网络相关攻击发生在不安全的Telnet接口上
- 污染数据
传感器和驱动服务通过相关的雾和云节点处理可能需要采集、浏览、验证、处理和净化的传入数据。从感知或执行器门户获取的数据,如果被污染或变形,会淹没设备的可操作性,并使设备固件面临安全风险
(5)镜像管理
- 存储完整:安全分发,OTA,设备可能运行几年前的固件
- 更新交付
(6) 用户认知
1.自动化与人工干预的关系
2.优化更新,供应商和用户之间的责任担当问题
(7)规则遵从
1.标准化:现有的物联网软件法规
2.发展监督,ODM OEM 协调问题
(8)对抗向量建模
1.本地和远程向量:
远程或网络上的对抗因素可以通过恶意软件感染系统,而本地对手可以窃听和干扰设备通信。基于隐身的敌手可以从更近的物理距离或远程攻击,伪装成一个真实的实体,并获得对物联网生态系统的不必要的访问。
2.侧信道攻击
可以由物理非入侵实体进行,而入侵对手可以完全超越认证机制,向物联网设备证明其身份,旨在通过软硬件修改来获取信息或利用设备行为。
3.混合设计
4.漏洞审计
固件审计是一项手动密集型任务,需要评估人员在逆向工程( RE )和大量静态( SA )和动态分析( DA )技术方面的专业知识。需要对相应的固件进行系统化处理,以确保其与所选审计方法的兼容性。
4.1 逆向工程
固件审查过程的一部分,首先要执行一系列的逆向工程任务,包括二进制文件的获取、解包和反编译,以访问源代码。
固件获取
固件可以从供应商仓库获得,从设备本地提取,或者在OTA更新期间拦截并保存。使用网络爬虫和脚本技术的固件采集自动化也是可能的,基于FTP的专用镜像服务器仍然是首选的选择。
可以通过JTAG和UART端口或使用取证分析技术从设备中获取代码。设备显示和更新服务器可以使用OTA更新调度设备固件的定期升级。
建立中央存储库来聚合来自多个供应商的固件代码,以加快和扩展审计程序仍然是一个长期的测试人员需求。
硬件解包
二进制打包的标准和方案通常是特定于供应商的,并且被认为是专有的。
Binwalk 和BANG 使用递归解包。
FMK 和FACT 则专注于基于Linux的平台。
ANGR是一个基于python的平台,提供二进制分析、自动解包固件、控制流分析、符号执行以及与Linux、Windows和MAC平台的兼容性。
反编译
反编译机器码需要在更高级的语言中具有更大的人类可读性,包括反汇编、数据流、控制流分析和数据类型检查
流行的反编译工具包括Radare2 [ 122 ]和Binary Ninja [ 121 ],并提供(可选) GUI支持的二进制分析功能。IDA Pro [ 124 ]和Ghidra [ 123 ]具有交互式拆卸和多体系结构支持等多种特性。KLEE [ 48 ]使用了资源消耗相对较重的符号VM处理( LLVM )编译器。
挑战:
打包逻辑:打包者不对代码功能进行修改,使得代码的呈现具有顺序性,不便于进行安全性分析。因此,使用自动动态分析相对于人工阅读可以产生更好的结果,为许多固件解决方案提供审计可扩展性。测试框架,包括FAT 和QEMU ,通过结合一些漏洞评估工具和仿真来简化分析。
缓解技术:除了加密打包,供应商可能会诉诸反编译缓解,增加固件源检查障碍。
元数据不可用:伪装设备元数据以避免基于硬件的黑客攻击,可以通过限制产品发布、更新日志和版本号的信息以及反编译器选择的硬件架构,无意中使安全审计过程复杂化
4.2 审计技术
分为静态审计方案和动态审计方案
静态分析
静态分析包括手动和密集扫描源代码的规则集模式,以识别编码错误。
静态分析不涉及固件的实际执行或仿真,也不要求审计人员对物联网设备进行物理访问以进行审查。
使用静态分析确定的典型漏洞包括无效引用、缓冲区溢出和内存损坏缺陷、分割错误和未初始化变量。
使用工具进行自动化子流程。
误报风险比较大。,代码混淆,加密会阻碍静态分析
静态分析策略分为6类:手动分析、自动化和并行化、基于解析的分析、控制流图、机器学习方法、确定后门。
手动分析的一个典型例子是2012年的针对Android应用的啄木鸟
Firmalice使用了一种自动化和并行化的方法,将程序切片,并使用符号执行引擎来执行记录漏洞的并行函数。该工具具有理解安全策略和FirmUp识别特权指令的能力。
Angr -> FirmUp
机器学习已经被用于通过在现有的静态分析技术中结合模式识别来实现更高的自动化。2016年,Feng [ 136 ]引入了一种名为Genius的算法,通过结合机器学习和计算机视觉技术来解决控制流图的可扩展性问题。
HumIDIfy使用机器学习将具有预期固件行为的配置文件和二进制功能描述语言来识别任何隐藏的功能,并将其与实时代码行为进行比较。如果发现预期行为和实时行为之间存在差异,则假定固件具有隐藏功能。虽然这是一种新颖的方法,但它不能被视为一个完整的解决方案,因为它需要专家的人类知识和固件元数据,以避免产生大量的误报。
后门的使用。基于固件自动静态分析的工具Stringer试图解决这个问题。
在类似的研究中,一种名为通用固件漏洞观察器( UFO ) [的工具被提出,可以用于固件漏洞,逆向,确定密码泄漏,并使用新开发的名为Shell Script Dependency ( ShDep )的算法找到后门。
动态分析
动态方案执行固件代码,允许审计人员在不需要访问程序内部信息的情况下观察系统行为。动态分析需要元数据信息来优化固件仿真。然而,在不了解底层结构的情况下,镜像一般总是不能被仿真,因此当无法进行自动仿真时,动态分析不能很好地扩展,因为它需要重复地定制仿真和配置设置。
FIE :通过调用中断处理程序观察行为来检查外设的内存位置从而进行分析。FIE保存了所有先前分析过的状态的记录,使用状态剪枝和内存污迹进行过滤。
符号执行:用于确定能够实时定义并完整描述固件停滞和运行状态的方程。利用符号执行,模拟外设,实时生成输入进行执行和测试。
Laelaps,μEmu,Gerbil:这些工具可以运行各种嵌入式设备软件,而无需将任何特定的设备相关信息编码到仿真器中。
Gerbil 是Angr 静态工具的扩展用于测试日常智能设备中的权限分离漏洞
通过QEMU 开发了一些多用途框架来执行全系统仿真支持的动态分析,它模拟了I / O和内核操作。这样的框架之一是Avatar ,能够对嵌入式设备固件进行动态分析,在物联网领域具有同样的适用性;
Zed Attack Proxy ( ZAP )、Nmap和Nessus等开源安全扫描工具对嵌入式Web接口进行测试,可以在不需要实际硬件的情况下识别基于Linux系统的漏洞,然后使用Metasploit进行漏洞利用。
工业物联网,帕拉维西尼等人提出的动态框架使用了多种方法,包括二进制分析工具,网络推理系统,模糊器,以及OpenPLC,Firmadyne和QEMU等安全分析虚拟化解决方案。
这是一种三阶段的方法,从提取固件二进制大型程序开始,提取用于仿真的代码,进一步仿真代码,并使用模糊测试和符号执行等多项技术分析漏洞的结果。
FIoT:允许识别受限物联网固件中的内存损坏问题。
处理器-外设接口建模( Processor- Peripheral Interface Modeling,P2IM )软件框架,该框架基于一个现成的fuzzer输入到固件二进制进行审计。P2IM使用外设的抽象建模来生成固件模型;它还利用来自制造商设备文档的信息来理解可接受的处理器-外设接口输入。
作为P2IM的扩展,DICE框架被用于模拟固件分析中的直接内存访问( DMA )通道。该框架与硬件无关,将DMA输入通道识别和抽象为固件与DMA控制器中的源和指定DMA传输点进行通信。DICE可以操纵通过DMA传输的输入进行分析,并集成在P2IM框架中。
混合方法
将静态的二元分析与动态的实时调查相结合的混合方法是扩大审计覆盖面的一个有价值的选择。可以使用审计技术的混合组合来提高未知漏洞的检测效率。
DroidRay 通过在APK文件检查期间依靠动态分析和在扫描病毒期间依靠静态分析来发现Android设备中的恶意代码。
Mechanical Phish,一种结合模糊测试,符号执行的混合漏洞检测框架。
混合技术还可以依靠模糊测试,使用恶意的输入模式来触发意想不到的设备操作。
IoTFuzzer 使用黑盒方法来检测可能的内存损坏漏洞。
Firm-AFL的灰盒模糊器,它支持可以通过Firmadyne 仿真的固件集。
动态与静态的讨论
选择上:与静态分析相比,动态分析更受从业者的青睐,尽管后者本质上具有较高的漏洞判定效率,因为复杂的逆向工程和紧密的软硬件耦合为静态审计提出了额外的挑战。近年来,模糊测试和混合方法也得到了广泛的应用。
可以开发包含静态、动态和混合技术的框架来进行准确识别。
分析范围上来看:几类漏洞需要审计分析,包括系统属性、访问机制、网络、代码重用
局限性:由于物联网软件的异构性,审计工具主要专注于识别和复制已识别的攻击,而只有少数解决方案专注于发现零日漏洞。现有工具的通用性是值得怀疑的,因为它们大多只覆盖漏洞的特定类或子类。
一些解决方案如ANGR [ 120 ]、Genius [ 136 ]、Gemini [ 40 ]、Avatar [ 85 ]和DICE [ 38 ]等由于其潜在的方法论,可以检测出许多漏洞,但也可能表现出很高的误报率。
就未来趋势而言,研究越来越聚焦于机器学习和区块链技术。ML和区块链可以在一定程度上为固件审计带来进一步的灵活性、适应性和自动化。然而,充分利用这些技术的潜在应用仍然是一个开放的倡议。
5.当代研究和开放性挑战
在标准化、技术修正和设计创新这三个不可或缺的组成部分中,现代研究与前沿技术之间的关系得到了理顺。图2说明了未来的研究方向和相应的挑战。
1.Standardization
讨论了固件审计框架的统一和固件栈及指令集的标准化。
Unification
探讨了统一固件审计框架的必要性和方法。
2.技术补救
1.分析方法
将ML作为逆向工程的一部分,将通过连接相关信息为人类分析提供任务的自动化。具体来说,ML可以利用多个架构中已识别的匹配问题和通过联邦学习( Federal Learning,FL )聚合的学习模型来实现自动化训练。利用FL可以在聚合服务器上融合提取的ML模型,并加快不同漏洞类别的逆向工程任务,从设备类型提供的整个特征集中整体识别威胁。
扩展QEMU和类似的仿真器技术,并由ML重新实施,可以帮助识别任何现有的漏洞模式。仿真还可以利用区块链辅助的联邦学习来激励本地模型训练,并定期更新全局漏洞分类模型[ 57 ]。传统ML系统中统计输入特征的手工精加工也是可以实现的;因此,不断发展的叙事已经诉诸于深度学习( DL )结构作为一种可行的替代方案。固件安全性分析还可以利用DL技术来提供包含设备pr的原始数据
3.设计创新
从安全角度考虑,操作系统与底层硬件架构的兼容性非常重要。任何对设备操作不必要的库和包的移除都会降低潜在漏洞利用的可能性。虽然开发人员一直担心在物联网软件中集成标准化的平台,如UEFI,但该领域仍有待进一步研究