一种识别同源二进制文件的方法及系统技术方案

技术编号:17304490 阅读:33 留言:0更新日期:2018-02-18 22:34
本发明专利技术提供一种从数据库中识别同源二进制文件的方法和系统,所述数据库中包含复数个二进制的基础文件,所述方法包括:根据最小哈希算法,分别获得待识别文件的签名以及各基础文件的签名;对任意一个签名,根据分桶法对该签名进行分桶处理;根据倒排索引法和所有基础文件的分桶后的签名,获得与桶一一对应的字典,每个所述字典包含至少一个键值对;根据待识别文件的每个桶中的字符串,遍历对应的字典,根据匹配的键所对应的值,获得所述待识别文件的同源二进制文件。本发明专利技术采用最小哈希算法求取签名并采用局部敏感哈希算法进行分桶,能够显著地减少计算量,采用倒排索引的方法,对所有的签名建立索引表,提高识别同源二进制文件的速度。

A method and system for identifying homologous binary files

The present invention provides a method and system for identifying homologous binary files from the database, comprising a plurality of binary files of the basic database, the method includes: according to the minimum Hashi algorithm, respectively signed documents to identify the signature and the basic documents; for any signature, according to the bucket method of barrel processing of the signature; according to the barrel inverted index method and all basic documents after the signature, get corresponding to each of the barrels of the dictionary, the dictionary contains at least one key for each bucket; according to the string files to be identified in the traversal of the corresponding dictionary, according to the corresponding matching the key value, get the identification documents of homologous binary files. The invention uses minimum Hashi algorithm to get the signature and adopts the local sensitive Hashi algorithm to divide the bucket, which can significantly reduce the computation amount, and use inverted index method to set up index table for all signatures, so as to improve the recognition speed of the homologous binary files.

【技术实现步骤摘要】
一种识别同源二进制文件的方法及系统
本专利技术涉及针对嵌入式设备的漏洞挖掘
,更具体地,涉及识别同源二进制文件的方法及系统。
技术介绍
近年来,物联网设备以近乎成倍的速度接入网络,极大地方便了人们的生活。但这些智能设备因生产厂商安全意识不足广泛使用共享代码模块和第三方SDK而面临被攻击的风险。例如,2016年10月21日,黑客利用网络摄像头等设备采用分布式拒绝服务攻击(DDoS)方式攻击DNS提供商Dyn,破坏了一系列互联网大型网站,包括Spotify,Twitter,PayPal,Netflix等。媒体称这种攻击“历史上最严重的DDos攻击”,物联网设备的安全性受到更多的关注。当紧急安全事件发生时,现有技术只能通过修复相关的固件来抵御攻击。为了能够提前预知有漏洞的固件,有必要寻找一种能够识别同源二进制文件的匹配方法。现有的二进制文件比对方法是直接读入二进制数据进行比较,该方法较为直接,但缺少对程序整体逻辑的理解,只适用于若干字节变化的比较,基于汇编指令的比对方法以汇编指令作为分析对象,将二进制文件反汇编后进行对比。但该方法缺乏对程序逻辑的理解,只适合小文件的检索。
技术实现思路
本专利技术提供一种克服上述问题或者至少部分地解决上述问题的识别同源二进制文件的方法及系统。根据本专利技术的一个方面,提供一种从数据库中识别同源二进制文件的方法,所述数据库中包含复数个二进制的基础文件,所述方法包括:S1、根据最小哈希算法,分别获得待识别文件的签名以及各基础文件的签名;S2、对任意一个签名,根据分桶法对该签名进行分桶处理,其中,所有桶中含有字符个数相同的字符串;S3、根据倒排索引法和所有基础文件的分桶后的签名,获得与桶一一对应的字典,每个所述字典包含至少一个键值对,其中键为所述数据库中所有基础文件所对应的桶中去重后的字符串,值为包含该键的基础文件的标识;S4、根据所述待识别文件的每个桶中的字符串,遍历对应的字典,根据匹配的键所对应的值,获得所述待识别文件的同源二进制文件。优选地,所述步骤S1包括:S1.1、对待识别文件以及所有基础文件中的任意一个文件,根据运行最小哈希算法的最小哈希计算工具,获得该文件每一行代码的签名,其中,所有文件每一行代码的签名具有相同的字符数;S1.2、将所述每一行代码的签名均分为M个子签名,以使得该文件表示为行数为该文件的代码的行个数,列数为M的矩阵;S1.3、对该矩阵的每一列以相同规则获得一个子签名,以获得M个子签名的签名,作为该文件的签名。优选地,所述步骤S3包括:S3.1、创建与桶个数一致的复数个字典,且每个字典的编号与桶的编号一一对应;S3.2、统计所有基础文件对应任意一个桶的字符串,并对该同中的字符串进行去重处理;S3.3、将进行去重处理后的每个桶中的每个字符串,作为对应该桶编号的字典的一个键,将包含该字符串的基础文件的标识作为该键的值,以获得一个键值对。优选地,所述步骤1之前还包括对所述任意一个文件进行特征过滤处理,所述特征过滤处理包括:获得所述任意一个文件的字符串集合,所述字符串集合由复数个可打印的字符串组成;对所述字符串集合依次进行代码段字符串过滤和库符号表字符串过滤。优选地,对所述字符串集合进行代码段字符串过滤的步骤,进一步包括:检测所述可打印的字符串集合是否存在ELF头;若不存在,则过滤掉所述可打印的字符串集合中长度较短的字符串。优选地,对所述字符串集合进行库符号表字符串过滤的步骤包括:将用于被系统程序和用户程序调用的底层库函数名和变量信息作为内核级符号表字符串;将用于被用户程序调用的高层库函数名及变量信息作为系统级符号表字符串;将经过代码段字符串过滤的字符串集合中的所述内核级符号表字符串和系统级符号表字符串进行过滤。优选地,所述获得所述任意一个文件的字符串集合的步骤,包括通过字符串提取工具strings获得任意一个文件的字符串集合。优选地,所述可打印的字符串集合中长度较短的字符串为字符数小于6个的字符串。根据本专利技术的另一个方面,还提供一种从数据库中识别同源二进制文件的系统,所述数据库中包含复数个二进制的基础文件,所述系统包括:签名获得模块,用于根据最小哈希算法,分别获得待识别文件的签名以及各基础文件的签名;分桶模块,用于对任意一个签名,根据分桶法对该签名进行分桶处理,其中,所有桶中含有字符个数相同的字符串;键值对获得模块,用于根据倒排索引法和所有基础文件的分桶后的签名,获得与桶一一对应的字典,每个所述字典包含至少一个键值对,其中键为所有基础文件所对应的桶中去重后的字符串,值为包含该键的基础文件的标识;识别模块,用于根据所述待识别文件的每个桶中的字符串,遍历对应的字典,根据匹配的键所对应的值,获得所述待识别文件的同源二进制文件。本申请提出的一种从数据库中识别同源二进制文件的方法和系统采用最小哈希算法求取签名并采用局部敏感哈希算法进行分桶,能够显著地减少计算量,采用倒排索引的方法,对所有的签名建立索引表,提高识别同源二进制文件的速度。附图说明图1为根据本专利技术实施例的从数据库中识别同源二进制文件的流程示意图;图2为根据本专利技术实施例的步骤S1的流程示意图;图3为根据本专利技术实施例的步骤S3的流程示意图;图4为根据本专利技术实施例的从数据库中识别同源二进制文件的系统的功能框图。具体实施方式下面结合附图和实施例,对本专利技术的具体实施方式作进一步详细描述。以下实施例用于说明本专利技术,但不用来限制本专利技术的范围。为了克服现有技术的上述问题,本专利技术提供一种从数据库中识别同源二进制文件的方法,其中数据库中包含复数个二进制的基础文件,本方法参见图1,该方法包括:S1、根据最小哈希算法,分别获得待识别文件的签名以及各基础文件的签名;对于步骤S1来说,本专利技术首先需要对待识别的文件以及数据库中的所有基础文件根据最小哈希算法获得签名,最小哈希算法也是LSH(英文全称:LocalitySensitiveHash,中文名称:局部敏感哈希)算法的一种,可以用来快速估算两个集合的相似度。采用最小哈希算法能够将文件的原始内容(在本专利技术中,各文件的原始内容是指文件的字符串信息)均匀随机地映射为一个MinHash签名,并且相比传统的hash算法,相似内容产生的MinHash签名也具有相似性,即MinHash签名除了提供原始内容是否相等的信息外,还能额外提供不相等的原始内容的差异程度的信息。S2、对任意一个签名,根据分桶法对该签名进行分桶处理,其中,所有桶中含有字符个数相同的字符串;对于步骤S2来说,分桶法(bucketmethod)是把一排物品或者平面分成桶,每个桶分别维护自己内部的信息,以达到高效计算的目的的方法。由于签名同样是由字符串表示的,那么将字符串中的字符按顺序平均分配到每个桶中,并且所有文件属于同一个桶内的字符很大程度上是相邻的,从而能够更容易进行近邻查找,显著地减少计算量。S3、根据倒排索引法和所有基础文件的分桶后的签名,获得与桶一一对应的字典,每个所述字典包含至少一个键值对,其中键为所述数据库中所有基础文件所对应的桶中去重后的字符串,值为包含该键的基础文件的标识;对于步骤S3来说,倒排索引源于实际应用中需要根据属性的值来查找记录。这种索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。由于不本文档来自技高网...
一种识别同源二进制文件的方法及系统

【技术保护点】
一种从数据库中识别同源二进制文件的方法,所述数据库中包含复数个二进制的基础文件,其特征在于,所述方法包括:S1、根据最小哈希算法,分别获得待识别文件的签名以及各基础文件的签名;S2、对任意一个签名,根据分桶法对该签名进行分桶处理,其中,所有桶中含有字符个数相同的字符串;S3、根据倒排索引法和所有基础文件的分桶后的签名,获得与桶一一对应的字典,每个所述字典包含至少一个键值对,其中键为所述数据库中所有基础文件所对应的桶中去重后的字符串,值为包含该键的基础文件的标识;S4、根据所述待识别文件的每个桶中的字符串,遍历对应的字典,根据匹配的键所对应的值,获得所述待识别文件的同源二进制文件。

【技术特征摘要】
1.一种从数据库中识别同源二进制文件的方法,所述数据库中包含复数个二进制的基础文件,其特征在于,所述方法包括:S1、根据最小哈希算法,分别获得待识别文件的签名以及各基础文件的签名;S2、对任意一个签名,根据分桶法对该签名进行分桶处理,其中,所有桶中含有字符个数相同的字符串;S3、根据倒排索引法和所有基础文件的分桶后的签名,获得与桶一一对应的字典,每个所述字典包含至少一个键值对,其中键为所述数据库中所有基础文件所对应的桶中去重后的字符串,值为包含该键的基础文件的标识;S4、根据所述待识别文件的每个桶中的字符串,遍历对应的字典,根据匹配的键所对应的值,获得所述待识别文件的同源二进制文件。2.如权利要求1所述的从数据库中识别同源二进制文件的方法,其特征在于,所述步骤S1包括:S1.1、对待识别文件以及所有基础文件中的任意一个文件,根据运行最小哈希算法的最小哈希计算工具,获得该文件每一行代码的签名,其中,所有文件每一行代码的签名具有相同的字符数;S1.2、将所述每一行代码的签名均分为M个子签名,以使得该文件表示为行数为该文件的代码的行个数,列数为M的矩阵;S1.3、对该矩阵的每一列以相同规则获得一个子签名,以获得具有M个子签名的签名,作为该文件的签名。3.如权利要求1或2所述的从数据库中识别同源二进制文件的方法,其特征在于,所述步骤S3包括:S3.1、创建与桶个数一致的复数个字典,且每个字典的编号与桶的编号一一对应;S3.2、统计所有基础文件对应任意一个桶的字符串,并对该同中的字符串进行去重处理;S3.3、将进行去重处理后的每个桶中的每个字符串,作为对应该桶编号的字典的一个键,将包含该字符串的基础文件的标识作为该键的值,以获得一个键值对。4.如权利要求3所述的从数据库中识别同源二进制文件的方法,其特征在于,所述步骤1之前还包括对所述任意一个文件进行特征过滤处理,所述特征过滤处理包括:获得所述任意一个文件的字符串集...

【专利技术属性】
技术研发人员:石志强陈昱赵威威李红孙利民
申请(专利权)人:中国科学院信息工程研究所
类型:发明
国别省市:北京,11

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

1