固件是物联网设备的基础使能软件,其中存在的安全缺陷是物联网设备遭受攻击的根本原因之一。由于物联网设备资源受限,难以部署完善的安全防护机制, 身处不安全的网络环境中, 其固件缺陷一旦被恶意利用,轻则使设备宕机, 重则威胁安全攸关领域基础设施, 造成巨大的生命财产损失。因此,有效的固件安全缺陷检测已然成为保障物联网设备安全的关键, 也成为学术界和工业界研究的热点。面对物联网设备数量的高速增长、固件自身规模和复杂性的不断攀升、固件类型的日益多样化、固件缺陷的持续增多, 现有的物联网固件安全缺陷检测研究面临挑战。
物联网(Internet of Things, IoT)是由各种拥有唯一标识的计算设备、机械或数字对象、人与物通过通信技术建立连接,实现自主的人、机、物之间的数通、智能医疗、智能电网等安全攸关的领域。根据GSMA预计,到2025年,全球物联网设备数目将高达25.3亿 。
固件(firmware)是运行在物联网设备上的核心软件之一。IEEE标准12207-2008将固件定义为“硬件设备和以只读软件形式存储于硬件设备中的计算机指令和数据的结合”。大部分嵌入式设备中的软件都是以二进制形式存储在只读存储器、可编程只读存储器、可擦可编程只读存储器、带电可擦可编程只读存储器、闪存等永久存储设备中, 因此该类软件一般称为固件。
固件按照其是否内置操作系统、以及内置操作系统的类型可分如表1所示的三类:
(1)单片固件,通常采取单个二进制镜像的形式,无需底层操作系统,直接基于底层硬件驱动完成所有功能,或者只包含部分系统的库;
(2)基于Linux 的固件,以Linux作为底层的系统,基于Linux进行开发;
(3)基于RTOS的固件。RTOS(real-time operating system)是指实时处理数据、没有缓冲延迟的操作系统。在嵌入式应用中使用 RTOS 可以使程序最大化利用有限的计算资源、简化应用程序设计、提高开发人员效率。RTOS受到了越来越多编程人员的重视, 涌现出一批优秀的嵌入式实时操作系统如VxWorks、QNX、FreeRTOS、RTEMS等,其中FreeRTOS 因其开源免费、小巧简单等特点受到了学术界和产业界的广泛采用。
在物联网设备中使用RTOS,能够让设备最大化利用有限CPU资源;此外对于开发人员而言,可以简化固件程序设计、提高开发效率。实时操作系统的物联网设备在追求任务实时性的同时有低功耗的需求。常见的配备实时操作系统的设备有智能插座、智能灯泡等。
固件处于计算系统的核心地位,自身的安全缺陷往往隐藏较深, 需要满足特定的条件才能被触发,加之,物联网设备具有多样、异构等特性, 这使得检测固件缺陷变得极其困难。 现有的缺陷检测技术主要包括静态分析、符号执行、模糊测试、程序验证以及机器学习,然而现阶段基于上述技术的缺陷检测方法与工具在应用到物联网固件时依旧面临挑战;
(1) 无法获取源码且代码类型复杂。厂商为了保证设备安全通常不会公开固件源码;且为了完成设备的各项功能,固件通常混杂有汇编、Java、JavaScript等不同类型代码, 阻碍了反编译的进行;
(2)不同类型的固件差别较大。现有的固件根据所使用的系统可以分为单片固件、基于 Linux 的固件和基于RTOS的固件,不同类型固件代码架构差异较大;且运行在不同硬件上的固件处理器架构和内存架构差异较大,极大阻碍了固件测试工具的可扩展性;
(3)测试用例难以构建。固件由于其功能严重依赖外部输入和中断,外设类型极其丰富及内部状态复杂,因此难以构造统一的输入来满足众多外设,也难以构造极端的测试场景去探索更深的路径。
(4)依赖资源及技术不足。固件运行的硬件资源有限,因此较难在物联网设备中直接运行测试软件;且物联网设备通常很少向第三方提供完备的测试接口,无法获取足够的固件运行时信息;固件的反汇编技术仍然存在不足,当固件中存在混淆机制时难以获取源码;模拟器能力有限导致大量固件无法进行模糊测试。
![固件漏洞安全检测平台]()
分析物联网固件面临众多挑战,保障物联网设备安全的关键在于采用自动化的流程,高效检测固件漏洞。因此研究高效的自动化的固件安全漏洞检测方法具有重要意义。一方面可以在厂商正式发布固件之前检测出漏洞,有效避免未来受攻击所造成的损失;另一方面可以实现在有限时间内分析大量固件,节省人力、物力等成本。
静态分析无需运行物联网设备,只对固件代码进行扫描,通过词法分析、语法分析、控制流、 数据流分析等技术验证固件代码是否满足规范性、安全性、可靠性、可维护性等指标。通过分析程序特征发现漏洞,可以达到检测潜在安全漏洞的目的。
由于设备固件程序涉及商业机密,厂商几乎不公开源代码或文档,获取固件代码极其困难,一般只能通过逆向工程,然后结合一些传统的程序静态分析技术进行漏洞挖掘。物联网设备固件的静态分析的一般步骤如下:
2 )使用逆向工具,将其转换为汇编语言或其他中间语言 ;
3 )结合二进制分析平台或者逆向工具, 恢复程序变量、函数、结构以及 CFG( control flow graph)等信息;
4 )结合静态程序分析技术,如模糊哈希、污点分析等,实施漏洞挖掘
符号执行切技术最早源于20世纪70年代中期,通过采用抽象的符号代替精确值作为程序输入变量,得出每个路径抽象的输入结果,收集执行路径约束集合,求解约束产生的测试输入,在给定的约束下,探索尽可能多的不同的程序路径,用于检查是否存在各种错误。但是大多数符号执行技术不适用于大型程序,存在路径爆炸的问题,随着程序规模的扩大,程序中有意义的路径呈指数级扩大,有些程序中存在无尽循环或者递归调用,这更大增加了有意义路径,增大了符号执行难度。
模糊测试技术最早出现1990年,Miller等人使用模糊测试发现 Unix系统中的漏洞。其核心思想是将自动或半自动生成的随机数据输入到一个程序中,并监控程序崩溃、错误和内存泄露等异常。针对固件运行时所处的环境不同可以将模糊测试分为2类:基于真实设备环境的模糊测试;基于仿真环境的模糊测试。在固件分析中应用模糊测试技术,向运行固件发送大量有效或无效的输入,观察程序输出的行为特征。在常规自动化测试过程中,模糊测试扩大了代码覆盖范围,提高了代码覆盖率测试程度.但是模糊测试也存在一些问题,如具有较强的盲目性、测试用例冗余度大、对关联字段的针对性不强等。
人工智能技术可以对设备收集信息,对信息进行深入学习和理解,在一定程度上可以弥补现有的检测和防御技术在自动化方面的不足。例如,使用一些机器学习、深度学习算法来挖掘已有的固件漏洞特征,并在代码中匹配已知漏洞,结合模糊测试自动进行恶意应用检测或漏洞挖掘,借鉴迁移学习思想融合不同平台的检测知识。随着物联网应用类型不断丰富,以及交互场景越来越复杂,利用人工智能技术提升威胁检测和防御方案的效果是值得继续深入研究的方向。
![固件漏洞安全检测平台 固件漏洞安全检测平台]()
物联网设备固件中有全部的硬编码信息,建设的物联网固件安全检测平台应能涵盖固件文件平台关键信息提取、安全检测原理、Bin 文件逆向分析不安全编码模式匹配、敏感信息搜索、第三方漏洞库匹配等多技术方法,通过反汇编和反编译等流程,可以把文件平台存在的可执行的机器代码翻译成 C语言等基础语言代码,定位危险函数,从敏感信息搜索、第三方漏洞库匹配等多个方面对设备进行安全检测与评估。
物联网固件安全检测平台只需要上传设备的固件,平台将自动分析固件,快速发现内部设备中可能存在的漏洞,提供专业的安全分析能力,以避免因弱口令、溢出等漏洞引起设备控制权限的泄露,并最终形成检测分析报告。
![固件漏洞安全检测平台 固件漏洞安全检测平台]()
原文始发于微信公众号(华克斯):固件漏洞安全检测平台
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
点赞
https://cn-sec.com/archives/1996482.html
复制链接
复制链接
-
左青龙
- 微信扫一扫
-
-
右白虎
- 微信扫一扫
-
评论