基于数字证书识别及校验的物联网固件安全检测系统的设计与实现

2020-08-27 10:47穆超杨明杨明曌王彪王继志
山东科学 2020年4期
关键词:数字证书固件校验

穆超,杨明,杨明曌,王彪,王继志

(齐鲁工业大学(山东省科学院) 山东省计算中心(国家超级计算济南中心)山东省计算机网络重点实验室,山东 济南 250014)

随着物联网时代的到来,网络摄像头、网络路由器、网络打印机、可穿戴设备、智能电视、智能汽车等物联网设备不断普及,传统企业、新兴科技企业等各类物联网设备生产商加速进军物联网应用市场。根据Gartner在ITxpo 2018的报告[1],到2021年物联网设备预计可达250亿个,市场相当庞大。与此同时,针对物联网设备的攻击和安全事件也不断攀升,已严重威胁到用户的个人隐私甚至生命财产安全。在2018年的各种物联网安全事件中[2],攻击对象已从简单的家用设备上升到工控、医疗、交通甚至航空航天领域,攻击类型涵盖利用僵尸网络实施的DDoS攻击[3]、利用网络摄像头破解实施的个人隐私盗取[4]等。物联网安全威胁已渗透至经济社会发展的多个层面,解决物联网安全问题刻不容缓。

物联网攻击日益猖獗的重要原因在于,物联网已成为一种新的网络攻击向量,且物联网设备本身的安全设计存在严重缺陷。多数物联网设备生产商在设计和开发过程中,优先考虑实现功能以抢占市场而忽视安全因素,例如在开发阶段缺少对已存在漏洞的安全处理,在预交付阶段缺少安全测试等。在硬件方面,物联网设备资源受限,其接入网络后更难以实施安全配置与部署,而暴露于公网的物联网设备尤其易遭黑客攻击和利用。在操作系统方面,大量物联网设备对已有嵌入式系统进行了直接引用或简单二次开发,加剧了将已有漏洞带入物联网系统的风险。

物联网设备在软硬件方面的差异性、不同功能导致的系统层与应用层的差异性、物联网设备指令架构的复杂性(如ARM、MIPS、PowerPC等异构类型)以及开发源码与文档的公开性等,均导致难以对所有物联网设备进行统一的漏洞和建模分析,无法实现自动化、批量化地扫描与发现漏洞。因此,当前的物联网设备漏洞挖掘仍以人工分析和挖掘为主。

当前针对物联网固件的安全研究,多数是基于固件解压文件(包括二进制可执行文件、源码文件等)进行分析,并对新安全漏洞或新安全威胁进行挖掘。Thomas等[5]采用静态分析方法挖掘硬编码类型的漏洞,通过提取函数特征并比对函数与静态数据进行建模识别,通过CFG程序控制流图确定数据比对的代码块影响力和重要度,以此评估函数重要性,在此基础上发现了硬编码的认证后门漏洞,并恢复SOAP、FTP协议指令集等。在后续研究中,Thomas等[6]进一步采用了半监督学习方法,将二进制功能进行了分类,在语义描述的基础上识别后门,并成功挖掘到tenda设备后门。Davidson等[7]使用KLEE符号执行引擎[8]搭建工具FIE,使用一种符号化语言,建立行为的统一描述方式,并进行符号执行,通过内存污染等方法提升分析覆盖率和准确性,可挖掘到内存破坏和外网IO误用类的漏洞。但由于该工具依托符号执行,需获取固件源码,且执行环境与真实环境存在差异,因此可能出现误报。此外,符号执行存在路径爆炸问题,使其应用受到进一步限制。这些漏洞挖掘方法虽各有优势,但都需对二进制可执行程序进行反编译并模拟执行,导致运行速度较慢。

综上所述,现有方法均无法针对数字证书文件进行漏洞挖掘,而证书泄露漏洞是物联网系统中最重要的漏洞形式之一,可能造成敏感信息泄漏、证书伪造、恶意程序传播等危害,如CVE-2017-8222[9]即为证书文件泄露导致攻击者获取敏感信息的典型案例。针对以上问题,本文设计了一种面向物联网固件中数字证书文件的识别和校验系统,可检测固件中是否存在数字证书泄露漏洞,并对泄露的数字证书进行有效性验证。实验结果表明,该系统可对多款物联网设备内的证书泄露漏洞进行有效识别,并对其中的无效数字证书进行检测。

1 系统整体设计

根据系统整体设计要求,本系统主要包括固件收集预处理模块、证书文件识别模块、证书有效性校验模块、数据存储模块。

其中固件收集预处理模块主要采用网络爬虫在不同厂商、不同设备的官方网站,论坛或FTP站点下载固件原始文件,然后经过初步识别分析出固件的架构并进行文件解压和提取;然后对解压后的文件进行格式校验识别出证书文件,提交至证书有效性校验模块,根据证书的格式读取证书内容,分析证书属性,进行有效性校验;最后根据识别出的证书有效性分别存入数据库,方便后续分析不同厂商、不同设备、不同版本等因素对证书的影响,提高对新增固件检测的可扩展性。

系统架构如图1所示。

图1 系统架构图Fig.1 System architecture diagram

2 系统模块设计

2.1 固件收集与预处理模块

固件获取是分析固件功能的基础,通常来说固件获取有两类方法:一是直接从物联网设备中提取;二是从设备厂商官方网站下载。Vasile等[10]总结了多种从物联网设备提取固件的方法,但其局限性在于必须拥有固件和固件提取的硬件设备;从成本和难度考虑,本系统采用从官网下载固件的方法。由于设备官网提供的下载渠道中包含固件的升级包和补丁包,本系统对完整版固件进行筛选,结合固件分析工具Firmadyne[11],编写爬虫进行下载。

将下载的固件导入固件分析系统,按照厂商等进行分类,对固件操作系统和架构进行识别,如系统为Linux、VxWorks,架构为MIPS、ARM等;之后对固件解压,基于匹配的固件头特征码、符号表等,利用Binwalk[12]和Firmware Mod Kit[13]工具实现对常见固件文件系统(如Sasquash和Jefferson等)的提取。

2.2 证书文件识别模块

解压后的内容为各类文件的集合,如Web服务相关的前端页面文件HTML、JavaScript、CSS等,配置类文件config、xml、ini等。根据数字证书文件的特点,基于格式搜索和特征匹配两种方法搜索证书类文件。首先根据文件File类型过滤出text类型的文件,然后识别pem、cer、key、der、crt、pfx等后缀格式的文件,并根据数字证书文件头的特征字符匹配筛选证书文件。

本系统依托Binwalk工具,检测到某些固件中的可执行文件包含软件类证书(如DER),因此增加对软件中的数字证书进行提取的功能,并将提取结果添加到证书识别库。

2.3 证书有效性校验模块

对识别出的证书进行格式分析,使用证书查看工具(如OpenSSL等)分析证书属性,如颁发者、有效期、密钥长度、使用者等,并对证书有效性进行校验。

2.4 数据存储模块

完成证书校验后,根据其有效性存储到不同数据库中,为后续分析研究提供基础。有效证书和无效证书的数据库中需要存储的内容包括固件名、生产厂商、证书路径、证书文件名、证书文件Hash等,在无效证书数据库中,还需要添加证书校验相关属性,包括颁发者、有效期、使用者、密钥长度等。建立数据库可将有效证书和无效证书做横向对比,分析固件证书的分布和特点,以及方便对添加的新固件进行高效管理。

3 系统实现及结果分析

在整体设计、模块设计的基础上,研发了基于数字证书识别及校验的物联网固件安全检测系统,具体如下。首先采用Python编写爬虫,下载了47个不同厂商、不同产品的固件;对下载的47个固件进行文件解压预处理,并根据证书格式和特征进行匹配,检测到15个固件存在证书泄露漏洞;因同一固件可能泄露多个证书,对固件中所有证书汇总,共得到泄露的证书57个;对泄露证书进一步研究,检测到不同固件的不同版本中存在相同证书文件,对证书文件进行Hash和去重,最终共检测到19个不同的证书泄露。证书去重之后的统计结果如表1所示。

表1 证书去重统计Table 1 Certificate deduplication statistics

分析证书的格式,将其分为Public、Private、Certificate,并根据不同的证书类型读取属性值。根据当前时间计算出证书的有效性,在去重后的19个证书文件中检测到3个已过期。过期证书的统计结果如表2所示。

表2 过期证书统计Table 2 Expired certificate statistics

读取证书的详细信息并存入设计的数据库,将有效证书、无效证书两个库分类管理,以方便对新增固件进行检测。测试结果表明,对于新增固件360P4-V2.0.9.55031.bin,固件解压识别到证书文件ssl.pem,计算其Hash值并比对,与数据库内固件360POP-P0-V2.0.55.55073.bin中ssl.pem文件的Hash值相同,且此ssl.pem已被标记为过期证书,据此判定新固件存在证书泄露漏洞,且此证书是无效的。对新固件的证书检测结果如图2所示。

图2 新固件过期证书检测Fig. 2 New firmware expired certificate detection

4 结论

本文设计并实现了基于数字证书识别及校验的物联网固件安全检测系统。以物联网固件作为检测对象,研究固件中公钥、私钥、签名类数字证书文件特征,设计了一种数字证书检测模型,自动进行固件提取、数字证书识别以及证书有效性检测,构建证书管理数据库,并成功检测到样本之外存在数字证书缺陷的固件。该系统运行高效,无需人工干预,识别准确率高,系统占用率小,数据库支持固件样本更新完善,具有良好的可扩展性。后续将进一步扩大物联网固件的样本量,支持更多的检测固件,并优化数据库的设计从而提高检测效率。

猜你喜欢
数字证书固件校验
使用Excel朗读功能校验工作表中的数据
炉温均匀性校验在铸锻企业的应用
基于SHA1的SCADA系统PLC固件完整性验证方法
电子式互感器校验方式研究
基于UEFI固件的攻击验证技术研究*
基于固件的远程身份认证
基于数字证书的军事信息系统安全防护方案
提取ROM固件中的APP
数字签名保护Word文档
浅谈微电子故障校验