污点源识别方法、污点源识别装置、电子设备及介质制造方法及图纸

技术编号:39242209 阅读:10 留言:0更新日期:2023-10-30 11:54
本发明专利技术提供一种污点源识别方法、污点源识别装置、电子设备及介质。该方法包括:对目标固件中的每个函数分别对应的行为特征向量和目标特征矩阵进行相似度计算,确定所述每个函数的相似度得分,所述每个函数分别对应的行为特征向量基于所述目标固件中的二进制程序确定,所述目标特征矩阵基于内存操作函数对应的行为特征向量构建;基于所述每个函数的相似度得分,确定作为污点源的目标函数,所述目标函数用于进行污点分析。本发明专利技术提供的污点源识别方法,可以对目标固件中的二进制程序进行自定义函数中的污点源确定,并进行污点分析,达到了有效发现二进制程序存在的安全缺陷。有效发现二进制程序存在的安全缺陷。有效发现二进制程序存在的安全缺陷。

【技术实现步骤摘要】
污点源识别方法、污点源识别装置、电子设备及介质


[0001]本专利技术涉及软件安全
,尤其涉及一种污点源识别方法、污点源识别装置、电子设备及介质。

技术介绍

[0002]固件是嵌入式设备运行的核心。由于固件存在各种漏洞和设计缺陷,也逐渐成为各种网络攻击的目标。固件源代码及相关文档通常不会被公开,运行在物联网设备上的固件中的可执行二进制程序漏洞是网络攻击的根本原因,二进制程序漏洞严重影响设备的机密性、可用性和可靠性。可执行二进制程序的执行与底层硬件设计密切相关,很难采用传统软件动态分析技术,例如:程序执行反馈信息难以收集。此外,动态分析受限于执行环境和具体测试用例,在实际使用中会存在很多漏报。
[0003]因此,静态分析更适用于嵌入式设备固件分析。现有针对固件的静态分析技术以污点分析技术为主,通过标识外部用户输入数据接口库函数为污点源函数,对应数据标识污点标签,然后追踪污点数据是否在未经消毒的情况下被危险操作函数使用。然而,由于固件中二进制程序的复杂性,使用接口库函数作为污点源往往只能识别路径较浅的漏洞,对于经过多次函数调用后才可能触发的漏洞,由于函数指针、间接调用、数据别名等问题导致数据流难以恢复而造成漏报。

技术实现思路

[0004]本专利技术提供一种污点源识别方法、污点源识别装置、电子设备及介质,用以解决现有技术中固件的二进制程序存在的安全缺陷容易漏报的问题。
[0005]本专利技术提供一种污点源识别方法,包括:
[0006]对目标固件中的每个函数分别对应的行为特征向量和目标特征矩阵进行相似度计算,确定所述每个函数的相似度得分,所述每个函数分别对应的行为特征向量基于所述目标固件中的二进制程序确定,所述目标特征矩阵基于内存操作函数对应的行为特征向量构建;
[0007]基于所述每个函数的相似度得分,确定作为污点源的目标函数,所述目标函数用于进行污点分析。
[0008]在一些实施例中,所述对目标固件中的每个函数分别对应的行为特征向量和目标特征矩阵进行相似度计算之前,所述方法还包括:
[0009]基于所述每个函数的控制流图和程序调用图,确定所述每个函数的函数行为结构特征;
[0010]基于所述二进制程序、所述控制流图和所述程序调用图,确定所述每个函数的函数流特征;
[0011]基于所述每个函数的行为结构特征和所述每个函数的函数流特征,确定所述每个函数分别对应的行为特征向量。
[0012]在一些实施例中,所述基于所述每个函数的相似度得分,确定作为污点源的目标函数之后,所述方法还包括:
[0013]基于所述目标函数引入的数据流,建立数据流依赖关系;
[0014]基于所述数据流依赖关系和汇聚函数,进行污点分析。
[0015]在一些实施例中,所述基于所述每个函数的相似度得分,确定作为污点源的目标函数,包括:
[0016]将所述相似度得分超过第一阈值的函数确定为作为潜在污点源的函数;
[0017]对所述作为潜在污点源的函数进行动态验证或者静态分析,确定所述目标函数。
[0018]在一些实施例中,所述函数行为结构特征包括以下至少一项:基本块数、循环的存在性、调用者数量、参数数量、调用内存操作函数的数量和调用库函数的数量。
[0019]在一些实施例中,所述函数流特征包括以下至少一项:参数控制是否循环、参数是否控制条件分支、参数是否传递给内存操作函数、参数是否包含字符串和所有调用点中不同字符串的数量。
[0020]本专利技术还提供一种污点源识别装置,包括:
[0021]第一确定模块,用于对目标固件中的每个函数分别对应的行为特征向量和目标特征矩阵进行相似度计算,确定所述每个函数的相似度得分,所述每个函数分别对应的行为特征向量基于所述目标固件中的二进制程序确定,所述目标特征矩阵基于内存操作函数对应的行为特征向量构建;
[0022]第二确定模块,用于基于所述每个函数的相似度得分,确定作为污点源的目标函数,所述目标函数用于进行污点分析。
[0023]本专利技术还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述污点源识别方法。
[0024]本专利技术还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述污点源识别方法。
[0025]本专利技术还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述污点源识别方法。
[0026]本专利技术提供的污点源识别方法、污点源识别装置、电子设备及介质,通过将固件中的每个函数分别对应的行为特征向量和目标特征矩阵进行相似度分析,从而可以分析自定义函数和内存操作函数的行为相似性,然后确定可以作为污点源的目标函数,基于作为污点源的目标函数作对固件进行污点分析,缩短潜在的数据依赖关系,可以有效发现目标固件中二进制程序存在的安全缺陷,还可以在应用于嵌入式设备的目标固件中的二进制程序分析时,避免由于污点源到汇聚点路径距离远、分析难度大而导致的数据依赖关系恢复不准确和不全面的问题。
附图说明
[0027]为了更清楚地说明本专利技术或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些
附图获得其他的附图。
[0028]图1是本专利技术提供的污点源识别方法的流程示意图之一;
[0029]图2是本专利技术提供的污点源识别方法的漏洞触发示意图;
[0030]图3是本专利技术提供的污点源识别方法的流程示意图之二;
[0031]图4是本专利技术提供的污点源识别装置的结构示意图;
[0032]图5是本专利技术提供的电子设备的结构示意图。
具体实施方式
[0033]为使本专利技术的目的、技术方案和优点更加清楚,下面将结合本专利技术中的附图,对本专利技术中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0034]相关技术中,物联网(Internet of Things,IoT)设备在现代社会中越来越普遍。物联网设备在极大便利我们日常生活的同时,由于其固件存在各种漏洞和设计缺陷,也逐渐成为各种网络攻击的目标。在所有物联网设备中,连接互联网的嵌入式设备,如路由器、接入点和网关,比其他设备更容易受到攻击,主要是因为在这些设备的固件中,网络服务具有复杂的实现,并且通常包含可利用的漏洞,直接暴露于网络访问中。此外,这些设备作为本地网络的入口点,经常被利用作为桥梁,对同一网络内的其他邻近通信和简单实现的物联网设备(如智能插头和清洁机器人等)发动攻击。主动发现物联网设备中的脆弱性并及时修复是应本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种污点源识别方法,其特征在于,包括:对目标固件中的每个函数分别对应的行为特征向量和目标特征矩阵进行相似度计算,确定所述每个函数的相似度得分,所述每个函数分别对应的行为特征向量基于所述目标固件中的二进制程序确定,所述目标特征矩阵基于内存操作函数对应的行为特征向量构建;基于所述每个函数的相似度得分,确定作为污点源的目标函数,所述目标函数用于进行污点分析。2.根据权利要求1所述的污点源识别方法,其特征在于,所述对目标固件中的每个函数分别对应的行为特征向量和目标特征矩阵进行相似度计算之前,所述方法还包括:基于所述每个函数的控制流图和程序调用图,确定所述每个函数的函数行为结构特征;基于所述二进制程序、所述控制流图和所述程序调用图,确定所述每个函数的函数流特征;基于所述每个函数的行为结构特征和所述每个函数的函数流特征,确定所述每个函数分别对应的行为特征向量。3.根据权利要求1所述的污点源识别方法,其特征在于,所述基于所述每个函数的相似度得分,确定作为污点源的目标函数之后,所述方法还包括:基于所述目标函数引入的数据流,建立数据流依赖关系;基于所述数据流依赖关系和汇聚函数,进行污点分析。4.根据权利要求1所述的污点源识别方法,其特征在于,所述基于所述每个函数的相似度得分,确定作为污点源的目标函数,包括:将所述相似度得分超过第一阈值的函数确定为作为潜在污点源的函数;对所述作为潜在污点源的函数进行动态验证或者静态分析,确定所述目标函数。5.根据权利要求1

【专利技术属性】
技术研发人员:孙利民刘圃卓李志刘明东宋站威
申请(专利权)人:中国科学院信息工程研究所
类型:发明
国别省市:

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

1