一种基于相似度分析的固件密码库检测方法和装置制造方法及图纸

技术编号:37114168 阅读:9 留言:0更新日期:2023-04-01 05:10
本发明专利技术属于物联网安全技术领域,公开一种基于相似度分析的固件密码库检测方法和装置,其中方法包括:构建公开密码库数据集,获取公开密码库数据集的二进制文件作为数据集二进制文件,并对待检测的固件进行解包获取固件的二进制文件作为待分析二进制文件;将待分析二进制文件与数据集二进制文件进行文件相似度分析,以识别公开密码库;在未识别到公开密码库的文件里,根据文件的相似度进行聚类,以识别出私有密码库。本发明专利技术的方法在进行相似度分析的过程中,不仅利用了函数内部的特征,还将函数间的先后顺序作为相似度识别的依据,从而能够确认识别出物联网固件中的密码库,并恢复出库中所有函数的API,极大的方便后续的安全分析工作。分析工作。分析工作。

【技术实现步骤摘要】
一种基于相似度分析的固件密码库检测方法和装置


[0001]本专利技术涉及物联网安全
,特别涉及一种基于相似度分析的固件密码库检测方法和装置。

技术介绍

[0002]物联网设备多种多样,如何保障物联网设备的安全性是一个十分困难的问题。为了保障物联网设备的安全性,安全分析人员往往需要对物联网设备的固件进行安全分析,这个过程中,需要对固件进行解包并对其中的二进制文件进行逆向分析。在逆向分析的过程中,安全人员需要分析其中网络协议的合法性,尤其是加密算法的使用情况以保证物联网设备的通信安全,而在编译过程中,密码库可能会以静态链接的形式与各种文件混合在一起,从而难以识别和区分,需要进一步的进行识别。
[0003]目前传统的密码算法识别方法是利用密码函数中的常量、控制流和数据流等特征进行密码函数的识别,无法识别其中的密码库和API,上述方法具有以下缺陷:
[0004](1)传统的密码算法识别方法是以函数粒度进行的,每次对一个单一的函数进行识别,而这些方法利用的特征往往只出现于一个密码套件的一个或几个函数中,因此函数粒度的识别方法也只能识别出一个密码套件中一个或几个函数,其余无法识别的部分还是需要人工的分析进行补足,无法自动化的识别出一个固件中全部的密码函数;
[0005](2)传统的密码算法识别方法只利用了密码算法本身的特征在函数粒度进行识别,因此只能识别出密码函数可能使用的密码算法,能够提供给分析人员的信息十分有限。密码函数的函数名、参数等API相关的信息对于密码函数的分析也十分有用,但是这些信息在不同的密码库中存在着较大的差异,与函数本身的特征并无太大关联,因此传统的方法无法进行识别。

技术实现思路

[0006]本专利技术实施例提供了一种基于相似度分析的固件密码库检测方法和装置,可以利用函数以及文件之间的相似度来识别物联网设备固件中密码库及对应API。为了对披露的实施例的一些方面有一个基本的理解,下面给出了简单的概括。该概括部分不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围。其唯一目的是用简单的形式呈现一些概念,以此作为后面的详细说明的序言。
[0007]根据本专利技术实施例的第一方面,提供了一种基于相似度分析的固件密码库检测方法,包括:
[0008]构建公开密码库数据集,获取公开密码库数据集的二进制文件作为数据集二进制文件,并对待检测的固件进行解包获取固件的二进制文件作为待分析二进制文件;
[0009]将待分析二进制文件与数据集二进制文件进行文件相似度分析,以识别出固件的二进制文件中的公开密码库;
[0010]在待分析二进制文件中未识别到公开密码库的文件里,根据文件的相似度进行聚
类,以识别出待分析二进制文件中的私有密码库。
[0011]在一个实施例中,该方法在执行完识别出待分析二进制文件中的私有密码库的步骤之后,进一步包括:
[0012]对待分析二进制文件中的公开密码库的密码函数与数据集二进制文件的API进行映射,提取出待分析二进制文件中的公开密码库的密码函数的API。
[0013]在一个实施例中,该方法在执行识别出待分析二进制文件中的私有密码库的步骤之后,进一步包括:
[0014]通过静态分析解析待分析二进制文件中的私有密码库重每个函数的参数数量和类型,提取出待分析二进制文件中的私有密码库的密码函数的API。
[0015]在一个实施例中,该方法构建公开密码库数据集,获取公开密码库数据集的二进制文件作为数据集二进制文件的步骤进一步包括:
[0016]在同一公开密码库的不同二进制文件之间进行相似度分析,并根据相似度分析结果对公开密码库数据集的全部二进制文件进行去重,以得到数据集二进制文件。
[0017]在一个实施例中,该方法对待检测的固件进行解包获取固件的二进制文件作为待分析二进制文件的步骤进一步包括:
[0018]对待检测的固件进行解包获取到固件的全部二进制文件,对固件的全部二进制文件进行密码算法识别,并以包含密码算法的固件的二进制文件作为待分析二进制文件。
[0019]在一个实施例中,该方法对待检测的固件进行解包获取固件的二进制文件作为待分析二进制文件的步骤进一步包括:
[0020]对待检测的固件进行解包获取到固件的全部二进制文件,对固件的全部二进制文件进行密码算法识别,并以包含第一阈值以上数量的密码算法的固件的二进制文件作为待分析二进制文件。
[0021]在一个实施例中,该方法将待分析二进制文件与数据集二进制文件进行文件相似度分析,以识别出固件的二进制文件中的公开密码库的步骤进一步包括:
[0022]通过函数间相似度的方式对待分析二进制文件与数据集二进制文件进行文件相似度分析。
[0023]在一个实施例中,该方法函数间相似度包括函数整体相似度以及完全匹配的基本块数量。
[0024]在一个实施例中,该方法将待分析二进制文件与数据集二进制文件进行文件相似度分析,以识别出固件的二进制文件中的公开密码库的步骤还包括:
[0025]通过函数序列间相似度的方式对待分析二进制文件与数据集二进制文件进行文件相似度分析。
[0026]在一个实施例中,该方法在同一公开密码库的不同二进制文件之间进行相似度分析,并根据相似度分析结果对公开密码库数据集的全部二进制文件进行去重,以得到数据集二进制文件的步骤进一步包括:
[0027]如果同一公开密码库的两个二进制文件中函数列表完全相同且对应函数的相似度达到第二阈值以上,则认为两个二进制文件相似,并将两个二进制文件进行去重。
[0028]在一个实施例中,该方法对固件的全部二进制文件进行密码算法识别的步骤进一步包括:
[0029]利用IDAPro及其插件findcrypt

yara对密码算法进行识别。
[0030]在一个实施例中,该方法函数间相似度由bindiff计算得出。
[0031]在一个实施例中,该方法通过函数序列间相似度的方式对待分析二进制文件与数据集二进制文件进行文件相似度分析的步骤进一步包括:
[0032]根据相似的函数的数量或函数之间的先后顺序中至少一种因素计算函数序列间相似度。
[0033]根据本专利技术实施例的第二方面,提供了一种基于相似度分析的固件密码库检测装置。
[0034]在一个实施例中,该装置包括数据集构建模块、公开密码库识别模块、私有密码库识别模块和API提取模块;其中,
[0035]数据集构建模块,用于构建公开密码库数据集,获取公开密码库数据集的二进制文件作为数据集二进制文件,并对待检测的固件进行解包获取固件的二进制文件作为待分析二进制文件;
[0036]公开密码库识别模块,用于将待分析二进制文件与数据集二进制文件进行文件相似度分析,以识别出固件的二进制文件中的公开密码库;
[0037]私有密码库识别模块,用于在待分析二进制文件中未识别到公开密码库的文件里,根据文件的相似度进行聚本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于相似度分析的固件密码库检测方法,其特征在于,包括:构建公开密码库数据集,获取所述公开密码库数据集的二进制文件作为数据集二进制文件,并对待检测的固件进行解包获取所述固件的二进制文件作为待分析二进制文件;将所述待分析二进制文件与所述数据集二进制文件进行文件相似度分析,以识别出所述固件的二进制文件中的公开密码库;在所述待分析二进制文件中未识别到所述公开密码库的文件里,根据所述文件的相似度进行聚类,以识别出所述待分析二进制文件中的私有密码库。2.根据权利要求1所述的基于相似度分析的固件密码库检测方法,其特征在于,在执行完识别出所述待分析二进制文件中的私有密码库的步骤之后,所述方法进一步包括:对所述待分析二进制文件中的公开密码库的密码函数与所述数据集二进制文件的API进行映射,提取出所述待分析二进制文件中的公开密码库的密码函数的API。3.根据权利要求2所述的基于相似度分析的固件密码库检测方法,其特征在于,在执行识别出所述待分析二进制文件中的私有密码库的步骤之后,所述方法进一步包括:通过静态分析解析所述待分析二进制文件中的私有密码库重每个函数的参数数量和类型,提取出所述待分析二进制文件中的私有密码库的密码函数的API。4.根据权利要求3所述的基于相似度分析的固件密码库检测方法,其特征在于,构建公开密码库数据集,获取所述公开密码库数据集的二进制文件作为数据集二进制文件的步骤进一步包括:在同一所述公开密码库的不同二进制文件之间进行相似度分析,并根据所述相似度分析结果对所述公开密码库数据集的全部二进制文件进行去重,以得到所述数据集二进制文件。5.根据权利要求4所述的基于相似度分析的固件密码库检测方法,其特征在于,对待检测的固件进行解包获取所述固件的二进制文件作为待分析二进制文件的步骤进一步包括:对待检测的所述固件进行解包获取到所述固件的全部二进制文件,对所述固件的全部二进制文件进行密码算法识别,并以包含密码算法的所述固件的二进制文件作为所述待分析二进制文件。6.根据权利要求4所述的基于相似度分析的固件密码库检测方法,其特征在于,对待检测的固件进行解包获取所述固件的二进制文件作为待分析二进制文件的步骤进一步包括:对待检测的所述固件进行解包获取到所述固件的全部二进制文件,对所述固件的全部二进制文件进行密码算法识别,并以包含第一阈值以上数量的密码算法的所述固件的二进制文件作为所述待分析二进制文件。7.根据权利要求5或6所述的基于相似度分析的固件密码库检测方法,其特征在于,将所述待分析二进制文件与所述数据集二进制文件进行文件相似度分析,以识别出所述固件的二进制文件中的公开密码库的步骤进一步包括:通过函数间相似度的方式对所述待分析二进制文件与所述数据集二进制文件进行文件相似度分析。8.根据权利要求7所述的基于相似度分析的固件密码库检测方法,其特征在于,所述函数间相似度包括函数整体相似度以及完全匹配的基本块数量。9.根据权利要求8所述的基于相似度分析的固件密码库检测方法,其特征...

【专利技术属性】
技术研发人员:刘冬兰刘新王睿张昊张方哲孙莉莉王勇郭山清胡程瑜赵大伟徐丽娟陈剑飞马雷姚洪磊于灏秦佳峰苏冰井俊双赵夫慧
申请(专利权)人:国家电网有限公司
类型:发明
国别省市:

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

1