固件(Firmware)是工控和物联网设备的核心部件,含有设备运行的操作系统、协议栈、配置文件、可执行脚本和应用组件等各类信息和程序。黑客通过通过获取和逆向分析设备固件,能够分析出设备的运行流程和网络行为,获得口令、密钥等敏感信息,并能够对设备进行漏洞利用和攻击。用户在工控物联网设备入网使用前,对设备固件开展安全检测、发现安全漏洞并做相应防范,可显著降低设备运行期间被攻破的可能性。

FirmTool是CNCERT自主研发一款固件脆弱性分析工具,主要用于工控和物联网固件的安全性检测,通过固件元信息提取、固件自动解压缩、固件文件安全分析、组件漏洞关联等功能,发现固件在文件、组件和函数层面的安全漏洞及隐患。CNCERT已开始面向市场提供FirmTool软件使用授权和工控物联网设备固件安全检测等服务。

1、固件元信息提取

FirmTool工具通过对固件文件进行扫描,提取固件压缩方式、指令集、特征值、关键字和标签等元信息数据。支持功能:

  • 指令集架构识别:ARM、MIPS、PowerPC、x86、x64等;

  • 压缩格式识别:gzip、7z、bz2、tar、arj等;

  • 特征信息识别:版本、存储器地址和编译优化选项等;

  • 文件系统识别:squashfs、cramfs、linux ext、jffs2、yaffs等。

图1固件元信息提取流程

2、固件自动解压缩

FirmTool工具支持对gzip、7z、bz2、tar、arj、unrar、lzop、srec、unstuff等压缩格式的自动解压缩,并根据不同的文件系统格式,如unsquashfs、sasquatch、cramfsck、ext2、romfs、jffss2、ubi、wdk等设置不同的提取参数,提取固件的文件系统。根据对4万余个工控物联网设备固件的解压测试结果,FirmTool解压成功率超过60%。

图2固件自动解压缩流程

3、固件文件安全分析

FirmTool工具支持对文件系统中的文件进行静态分析,对口令文件、二进制文件、配置文件、脚本文件和敏感关键字等进行全面分析,提取出敏感文件和相应字段,并以报告形式输出。

图3 固件文件安全分析流程图

4、组件漏洞关联

FirmTool工具支持组件级别的漏洞关联,能够根据组件名称、版本等信息关联已知的漏洞。在FirmTool工具基础上,CNCERT还搭建了大规模固件漏洞关联系统,已收录超过9800个物联网相关漏洞,支持固件组件的逆向分析、函数特征自动化提取及函数级漏洞快速关联等功能。该系统基于立体、网状、多跳的二进制代码检索架构和基于局部敏感哈希的大规模同源检索方法,能够从海量固件库中快速检索出与指定漏洞二进制代码同源的组件。

图4大规模组件漏洞关联

5、FirmTool工具分析案例

以某设备的固件为例,通过FirmTool工具对固件文件进行分析,图5-图9为工具运行的界面。图10为大规模固件漏洞关联系统的界面。

图5 固件解压成功

图6 在线查看解压缩的二进制文件目录

图7 下载查看解压缩后的固件文件

图8 固件分析报告样本页

图9 固件分析报告样本页

图10 大规模固件漏洞关联系统界面

声明:本文来自工业互联网安全应急响应中心,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。