一、概述

近年来,物联网与5G、人工智能、区块链、大数据、IPv6等技术深度融合应用,新技术、新产品、新模式不断涌现,随着经济社会数字化转型和智能升级步伐加快,物联网广泛应用于智慧城市、数字乡村、智能交通、智慧农业、智能制造、智能建造、智慧家居等领域,已成为新型基础设施的重要组成部分。据IDC预测,到2025年全球物联网设备数将达到416亿台。

固件是物联网设备的关键组成部分,通常存储于嵌入式设备的ROM、EEPROM及flash等非易失性存储器件中,包括了设备运行所需的关键内容。固件向下与底层硬件交互,向上承载着各类设备应用。

由于物联网设备生产商在固件开发过程中可能复用具有安全漏洞的开源组件及第三方代码,同时对所开发固件的安全审计和网络安全防护考虑不足,使得物联网设备固件漏洞层出不穷,固件脆弱性及物联网设备供应链安全问题不断凸现。2020年,JSOF公司发布了影响Treck TCP/IP协议栈的Ripple20漏洞,全球500余个厂商生产的数十亿物联网设备受到漏洞影响。2021年,Nozomi 实验室披露了 ThroughTek 公司的 P2P 视频监控设备开发套件(SDK)存在严重漏洞,数以万计的摄像头等物联网智能设备受到漏洞影响,攻击者可利用该漏洞窃听实时音频和视频,甚至控制基于此套件开发的设备。

针对物联网固件的安全隐患,安全研究人员从静态分析、符号执行、漏洞关联、模糊测试等角度提出多种方法对物联网固件安全性开展了综合测试评估,能够对单个固件或批量固件的脆弱性进行识别分析。CNCERT物联网安全研究组长期关注物联网设备芯片及固件的安全问题,立足物联网设备固件安全态势监测及物联网设备固件脆弱性规模化分析两个方向开展研究工作。

依托监测数据和固件安全分析系统,本报告从近一个月典型格式固件文件的传播下载态势,重点类型固件传播下载情况以及重点类型固件脆弱性分析情况三个角度出发,尝试对固件整体安全态势进行分析评估。具体内容包括:

1)对典型格式固件文件的传播下载态势进行分析,监测识别频繁传播及批量下载等行为。

2)对22个典型路由器设备厂商固件的传播下载态势进行监测,识别对不同路由器厂商官网进行频繁访问及批量下载行为。

3)对22个典型路由器设备厂商的近1000个路由器固件进行了深度分析,发现普遍存在的敏感信息泄露、硬编码口令、脆弱性配置等问题,并分析了固件代码复用、组件复用和同源漏洞等供应链安全问题。

 二、物联网固件文件传播下载态势

2.1 典型格式固件文件的传播下载态势

(1)固件文件格式传播下载监测情况

物联网固件文件的格式复杂多样,没有统一的标准,通常以单个二进制文件或者压缩文件的形式提供。典型固件二进制文件格式包括bin、img、hex等,典型的固件文件压缩格式包括zip、rar、gz等。

在近一个月的时间内,我们对43种典型格式固件文件的传播下载情况进行了监测,共监测到典型固件格式文件传播下载事件4730119次,涉及传播下载链接958996个,传播下载源站点数量33843个。

在所有传播下载事件中,分析发现很多zip、rar等通用压缩格式中并不包含物联网固件文件,过滤掉非固件文件后,涉及物联网固件传播下载事件219209起,涉及传播下载文件20614个,传播下载源站点IP数3720个。通过对传播下载链接的可用性进行验证分析,获取到的固件文件格式及数量排名情况如图1所示。可以看出,大部分固件文件是以压缩格式传播下载,压缩格式以zip、rar、gz、bz2、7z等居多。

图1 成功验证的固件格式数量分布

在传播下载频次较高的文件中,从固件命名方式来看,完整的固件文件以Device.bin等命名;固件更新包、补丁文件以wlan_update_v2.zip 、DCUpdate2_0000.zip、patch_update_11.1.6.31.002.zip等命名;还有固件文件名不具备可读性,如75801.bin等。

(2)固件传播下载站点监测情况

表1中列出了典型格式固件的传播下载站点的事件数及访问IP数信息,不同站点的访问频次和访问IP数量呈现出差异:部分站点访问频次较大,但访问站点的IP数量不多,比如185.*.*.150;部分站点的访问频次及访问站点IP量都比较可观,比如104.*.*.102、104.*.*.102。

表1 典型传播下载站点事件数及访问IP情况

对下载站点的主机名信息和站点内容进一步分析,如地址34.*.*.141、10.*.*.198-205域名分别为igpsort.com、service.mercurycom.com.cn,为物联网设备厂商的官方固件下载地址;地址185.*.*.150域名为technet24.ir,为通用资源下载站,提供固件、软件、电子书、教学视频等资源下载服务;站点104.*.*.102和104.*.*.102均为某Web安全厂商的节点,使用了Cloudflare的CDN网络进行分发。

(3)获取固件的行为监测情况

对获取固件文件的IP行为进行分析,共发现下载IP数量为20733个,对下载最为频繁的国内IP信息进行分析,其排序情况如表2所示。可以看出,不同IP地址的固件下载行为呈现出显著区别:有些IP是对数百个不同的固件进行批量下载,有些IP对单个固件文件频繁尝试下载。

基于威胁情报对IP地址历史上的恶意行为进行关联, IP地址112.*.*.27疑似为傀儡机,对其行为进行分析,发现该IP频繁访问gowincg.com站点(但该站点不活跃),尝试下载网站文件22个,涉及下载事件2369起,最高下载频次每分钟127起,行为比较可疑。

表2 传播下载频次Top10的国内用户IP情况

综上所述,通过对典型格式文件的传播下载态势进行监测,能够发现传播的固件文件格式以压缩文件为主;固件传播下载源站点包括厂商官网、CDN云服务商及通用资源下载站;并发现恶意IP地址具有批量获取固件文件的行为。

2.2 路由器设备固件传播监测分析情况

近年来,路由器设备,特别是家用无线路由器的应用非常广泛,数量十分庞大。路由器作为网络的关键中继节点,也成为黑客的重要攻击目标,用于窃取信息、消耗资源以及控制利用等。一直以来,全球都有大量的路由器暴露于公网上,通过资源测绘发现,主流路由器品牌在线情况如图2所示。

图2 主流路由器品牌在线情况

可以看出,Huawei、TP-Link、Cisco等国内外主流品牌路由器设备都大量在线。然而,路由器设备的网络安全现状不容乐观,早在2018年,美国消费者协会的研究指出,在186台测试样本路由器中,有155台(83%的比例)存在不同严重程度的固件漏洞,即平均每六台无线路由器就有五台存在安全漏洞。因此,我们重点针对路由器设备的固件传播下载情况开展了监测分析。

(1)官方渠道固件传播下载监测情况

在一个月的时间内,我们监测识别到网件(NETGEAR)、华硕(ASUS)、艾泰(UTT)、维盟(WAYOS)、TP-Link、D-Link等22个路由器厂商官网的固件传播下载事件56686起,涉及下载地址2052个,源站点IP数量322个。表3列出了源站点IP的下载事件Top15排序情况。可以看出,网件、维盟、小米、必联、友讯等主流品牌都有固件传播下载事件,其中必联、网件、维盟等品牌的固件下载数量最多。

表3 源站点传播下载事件监测情况

根据传播下载的固件文件名进行分析,共发现固件文件数量5000余个,图3所列出了被下载频次最高的固件文件对应的产品型号,其中小米、网件的产品固件下载频次最高。

图3 固件被下载频次较高的典型产品

对获取固件的IP地址进行分析,共监测到获取下载固件的IP数量13324个。按照下载固件数量进行排名,Top15的IP信息如表4所示。可以看出,在近一个月的时间,位于境外的多个IP地址批量获取了固件文件。

表4 下载固件数量Top15用户IP情况

通过关联威胁情报信息,识别到有恶意标签的IP地址 9个,标签内容为傀儡机、扫描和漏洞利用等。如IP地址216.*.*.202疑似为傀儡机,该IP地址下载事件306起,涉及文件261个,所下载文件包括网件(Netgear)文件258个,居易科技(DrayTek)文件3个。

综上所述,通过对典型路由器设备厂商固件的传播下载态势进行监测分析,能够有效监测到网件、维盟等主流路由器品牌都有固件传播下载情况,还发现有恶意IP对不同路由器厂商官网进行频繁访问及批量下载行为。

(2)官方渠道可获取的路由器固件分析

我们对近一个月的路由器固件传播下载地址进行验证,成功获取固件663个,厂商包括网件(NETGEAR)、华硕(ASUS)、艾泰(UTT)、维盟(WAYOS)、小米(Xiaomi)和D-Link等,其中网件的固件数量最多,各品牌固件数量分布如图4所示。

图4 验证获取的固件品牌及数量分布

验证获取到的663个固件文件格式主要有img、chk、bin、zip等8种类型,文件格式及对应数量如图5所示。

图5 官网获取到的固件文件格式分布

近1个月的时间内,以上663个固件文件共涉及传播下载事件8115起,日均传播下载事件198起,下载IP数1194个,分布在美国、中国、法国等52国家和地区,IP地址的国家分布情况如图6所示。

图6 下载IP数量国家分布情况

这些固件所属厂商的传播下载事件情况如图7所示。

图7 固件所属厂商传播下载事件情况

对单一IP的固件下载行为进行分析,发现有68个IP下载固件数量超过10个,其中,下载固件数量最多的IP下载数为71个,这些IP所属国家的分布如图8所示。

图8 下载频次较高的IP所属国家分布

表5列出了下载固件数最多的IP地址信息,明显可以看出位于美国的多个IP地址频繁获取了网件、必联、维盟等7个厂商站点的固件文件。

表5 下载固件数最多的IP地址情况

综上所述,通过对路由器固件传播地址进行验证获取,获取到路由器固件663个,文件格式以img、chk、bin、zip为主;基于对固件文件传播下载事件的监测,识别到有恶意IP在频繁访问和获取多个路由器厂商的固件文件。

 三、路由器固件批量安全分析情况

通过长期积累,目前我们固件库已收集超过14万固件文件,我们从固件库中随机选取了22个路由器厂商的957个固件,基于固件安全分析集群进行了批量分析,分析结果如下。

3.1 固件基本信息批量分析情况

(1)解包分析情况

对957个固件进行解包,成功解包的固件数724个,解包成功率为84.5%。未成功解包的原因主要有固件文件加密以及固件文件头存在垃圾数据的情况。

(2)固件文件系统分析情况

由于路由器设备存储空间有限,固件文件系统通常是以压缩的形式存储在固件格式中。常见的路由器固件文件系统主要有Squashfs、Cramfs、JFFS2、Ubifs、等格式。Squashfs 文件系统是一套基于 Linux 内核使用的压缩只读文件系统,压缩率高,是应用最为广泛的压缩格式之一;Cramfs是一种压缩只读文件系统,主要应用于文件系统内容较少且不需要用户写入的嵌入式系统中;JFFS2是一种带断电保护的Flash专用文件系统,是一种典型的日志结构文件系统;Ubifs是JFFS2的后继文件系统之一,主要用于固态存储设备上。

分析发现大部分路由器固件文件为单一文件系统,即只包括一种压缩格式,所识别的文件系统类型分布如图9所示,其中squashfs文件系统的占比最高,有140个固件未识别出文件系统,原因是固件本身无文件系统或者文件系统尚不能识别。

图9 单文件系统类型分布

此外,还分析发现有固件文件为多文件系统,即固件中包括多种压缩格式,如图10所示,所有多系统固件全部使用主压缩格式+cpio辅助格式的形式(cpio是通过重定向的方式将文件进行打包备份和还原恢复的命令,可以解压以 .cpio 或者 .tar 结尾的文件),其中squashfs搭配cpio是最常见的一种。

图10 多文件系统类型分布

(3)固件指令集分析情况

路由器常用的CPU架构包括MIPS、ARM、X86、PowerPC等。图11呈现了各固件CPU架构的分布情况,其中MIPS架构合计占比52.5%,ARM架构合计占比14.2%,X86架构合计占比8.5%,PPC架构占比3.9%。可见MIPS和ARM架构是目前路由器固件中最常用的系统架构。

图11 固件指令集架构情况

(4)固件操作系统版本分析情况

对路由器固件使用操作系统进行分析,有46.08%的固件使用的基于Linux内核的操作系统,涉及的Linux版本号包括2.4.X、2.6.X、3.2.X、3.3.X、3.4.X、3.10.X、3.14.X、4.4.X等。

3.2 固件脆弱性批量分析情况

(1)配置风险、敏感信息泄露及代码安全风险

分析固件中存在的配置层面的脆弱性风险,主要风险点如表6所示:在路由器固件中配置风险、敏感信息泄露、代码安全等方面存在显著的安全隐患。其中配置风险主要是指固件中不安全的配置项,敏感信息泄露通常是固件中由于开发不规范导致的telnet服务、数据库泄露等,代码安全主要是指检测固件中是否包含源代码。

表6 配置风险、敏感信息泄露等典型风险情况

(2)固件密钥及口令安全

路由器固件中的*.pem、*.key、*.crt、shadow、passwd、host_key等文件存储有密钥和口令,是操作系统的核心关键信息。对这类信息进行重点检测,发现相关文件对数量分布如图12和表7所示,其中识别到passwd文件数高达795个,对该文件进行暴力破解能够获得系统密码。

图12 识别密钥文件类型分布情况

表7 包含密钥数量Top10的固件

通过对检测到的密钥文件尝试口令破解,发现硬编码的典型用户名包括admin、root、user等,其中admin占比64.33%,root和user分别占比12.74%和10.19%。

图13 弱口令分布情况

检测出含有弱口令文件数量最多的固件信息如表8所示。

表8 包含弱口令文件数量Top10的固件

我们分析发现有同一品牌的不同固件经常包含相同弱口令。例如,insys品牌的INSYS_SDSL_1.0_Router_Firmware_2.12.12.zip固件和INSYS_RSM_Router_Firmware_2.12.1.zip固件,都包含相同的shadow与libmoros.so文件,文件中都包含用户名user及口令user。

(3)固件组件识别及Nday漏洞关联情况

对路由器固件中包含的组件进行检测识别,共发现124种、816个常见组件,平均每个固件使用4种以上的组件,识别到组件数较多的固件统计排序如表9所示。

表9 所识别的固件组件数Top10排序

这些组件历史上或多或少暴露出相关漏洞,对组件进行漏洞关联,所关联的漏洞数量如图14所示。

图14 组件关联漏洞数量排序情况

例如,固件NETGEAR_WNDR3400v3_Router_Firmware_1.0.1.28_Hotfix.zip包含OpenSSL、Samba等组件,关联到249个漏洞,以下是部分截图。

图15 固件关联组件漏洞情况

对路由器固件组件漏洞的漏洞等级进行分析,所涉及漏洞的等级统计情况如图17所示。

图16 固件关联漏洞统计情况

为了较为准确地描述所关联漏洞的特性,我们利用CWE(通用缺陷枚举)对固件漏洞进行分析,分析结果如表10所示。

表10 固件漏洞CWE关联情况

(4)固件漏洞知识图谱关联

基于漏洞知识图谱方法,我们尝试利用图可视化的形式呈现固件与漏洞的关联关系,以支撑高效的漏洞检测,以NETGEAR_WNDR3400v3_Router_Firmware_

1.0.1.28_Hotfix.zip关联到的249个漏洞为例,图17展示了该固件与漏洞的多层次关联关系。

图17 固件关联到的漏洞知识图谱

从图中可以看出,该固件包含了Busybox 1.7.2、Samba 3.0.13、Open SSL 0.9、Dnsmasq 2.3、Dnsmasq 2.7组件,这些组件关联到多个CVE漏洞,图中不同颜色代表了所关联漏洞的不同危险等级。除组件之外,图中还包含有CWE、操作系统、密钥证书等维度的关联关系,可用于进一步深度挖掘。

综上,通过固件分析系统对近1000个路由器固件进行批量安全检测分析,统计发现MIPS和ARM架构是路由器固件最常用的两种系统架构;路由器固件大多数为单文件系统,且squashfs最为常用;有近一半的路由器固件使用Linux内核操作系统。通过对配置安全、敏感信息安全、代码安全、密钥安全、CVE漏洞关联、组件识别、CWE识别等方面开展分析,发现路由器固件暴露诸多问题,发现有5585项配置风险、1169项敏感信息泄露、1730项代码安全的情况;多个路由器存在密钥弱口令硬编码问题,涉及到admin、root、user等口令组合;路由器固件中使用busybox、openssl组件最多,通过分析发现漏洞组件会同时存在于多个固件中。

 四、总结

本报告依托全网物联网设备固件监测分析数据,首次围绕物联网设备固件安全态势监测及物联网设备固件脆弱性规模化分析两个维度,对有限的固件格式和重点设备类型的固件开展了三个方面的监测分析。

一是通过对近一个月全网固件典型格式文件的传播下载源、传播下载事件和下载用户行为进行了监测,识别到有恶意IP频繁访问特定站点进行固件文件下载。

二是聚焦路由器固件,通过对22个路由器厂商官网的固件下载情况进行监测,监测到有恶意IP在对不同路由器厂商官网固件进行批量下载。

三是选取了22个厂商的近1000个路由器固件通过固件分析系统进行深度分析,发现普遍存在的敏感信息泄露、硬编码口令、脆弱性配置等问题,并识别分析了固件代码复用、组件复用和同源漏洞等供应链安全问题。

由于物联网设备底层硬件平台的复杂异构性,针对传统的PC和X86通用平台的安全分析方法很多无法直接适用于物联网固件分析,因此物联网固件的安全分析是一个长期的难点。今后,CNCERT物联网研究组将持续关注物联网芯片和固件安全方向,开展全网固件的安全态势监测,持续评估物联网固件供应链安全性,为物联网新基建行动计划保驾护航。