针对大规模嵌入式设备固件的函数搜索方法和搜索引擎技术

技术编号:13295834 阅读:236 留言:0更新日期:2016-07-09 13:55
本发明专利技术涉及一种针对大规模嵌入式设备固件的函数搜索方法和搜索引擎。首先收集固件并进行预处理,依据所提取的函数信息构建固件函数信息库;然后采用基于最小哈希的方法对同平台、同编译选项的函数进行快速离线聚类,从而压缩函数信息库的样本数量;再对固件函数信息进一步处理,从中抽取出索引项,构建固件函数索引数据库。待测固件函数进行关联检索时,采用基于最小哈希的方法依次在固件函数索引数据库中检索、识别与待关联函数同平台同编译选项和不同平台同编译选项的函数;而后再检索、识别与待关联函数同平台不同编译选项的函数,并以所得检索结果为跳板,去搜索与跳板不同平台同编译选项的函数。本发明专利技术能够提高固件函数关联的速率和准确率。

【技术实现步骤摘要】

本专利技术涉及嵌入式设备固件搜索与漏洞函数关联分析领域,具体涉及一种针对大规模嵌入式设备固件的函数搜索方法和函数搜索引擎。
技术介绍
工业控制系统的重要性、脆弱的安全状况以及日益严重的攻击威胁,已引起了世界各国的高度重视,并在政策、标准、技术、方案等方面展开了积极应对。历史上由于相对封闭的使用环境,工业控制系统在开发时多重视系统的功能实现,对安全的关注相对缺乏。不像传统IT信息系统软件在开发时拥有严格的安全软件开发规范及安全测试流程,这必然造成工业控制系统不可避免地拥有较多的安全缺陷。据统计,2011年至2013年公开的工业控制系统漏洞多达330个,且呈现逐年递增的趋势,并且其中高危漏洞占比达到54%。在伊朗核电站的“震网病毒”事件之后,大量高风险未公开漏洞被地下经济出卖或被某些国家/组织高价收购,并被利用来开发0-day攻击或高级可持续性威胁(AdvancedPersistentThreat,简称APT)的攻击技术,为未来可能的网络对抗做准备。因此,利用0-day漏洞的新型攻击正成为网络空间安全防护的新挑战,而涉及国计民生的电力、交通、市政、化工、关键制造业等行业的工业控制系统在工业化和信息化日益融合的今天,将极大可能地成为未来网络战的重要攻击目标。工业控制设备(PLC、SCADA、RTU、变频器、运动控制器、智能电表、工业交换机等)作为工业控制系统中的传感器和最终执行器,它们在工业控制系统中发挥着重要的作用。NVD中仅PLC设备的公开漏洞就多达38个,其中高危漏洞24个。目前针对工业控制设备的漏洞挖掘方法主要是对特定设备进行一对一的漏洞挖掘。但是由于代码的模块化设计和开源共享等原因,工控设备漏洞有着强关联的特点,即存在于某设备固件中的某函数的漏洞往往也会存在于其他设备的固件中。目前缺少一种利用固件中的函数之间的关联性,将已挖掘到的设备固件漏洞自动扩散到其他设备的自动化方法。
技术实现思路
本专利技术旨在提供一种针对大规模嵌入式设备固件的函数搜索方法和函数搜索引擎,基于该搜索引擎可以实现漏洞函数的快速发现。本专利技术利用固件中的函数之间的关联性,将已挖掘到的设备固件漏洞自动扩散到其他设备,以便为厂商提供及时预警。本专利技术涉及的方法流程主要包括:嵌入式设备固件收集、固件预处理、固件函数索引数据库构建、固件函数检索、结果输出显示等步骤。本专利技术的技术创新点在于进行固件函数关联分析时,首先识别同平台、不同编译选项的函数,并以此作为跳板,去搜索同编译选项、不同平台的函数,提高了函数关联的速度、准确率。为实现上述目的,本专利技术采用如下技术方案:一种针对大规模嵌入式设备固件的函数搜索方法,包括以下步骤:1)收集嵌入式设备的固件并构建固件库;2)对步骤1)中固件库中的固件进行预处理得到固件函数信息,并存入固件函数信息库;3)收集常用的开源软件,针对每一份源码,通过不同平台、不同编译选项编译生成多份不同的二进制镜像文件,采用步骤2)中的方法对得到的二进制镜像文件进行预处理,得到二进制镜像文件中的函数信息,亦存入固件函数信息库;4)对固件函数信息库中同平台、同编译选项的固件函数进行快速离线聚类;5)对步骤4)中进行快速离线聚类后得到的固件函数信息做进一步处理,从中抽取索引项,构建固件函数索引数据库;6)任选一非固件库中存储的固件,依据步骤2)中的方法对该固件进行预处理,得到固件中的函数信息;7)基于步骤6)中得到的某固件函数信息,定制相应的检索策略,而后通过固件函数索引数据库检索、识别与之相关的函数。进一步地,步骤1)中,收集嵌入式设备的固件主要是利用网页爬虫定期爬取各厂家在其固件更新网站上公开的固件及与之相关的发布日期、固件名称、版本号等信息,并将之存入固件库。进一步地,步骤2)中,针对固件库中的固件,主要是利用固件逆向分析工具和二进制反汇编工具,并辅以基址定位、符号表还原、函数识别等技术对固件进行预处理操作,得到固件中的函数信息,并存入固件函数信息库。进一步地,步骤3)中,所述不同平台包括,但不限于X86、ARM、MIPS、PowerPC、SPARC,所述不同编译选项包括-O0、-O1、-O2、-O3、-Os。进一步地,步骤4)中,采用基于最小哈希的方法对固件函数信息库中同平台、同编译选项的函数进行快速离线聚类。进一步地,步骤5)中,对上述离线聚类得到的固件函数信息进一步处理,从中抽取出索引项,将固件函数信息表示为一种便于检索的方式并存储在索引数据库中,生成用以检索固件函数库的索引表。进一步地,步骤6)中,采用步骤2)中的方法对于某任一非固件库存储的固件进行预处理,得到与该固件相关的函数信息。进一步地,步骤7)中,依据步骤6)中所获取的某固件的函数信息(包括函数的平台、编译选项等信息),采用基于最小哈希的方法依次在固件函数索引数据库中检索、识别与待关联函数同平台同编译选项和不同平台同编译选项的函数;而后再检索、识别与待关联函数同平台不同编译选项的函数,并以所得检索结果为跳板,去搜索与跳板函数不同平台同编译选项的函数。一种针对大规模嵌入式设备固件的函数搜索引擎,包括:固件收集模块:用于搜索、收集嵌入式设备的固件,并构建固件库;固件预处理模块:用于对固件库中的固件进行文件系统识别、基址定位、符号表还原及平台和编译选项识别等预处理操作,得到固件函数信息;固件函数离线聚类模块:采用基于最小哈希的方法对同平台、同编译选项的固件函数进行离线聚类;函数索引模块:用于对得到的固件函数信息进一步处理,从中抽取索引项,构建固件函数索引数据库;函数检索模块:用于针对具体的固件函数检索策略检索、识别固件函数索引数据库中与之相同或相似的固件函数;用户接口:用于向用户提供可视化的检索查询输入和检索结果输出界面,依据用户提供的检索查询策略,输出相应的检索查询结果。进一步地,固件预处理模块还包括通过收集常用的开源软件,针对每一份源码,选择不同的平台、不同的编译选项生成多份不同的二进制镜像文件,对得到的二进制镜像文件进行处理,得到二进制镜像文件中的函数信息。进一步地,函数检索模块和用户接口主要是依据用户定制的具体函数检索策略,输出显示Top5、Top10结果。本专利技术可以获得以下有益效果:本专利技术在对固件函数信息库中的固件函数进行离线聚类时,采用了基于最小哈希的方法,压缩了固件函数信息库的样本数量,提升了固件函数关联的速率。本专利技术在构建固件函数信息库时,一方面通过对固件库中收集的本文档来自技高网
...

【技术保护点】
一种针对大规模嵌入式设备固件的函数搜索方法,其特征在于,包括以下步骤:1)收集嵌入式设备的固件并构建固件库;2)对步骤1)中固件库中的固件进行预处理得到固件函数信息,并存入固件函数信息库;3)收集常用的开源软件,针对每一份源码,通过不同平台、不同编译选项编译生成多份不同的二进制镜像文件,采用步骤2)中的方法对得到的二进制镜像文件进行预处理,得到二进制镜像文件中的函数信息,亦存入固件函数信息库;4)对固件函数信息库中同平台、同编译选项的固件函数进行快速离线聚类;5)对步骤4)中进行快速离线聚类后得到的固件函数信息做进一步处理,从中抽取索引项,构建固件函数索引数据库;6)任选一非固件库中存储的固件,依据步骤2)中的方法对该固件进行预处理,得到固件中的函数信息;7)基于步骤6)中得到的某固件函数信息,定制相应的检索策略,而后通过固件函数索引数据库检索、识别与之相同或相似的函数。

【技术特征摘要】
1.一种针对大规模嵌入式设备固件的函数搜索方法,其特征在于,包括以下步骤:
1)收集嵌入式设备的固件并构建固件库;
2)对步骤1)中固件库中的固件进行预处理得到固件函数信息,并存入固件函数信息库;
3)收集常用的开源软件,针对每一份源码,通过不同平台、不同编译选项编译生成多份
不同的二进制镜像文件,采用步骤2)中的方法对得到的二进制镜像文件进行预处理,
得到二进制镜像文件中的函数信息,亦存入固件函数信息库;
4)对固件函数信息库中同平台、同编译选项的固件函数进行快速离线聚类;
5)对步骤4)中进行快速离线聚类后得到的固件函数信息做进一步处理,从中抽取索引
项,构建固件函数索引数据库;
6)任选一非固件库中存储的固件,依据步骤2)中的方法对该固件进行预处理,得到固
件中的函数信息;
7)基于步骤6)中得到的某固件函数信息,定制相应的检索策略,而后通过固件函数索
引数据库检索、识别与之相同或相似的函数。
2.如权利要求1所述的方法,其特征在于,步骤1)中,利用网页爬虫定期爬取各厂家在其
固件更新网站上公开的固件,以及与其相关的发布日期、固件名称、版本号,并将之存入
固件库。
3.如权利要求1所述的方法,其特征在于,步骤2)中,利用固件逆向分析工具和二进制反
汇编工具,并辅以基址定位、符号表还原、平台和编译选项识别技术对固件进行所述预处
理操作。
4.如权利要求1所述的方法,其特征在于,步骤3)中,所述不同平台包括X86、ARM、
MIPS、PowerPC、SPARC,所述不同编译选项包括-O0、-O1、-O2、-O3、-Os。
5.如权利要求1所述的方法,其特征在于,步骤4)中,采用基于最小哈希的方法对固件函
数信息库中同平台、同编译选项的函数进行快速离线聚类。
6.如权利要求5所述的方法,其特征在于,步骤5)中,将固件函数信息表示为便...

【专利技术属性】
技术研发人员:石志强陈昱王猛涛常青孙利民朱红松
申请(专利权)人:中国科学院信息工程研究所
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1