恶意代码检测方法及装置、电子设备、存储介质制造方法及图纸

技术编号:32571128 阅读:18 留言:0更新日期:2022-03-09 16:58
本公开提供了一种恶意代码检测方法及装置、电子设备、存储介质,涉及网络信息安全领域,可以应用于检测恶意代码应用的场景。该恶意代码检测方法包括:反编译获取待检测APK的源码;对该源码进行分片处理,得到多个代码段;获取该多个代码段各自对应的权重值;基于该权重值计算每个代码段的模糊哈希值;将模糊哈希值与恶意代码指纹库比对,获得待检测APK的相似度;基于该相似度输出待检测APK是否为恶意代码的检测结果信息。本公开实施例的技术方案可以有效检测出变种恶意代码。可以有效检测出变种恶意代码。可以有效检测出变种恶意代码。

【技术实现步骤摘要】
恶意代码检测方法及装置、电子设备、存储介质


[0001]本公开涉及网络信息安全
,具体而言,涉及一种恶意代码检测方法、恶意代码检测装置、电子设备以及计算机可读存储介质。

技术介绍

[0002]随着智能通信技术的不断发展,智能终端已经成为人类社会重要的工具之一。安卓(Android)操作系统由于具有开源性,成为智能终端的主要操作系统,这也使得越来越多的安卓智能终端成为恶意代码的攻击目标,对安卓智能终端的系统安全及用户信息安全造成威胁。因此,对安卓系统的恶意代码检测显得尤为重要。
[0003]对安卓恶意代码的检测可以依赖哈希值匹配的方法,但该方法要求恶意代码应用与样本完全一致,这便使得变种恶意代码应用无法被有效地检测出,比如仅仅改变了一个字节就有可能导致检测完全失效,给系统的安全造成威胁。
[0004]需要说明的是,在上述
技术介绍
部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。

技术实现思路

[0005]本公开实施例的目的在于提供一种恶意代码检测方法、恶意代码检测装置、电子设备以及计算机可读存储介质,进而至少在一定程度上克服相关技术中无法有效检测变种恶意代码而影响系统安全性的问题。
[0006]本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
[0007]根据本公开实施例的第一方面,提供了一种恶意代码检测方法,包括:
[0008]反编译获取待检测安卓应用程序包APK的源码;
[0009]对所述源码进行分片处理,得到多个代码段;
[0010]获取所述多个代码段各自对应的权重值;
[0011]基于所述权重值计算每个代码段的模糊哈希值;
[0012]将所述模糊哈希值与恶意代码指纹库比对,获得所述待检测APK的相似度;
[0013]基于所述相似度输出所述待检测APK是否为恶意代码的检测结果信息。
[0014]在本公开的一些示例实施例中,基于前述方案,所述源码为Smali源码;所述对所述源码进行分片处理包括:
[0015]按照起始标记为.method且结尾标记为.end对所述源码进行代码段划分。
[0016]在本公开的一些示例实施例中,基于前述方案,所述基于所述权重值计算每个代码段的模糊哈希值包括:
[0017]将每个代码段按行进行分片,得到多个行分片代码;
[0018]计算每个行分片代码的定长哈希值;
[0019]对每个行分片代码的定长哈希值添加所述行分片代码所在代码段的权重值后按
序拼接,得到每个代码段的模糊哈希值。
[0020]在本公开的一些示例实施例中,基于前述方案,所述获取所述多个代码段各自对应的权重值包括:
[0021]获取所述多个代码段中包含系统调用函数或权限的代码段各自对应的第一权重值;
[0022]获取所述多个代码段中不包含系统调用函数和权限的代码段各自对应的第二权重值,所述第二权重值小于所述第一权重值。
[0023]在本公开的一些示例实施例中,基于前述方案,所述获取所述多个代码段中包含系统调用函数或权限的代码段对应的第一权重值包括:
[0024]利用第一权重值公式计算所述多个代码段中包含系统调用函数或权限的代码段各自对应的第一权重值;所述第一权重值公式为:
[0025][0026]其中,所述W为计算出的第一权重值,所述code为代码段中流程代码的行数,所述other为代码段中非流程代码的行数。
[0027]在本公开的一些示例实施例中,基于前述方案,所述将所述模糊哈希值与恶意代码指纹库比对,获得所述待检测APK的相似度,包括:
[0028]将所述模糊哈希值与恶意代码指纹库进行比对,根据相似度计算公式计算所述待检测APK的相似度;所述相似度计算公式为:
[0029][0030]其中,所述S为相似度,所述N为对所述源码进行分片处理所得到的代码段的段数,所述D
i
表征所述N个代码段中第i个代码段的模糊哈希值与恶意代码指纹库比对时的差异程度,W
i
为所述N个代码段中第i个代码段的权重值,max(W
i
)为所述N个代码段所对应权重值中的最大权重值,max(L1,L2)为所述模糊哈希值和所述恶意代码指纹库相比字符串长度最长的长度值。
[0031]在本公开的一些示例实施例中,基于前述方案,所述基于所述相似度输出所述待检测APK是否为恶意代码的检测结果信息包括:
[0032]响应于所述相似度大于设定阈值,输出所述待检测APK为恶意代码的提示信息;
[0033]响应于所述相似度小于所述设定阈值,输出所述待检测APK为安全代码的提示信息。
[0034]根据本公开实施例的第二方面,提供了一种恶意代码检测装置,包括:
[0035]反编译模块,用于反编译获取待检测安卓应用程序包APK的源码;
[0036]分片模块,用于对所述源码进行分片处理,得到多个代码段;
[0037]第一获取模块,用于获取所述多个代码段各自对应的权重值;
[0038]计算模块,用于基于所述权重值计算每个代码段的模糊哈希值;
[0039]第二获取模块,用于将所述模糊哈希值与恶意代码指纹库比对,获得所述待检测APK的相似度;
[0040]输出模块,用于基于所述相似度输出所述待检测APK是否为恶意代码的检测结果信息。
[0041]根据本公开实施例的第三方面,提供了一种电子设备,包括:处理器;以及存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现上述任意一项所述的恶意代码检测方法。
[0042]根据本公开实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现根据上述任意一项所述的恶意代码检测方法。
[0043]本公开的示例实施例中的恶意代码检测方法,通过反编译获取待检测APK(Android application package,安卓应用程序包)的源码,接着对该源码进行分片处理,得到多个代码段,获取该多个代码段各自对应的权重值,然后基于该权重值计算每个代码段的模糊哈希值,并获取模糊哈希值与恶意代码指纹库的相似度,基于该相似度输出待检测APK是否为恶意代码的检测结果信息,实现了恶意代码的检测。一方面,变种恶意代码应用的变种通常仅发生在某个代码或代码段中,在整个变种恶意代码应用中所占的比例非常小,这样,通过将待检测APK反编译的源码分片处理为多个代码段,利用代码段的模糊哈希值比对恶意代码指纹库,仍能匹配出除变种代码段以外的全部恶意代码段,获得待检测APK相对于恶意代码指纹库的相似度,从而能够有效地检测出变种恶意代码。另一方面,通过为分片处理得到的每个代码段设置权重值,可以突出重要代码在相似度计算中的权重,减少非主要代码对相似度计算的影响。
[0044]本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种恶意代码检测方法,其特征在于,包括:反编译获取待检测安卓应用程序包APK的源码;对所述源码进行分片处理,得到多个代码段;获取所述多个代码段各自对应的权重值;基于所述权重值计算每个代码段的模糊哈希值;将所述模糊哈希值与恶意代码指纹库比对,获得所述待检测APK的相似度;基于所述相似度输出所述待检测APK是否为恶意代码的检测结果信息。2.根据权利要求1所述的恶意代码检测方法,其特征在于,所述源码为Smali源码;所述对所述源码进行分片处理包括:按照起始标记为.method且结尾标记为.end对所述源码进行代码段划分。3.根据权利要求1所述的恶意代码检测方法,其特征在于,所述基于所述权重值计算每个代码段的模糊哈希值包括:将每个代码段按行进行分片,得到多个行分片代码;计算每个行分片代码的定长哈希值;对每个行分片代码的定长哈希值添加所述行分片代码所在代码段的权重值后按序拼接,得到每个代码段的模糊哈希值。4.根据权利要求1所述的恶意代码检测方法,其特征在于,所述获取所述多个代码段各自对应的权重值包括:获取所述多个代码段中包含系统调用函数或权限的代码段各自对应的第一权重值;获取所述多个代码段中不包含系统调用函数和权限的代码段各自对应的第二权重值,所述第二权重值小于所述第一权重值。5.根据权利要求4所述的恶意代码检测方法,其特征在于,所述获取所述多个代码段中包含系统调用函数或权限的代码段对应的第一权重值包括:利用第一权重值公式计算所述多个代码段中包含系统调用函数或权限的代码段各自对应的第一权重值;所述第一权重值公式为:其中,所述W为计算出的第一权重值,所述code为代码段中流程代码的行数,所述other为代码段中非流程代码的行数。6.根据权利要求1所述的恶意代码检测方法,其特征在于,所述将所述模糊哈希值与恶意代码指纹库比对,获得所述待检测APK的相似度,包括...

【专利技术属性】
技术研发人员:殷铭何晔虞珍妮
申请(专利权)人:中国电信股份有限公司
类型:发明
国别省市:

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

1