掌桥专利:专业的专利平台
掌桥专利
首页

一种面向第三方组件及其安全风险的跨架构自动化检测方法与系统

文献发布时间:2023-06-19 13:46:35


一种面向第三方组件及其安全风险的跨架构自动化检测方法与系统

技术领域

本发明涉及物联网协议测试技术领域,尤其涉及一种面向第三方组件及其安全风险的跨架构自动化检测方法与系统。

背景技术

当前,物联网设备数量飞速增长。据Gartner预测,到2020年全球所使用的物联网设备数量将成长至208亿。固件正是向数量庞大的物联网提供设备硬件底层控制的一类特殊软件。从这一点看,物联网设备的安全性,在很大程度上决定于其固件的安全性。

物联网设备固件是一种嵌入在物联网硬件设备中的软件,在物联网设备中发挥了类似“操作系统”的功能。这意味着一旦物联网设备固件漏洞被利用,攻击者往往就能拿下整个物联网设备的控制权。黑客主动利用物联网安全漏洞并非为了攻击设备本身,而是将其作为各种恶意行为的跳板,为后续展开分布式拒绝服务攻击、恶意软件分发、垃圾邮件和网络钓鱼邮件投放、点击欺诈、信用卡盗窃等攻击活动铺路。

物联网设备的固件安全漏洞,主要有两类:一类是固件自身安全漏洞,主要包括开发过程中的代码缺陷、程序错误;不安全的配置信息;敏感信息、密钥信息泄露三方面的安全漏洞。另一类是集成的第三方软件漏洞,主要包括使用不被维护的第三方软件和版本滞后的第三方软件,这些软件缺乏安全性上的重视和漏洞审查,存在安全隐患。

公开号为CN113515457A的中国专利文献公开了一种物联网设备固件安全性检测方法,包括:获取待检测物联网设备的固件信息,所述固件信息包括固件ID,版本号;根据固件信息查找与其对应的启动文件、Web组件和漏洞信息;仿真模块根据查找到的启动文件和Web组件,进行web页面仿真,得到待检测Web页面;漏洞验证模块根据查找到的漏洞信息,按照漏洞信息中的漏洞编号和exp代码,来对仿真模块得到的待检测Web页面进行模拟攻击;获取模拟攻击后的结果信息,在所述结果信息中验证漏洞是否存在,如果确定存在漏洞,将所述固件信息、漏洞信息和结果信息进行显示。

当前物联网设备固件还存在闭源、定制化和海量的显著特征,缺乏一个统一的平台或者工具能够直接应用于不同厂家、不同设备物联网设备固件的安全分析。固件缺乏一个公开的、统一的标准,离不开其直接嵌入硬件、和不同厂家的硬件结构高度定制化的特性,即使同一厂家的不同设备固件之间也往往存在巨大差异;厂家出于商业和安全性上的考量,也倾向于不公开各自固件的结构、代码。这使得自上向下的代码分析技术难以运用。动态分析方法则受制于物理设备带来的巨大成本,逆向分析成为固件分析的常用手段。此外,不同设备可能采用不同的硬件架构,进而引起固件的多架构,更是给手动逆向分析固件带来了巨大挑战。如何实现通用跨架构的固件安全分析是研究的关键方向之一。

发明内容

针对跨架构自动化的物联网设备固件安全分析的技术不足,本发明提供了一种面向第三方组件及其安全风险的跨架构自动化检测方法与系统,该方法与系统对固件采用逆向拆解与分析,无需获取固件源代码;检测过程自动化,大大减少人工分析难度和工作量;通过扩充相似性模型训练数据集可以轻易拓展到多个架构,并已适用于当前多个主流架构。

本发明的技术方案如下:

一种面向第三方组件及其安全风险的跨架构自动化检测方法,包括以下步骤:

(1)对物联网设备固件进行识别、逆向,将产生的逆向产物分类为二进制文件和非二进制文件;将二进制文件进行反汇编,以挖掘其中的语义信息;将非二进制文件转换成字符串文本文件;

(2)建立包含第三方组件及其已知CVE的数据库;结合模式匹配自动扫描、收集物联网设备固件中的第三方组件,并收集、检索相应第三方组件的漏洞;

(3)通过有机结合漏洞汇编码的语义信息、物联网设备固件汇编码的语义信息,实现跨架构、基于深度学习的相似性比较,并对特定模式漏洞进行自动化挖掘和验证。

优选的,步骤(1)包括:

(1-1)根据物联网设备固件的压缩特征,识别给定物联网设备固件的架构、文件系统和压缩方式,并根据压缩方式对物联网设备固件进行逆向处理;

(1-2)结合识别得到的文件系统,将逆向处理产生的逆向产物分类为二进制文件和非二进制文件;对于二进制文件,根据其架构、类型进行分类;对于非二进制文件,将其转换成字符串文本文件;

(1-3)对于二进制文件,根据其架构(ARM,X86或MIPS)进行反汇编处理,将其转换成对应架构的汇编码;

(1-4)以函数为单元将汇编码分割成更细粒度的结构单元,并将分割得到的函数单元按逻辑顺序排列,完成对物联网设备固件汇编码语义信息的挖掘。

优选的,步骤(2)包括:

(2-1)基于公开的CVE信息库,构建由第三方组件及其版本到CVE信息,再到漏洞所在函数与文件的映射关系,建立包含第三方组件及其已知CVE的数据库;

(2-2)自动化扫描步骤(1-2)中获取的字符串文本文件,以第三方组件名为特征采用贪婪匹配原则进行第一次粗粒度匹配,并记录物联网设备固件中使用到的第三方组件;

提取包含第三方组件及其版本号的字符串,并按组合模式进行分类;对同一组合模式下的全部字符串,总结其规则得到正则表达式,添加到规则名单中;

(2-3)基于规则名单,自动化扫描步骤(1-2)中获取的字符串文本文件,以第三方组件名及其版本号为特征采用贪婪匹配原则进行第二次细粒度的匹配,并记录物联网设备固件中使用到的第三方组件及其版本号;

结合步骤(2-1)建立的数据库,检索物联网设备固件中第三方组件的漏洞,实现对物联网设备固件中由第三方组件引起的安全风险的检测并输出报告。

进一步优选的,步骤(2-2)中的扫描匹配为跨行匹配规则。

若步骤(2-2)的扫描匹配是以行为单元进行,如果在此过程中第三方组件和其版本号跨行分布,就会无法同时囊括第三方组件名和版本号,产生遗漏。而跨行匹配规则是基于统计的收集策略,收集多行字符串以同时囊括第三方组件名和版本号,避免遗漏。

进一步的,以完整物联网设备固件数据集的一个子集作为测试对象,比较不同行数下获得的规则数量和扫描时间比,选择最佳的行数作为最终跨行匹配规则的跨行数。

优选的,步骤(3)包括:

基于字符串模式匹配的策略检索物联网设备固件中的第三方组件特征,结合第三方组件及CVE信息数据库模块实现对物联网设备固件中第三方组件的检测和风险报告,获得与第三方组件相关的漏洞;

基于双向长短时记忆神经网络模型,计算和比较物联网设备固件、漏洞所在函数的语义信息,结合第三方组件及CVE信息数据库模块实现对物联网设备固件中第三方组件的检测和风险报告。

进一步的,步骤(3)包括:

(3-1)结合步骤(2-1)建立的数据库,分别在不同架构的编译链环境(X86、ARM和MIPS)编译第三方组件的相应版本的源代码,并从源代码中的二进制文件中提取漏洞所在的二进制文件;根据漏洞所在的二进制文件的架构进行反汇编处理,将其转换成对应架构的汇编码;

(3-2)以函数为单元将漏洞所在的汇编码分割成更细粒度的结构单元,并提取出漏洞所在的函数单元;

(3-3)将得到的漏洞所在的汇编码作为深度学习相似性比较的训练数据;对源自相同源代码、由不同编译链环境编译得到的汇编码标记为相似,对源自不同源代码编译得到的汇编码标记为不相似;将汇编码中的操作符和操作数视为自然语言中的词,汇编指令视为自然语言中的句子,跨架构指令的语义比较则视为自然语言翻译;采用训练数据对双向长短时记忆神经网络训练后得到相似度计算模型;所述的相似度计算模型以两组允许跨架构的汇编码序列作为输入,以一个相似度结果作为输出;

(3-4)将步骤(1-4)得到的以函数为单元的汇编码和步骤(3-2)得到的以函数为单元的汇编码作为相似度计算模型输入,逐一进行比较,得到二者的相似度;

(3-5)选取相似度高于预设阈值的汇编码,将其对应的物联网设备固件中的函数作为潜在安全风险所在并输出报告。

本发明还提供了一种面向第三方组件及其安全风险的跨架构自动化检测系统,包括:

物联网设备固件逆向提取模块,对物联网设备固件进行识别、逆向,将产生的逆向产物分类为二进制文件和非二进制文件;将二进制文件进行反汇编,以挖掘其中的语义信息,将非二进制文件转换成字符串文本文件;

第三方组件及CVE信息数据库模块,包含第三方组件及其版本到CVE信息、再到漏洞所在函数与文件的映射关系,向基于匹配的第三方组件风险检测模块和基于相似性比较的第三方组件风险检测模块提供数据支持;

基于匹配的第三方组件风险检测模块,基于字符串模式匹配的策略检索物联网设备固件中的第三方组件特征,结合第三方组件及CVE信息数据库模块实现对物联网设备固件中第三方组件的检测和风险报告,获得与第三方组件相关的漏洞;

基于相似性比较的第三方组件风险检测模块,基于双向长短时记忆神经网络模型,计算和比较物联网设备固件、漏洞所在函数的语义信息,结合第三方组件及CVE信息数据库模块实现对物联网设备固件中第三方组件的检测和风险报告。

与现有技术相比,本发明的有益效果为:

(1)本发明的物联网设备固件中第三方组件及其安全风险的跨架构自动化检测技术是基于逆向分析和深度学习进行固件安全分析,具体过程为:对物联网设备固件进行逆向破拆,对逆向后的文件进行字符串化和反汇编,结合漏洞数据库基于模式匹配进行第三方组件及其安全风险的检测,结合漏洞数据库基于相似性比较进行第三方组件及其安全风险的检测。可见在整个过程中无需获取固件源代码,也不依赖实际的物联网设备,扫描和检测过程完全自动化,弥补了基于源代码的静态分析技术和基于设备的动态分析技术的缺陷,可以直接应用于闭源的物联网设备固件安全性分析上,能够高效地检测和挖掘其中的第三方组件及其安全风险。

(2)本发明的方法和系统只需修改其中的部分单元即可将检测能力拓展到其它架构上,并能实现跨架构的固件漏洞挖掘。如将该方法应用到使用新架构的物联网设备固件上,需要在相应架构的编译链环境中编译第三方组件的源代码,提取中间二进制产物反汇编并添加到相似性比较模型训练单元的训练集中;基于匹配的第三方组件风险检测模块更是不受架构影响。

(3)本发明将自然语言处理技术中的词向量模型改进并应用到代码相似性检测中,并创新性地将其应用到固件安全性分析中,相似度达到一定阈值时即认为固件存在相应的安全风险;同时基于匹配的第三方组件风险检测模块相互印证,经检验取得了较高的准确率。

附图说明

图1为面向第三方组件及其安全风险的跨架构自动化检测系统的整体模块结构图;

图2 为基于匹配的第三方组件风险检测模块工作流程图;

图3 为基于相似性比较的第三方组件风险检测模块工作流程图。

具体实施方式

下面结合附图和实施例对本发明作进一步详细描述,需要指出的是,以下实施例旨在便于对本发明的理解,而对其不起任何限定作用。

本发明提供了一种物联网设备固件中第三方组件及其安全风险的跨架构自动化检测方法,该方法通过压缩、反编译固件,结合自建的漏洞信息库比较、分析代码中的第三方组件特征信息、代码语义信息,自动化收集、检索固件的第三方组件并收集、比较和检索相应第三方组件的CVE(Common Vulnerabilities & Exposures)。具体包括以下步骤:

步骤一,对物联网设备固件进行识别、逆向,对逆向产物进行分类和提取,并对其中的二进制可执行文件进行反汇编挖掘其中的语义信息;包括以下步骤:

(1-1)根据物联网设备固件的压缩特征,识别给定物联网设备固件的架构、文件系统和压缩方式,并根据压缩方式对固件进行逆向处理;

(1-2)结合识别得到的文件系统对逆向后的文件进行分类和提取,收集其中的二进制可执行文件并根据二进制文件的架构、类型进行分类;对于非二进制文件,将其转换成字符串文本文件进行处理;

(1-3)对于步骤(1-2)中获取的二进制文件,根据二进制文件的架构(ARM,X86或MIPS)进行反汇编处理,将其转换成对应架构的汇编码;

(1-4)以函数为单元将汇编码分割成更细粒度的结构单元,并将分割得到的函数单元按逻辑顺序排列,完成物联网设备固件语义信息的挖掘;

步骤二,建立包含第三方组件及其已知CVE(Common Vulnerabilities &Exposures)的数据库,结合模式匹配自动扫描、收集物联网设备固件中的第三方组件,并收集、检索相应第三方组件的CVE;包括以下步骤:

(2-1)基于公开的CVE信息库,构建由第三方组件及其版本到CVE信息,再到漏洞所在函数与文件的映射关系;

(2-2)自动化扫描步骤(1-2)中获取的字符串文件,以第三方组件名为特征采用贪婪匹配原则进行第一次粗粒度匹配并记录固件中使用到的第三方组件;提取包含第三方组件和版本号的字符串,并按组合模式进行分类,对同一模式下的全部字符串总结其规则得到正则表达式,添加到规则名单中;

(2-3)基于步骤(2-2)更加完备的匹配规则名单,自动化扫描步骤(1-2)中获取的字符串文件,以第三方组件名和版本号为特征采用贪婪匹配原则进行第二次细粒度的匹配并记录固件中使用到的第三方组件及其版本号;结合步骤(2-1)建立的CVE数据库,检索固件中第三方组件的CVE,实现对物联网设备固件中由第三方组件引起的安全风险的检测并输出报告;

(2-4)设计基于统计的收集策略避免遗漏跨行匹配规则。步骤(2-2)的扫描匹配以行为单元进行,若在此过程中第三方组件和其版本号跨行分布则需要收集多行字符串以同时囊括组件名和版本号。以完整固件数据集的一个子集上作为测试对象,比较不同行数下获得的规则数量和扫描时间比,选择最佳的行数作为最终的收集策略。

步骤三,通过有机结合漏洞汇编码的语义信息、固件汇编码的语义信息实现跨架构、基于深度学习的相似性比较,并对特定模式漏洞进行自动化挖掘和验证;包括以下步骤:

(3-1)结合步骤(2-1)建立的CVE数据库,分别在不同架构的编译链环境(X86、ARM和MIPS)编译第三方组件的相应版本的源代码,并从作为中间产物的二进制可执行文件中提取漏洞所在的二进制文件;根据二进制文件的架构进行反汇编处理,将其转换成对应架构的汇编码;

(3-2)以函数为单元将汇编码分割成更细粒度的结构单元,并提取出漏洞所在的函数;

(3-3)将得到的汇编码作为深度学习相似性比较的训练数据。对源自相同源代码、由不同编译链编译得到的汇编码标记为相似,对源自不同源代码编译得到的汇编码标记为不相似;汇编码中的操作符和操作数被视为自然语言中的词,汇编指令被视为自然语言中的句子,跨架构指令得语义比较则被视为自然语言翻译。上述汇编码训练数据经由双向长短时记忆神经网络训练后得到一个相似度计算模型;该模型以两组允许跨架构的汇编码序列作为输入,以一个相似度结果作为输出;

(3-4)在步骤(1-3)得到物联网设备固件以函数为单元的汇编码和(3-2)得到漏洞所在函数汇编码的基础上,将漏洞所在函数的汇编码和固件各个函数汇编码进行逐一比较,即将两者作为输入到步骤(3-3)得到的相似性计算模型得到相似度;

(3-5)选取若干个相似度最高的固件函数作为潜在安全风险所在并输出报告。

本发明通过四个模块实现上述步骤,如图1所示,包括物联网设备固件逆向提取模块、第三方组件及CVE信息数据库模块、基于匹配的第三方组件风险检测模块和基于相似性比较的第三方组件风险检测模块。

(1)物联网设备固件逆向提取模块的作用是根据物联网设备固件的压缩特征,识别给定物联网设备固件的架构、文件系统和压缩方式,并根据压缩方式对固件进行逆向处理。

结合识别得到的文件系统对逆向后的文件进行分类和提取,收集其中的二进制可执行文件并根据二进制文件的架构、类型进行分类;对于非二进制文件,将其转换成字符串文本文件进行处理。

对于上述获取的二进制文件,根据二进制文件的架构(ARM,X86或MIPS)进行反汇编处理,将其转换成对应架构的汇编码。以函数为单元将汇编码分割成更细粒度的结构单元,并将分割得到的函数单元按逻辑顺序排列,完成物联网设备固件语义信息的挖掘。

(2)第三方组件及CVE信息数据库模块的作用是基于公开的CVE信息库,构建由第三方组件及其版本到CVE信息,再到漏洞所在函数与文件的映射关系。这一模块的功能是向基于匹配的第三方组件风险检测模块和基于相似性比较的第三方组件风险检测模块提供数据支持。

(3)基于匹配的第三方组件风险检测模块的作用是其基于字符串模式匹配的策略检索物联网设备固件中的第三方组件特征,结合第三方组件及CVE信息数据库模块实现对物联网设备固件中第三方组件的有效检测和风险报告。该模块的工作流程如图2所示。

粗粒度检测单元自动化扫描由模块一获取的字符串文件,以第三方组件名为特征采用贪婪匹配原则进行第一次粗粒度匹配并记录固件中使用到的第三方组件;规则提取单元提取包含第三方组件和版本号的字符串,并按组合模式进行分类,对同一模式下的全部字符串总结其规则得到正则表达式,添加到规则名单中。

基于步骤上述更加完备的匹配规则名单,细粒度检测单元自动化扫描由模块一获取的字符串文件,以第三方组件名和版本号为特征采用贪婪匹配原则进行第二次细粒度的匹配并记录固件中使用到的第三方组件及其版本号;结合步骤二建立的CVE数据库,检索固件中第三方组件的CVE。

(4)基于相似性比较的第三方组件风险检测模块的作用是其基于自然语言处理中的双向长短时记忆神经网络模型,用于计算和比较物联网设备固件、漏洞所在函数的语义信息,结合第三方组件及CVE信息数据库模块实现对物联网设备固件中第三方组件的有效检测和风险报告。该模块的工作流程如图3所示。

漏洞定位单元分别在不同架构的编译链环境(X86、ARM和MIPS)编译第三方组件的相应版本的源代码,并从作为中间产物的二进制可执行文件中提取漏洞所在的二进制文件;根据二进制文件的架构进行反汇编处理,将其转换成对应架构的汇编码。以函数为单元将汇编码分割成更细粒度的结构单元,并提取出漏洞所在的函数。

相似性比较模型训练单元将得到的汇编码作为深度学习相似性比较的训练数据。对源自相同源代码、由不同编译链编译得到的汇编码标记为相似,对源自不同源代码编译得到的汇编码标记为不相似;汇编码中的操作符和操作数被视为自然语言中的词,汇编指令被视为自然语言中的句子,跨架构指令得语义比较则被视为自然语言翻译。上述汇编码训练数据经由双向长短时记忆神经网络训练后得到一个相似度计算模型;该模型以两组允许跨架构的汇编码序列作为输入,以一个相似度结果作为输出;

相似性比较模型计算单元在步骤一得到物联网设备固件以函数为单元的汇编码和漏洞定位单元得到漏洞所在函数汇编码的基础上,将漏洞所在函数的汇编码和固件各个函数汇编码进行逐一比较,即将两者作为输入到相似性比较模型训练单元得到的相似性计算模型得到相似度。最终选取若干个相似度最高的固件函数作为潜在安全风险所在并输出报告。

实施例

为了进一步证明本发明的实施效果,本实施例对多个不同厂家、不同设备和不同架构的固件进行了实验。我们从多个厂家的官方网站上下载了物联网设备固件,记录了这些固件的厂家、所属设备、版本以及架构。此外,我们还依据CVE官方网站和第三方组件官方网站预先导入相关数据至第三方组件及CVE信息数据库模块。我们将本发明应用于若干个下载的固件,实现了物联网设备固件第三方组件及其安全风险的检测,并对相应的结果进行了人工验证。

固件信息及实验数据如表1所示。其中固件涵盖了四个厂家、两种不同的物联网设备以及两种不同的架构,证明该发明可以适应于不同的厂家、设备以及不同的架构。实验结果显示,本发明在五个固件中合计报告了108个第三方组件相关的安全风险,经人工验证核实后确定了102个有效的第三方组件相关的安全风险。和人工逆向分析相比,人工逆向分析需花费大量时间,且花费时间取决于分析人员的代码分析经验和熟练程度;而本发明的挖掘过程和分析人员的经验无关,花费时间较少,更为高效。和动态分析相比,动态分析需要购买相应的设备耗费额外资金,且无法应用于固件规模较大的场景。

因此根据实验,本发明能够高效自动地检测物联网设备固件中第三方组件相关的安全风险。

表1 固件信息及实验数据。

以上所述的实施例对本发明的技术方案和有益效果进行了详细说明,应理解的是以上所述仅为本发明的具体实施例,并不用于限制本发明,凡在本发明的原则范围内所做的任何修改、补充和等同替换等,均应包含在本发明的保护范围之内。

相关技术
  • 一种面向第三方组件及其安全风险的跨架构自动化检测方法与系统
  • 一种跨架构固件堆内存的缺陷检测方法及系统
技术分类

06120113807635