一种同源APK检测方法、终端设备及存储介质与流程

文档序号:23989176发布日期:2021-02-20 12:54阅读:369来源:国知局
一种同源APK检测方法、终端设备及存储介质与流程
一种同源apk检测方法、终端设备及存储介质
技术领域
[0001]
本发明涉及网络安全领域,尤其涉及一种同源apk检测方法、终端设备及存储介质。


背景技术:

[0002]
随着移动互联网手机app的快速发展,不法分子利用互联网技术进行违法犯罪活动,如利用app传播病毒、窃取用户隐私行为进行诈骗等违法犯罪活动。随着应用市场对恶意app的不断打击,恶意应用开发者的反检测能力也在不断提高,通过不断更换app名称、签名、后台服务器地址等信息逃避检测。
[0003]
目前市面上检测手段、检测方向主偏向于对单一app特征进行分析,检测手段主要有静态检测和动态检测。静态检测主要是通过反编译工具提取程序中的静态特征,如,语法语义、签名等特征信息,但静态检测技术具有局限性,尤其是对采用隐形技术的恶意app,如加密、代码转换等技术;对通过商业软件如dexguard、360加固等技术,无法实现反编译,无法提取到恶意行为。动态检测主要通过模拟器进行模拟,来检测api调用和系统调用从而监测恶意应用的恶意行为。混合检测包含了静态检测和动态检测。现有检测方法存在以下不足:1)对app的检测主要偏向对单一app的行为特征的分析,缺乏同源性的分析;2)在检测手段上,动态检测技术主要采用虚拟机运行环境,但虚拟机运行环境与真实的设备运行环境存在一定的差异,对于一些具有反检测能力的恶意app,在虚拟机上运行会不触发恶意行为,无法完成对该类应用的检测。
[0004]
随着手机app的快速发展,恶意app也日益剧增,种类繁多,为快速、精准、全面打击同类恶意app后台,对app的同源性分析就显得尤为重要。


技术实现要素:

[0005]
为了解决上述问题,本发明提出了一种同源apk检测方法、终端设备及存储介质。
[0006]
具体方案如下:
[0007]
一种同源apk检测方法,包括以下步骤:
[0008]
s1:通过静态检测和动态检测结合的方式采集待检测apk的特征值;
[0009]
s2:构建包含apk特征值的特征库,将采集的特征值与特征库内存储的每个apk的特征值进行逐一比对,根据设定的同源等级和权重值,计算与每个apk的同源比对结果;
[0010]
s3:当同源比对结果大于阈值时,判定待检测apk与特征库里的apk具有同源性。
[0011]
进一步的,静态检测通过反编译apk文件静态检测手段进行;动态检测采用真机沙箱技术通过对android系统进行深度定制,在系统调用接口设置api接口,以实现对apk全程行为的记录。
[0012]
进一步的,步骤s2中与某个恶意apk的同源比对结果的计算过程为:
[0013]
设定待检测apk的特征值按照同源权重的不同分为k级,每一级包含一个以上的权重值相同的特征项,每一个特征项包含一个以上的特征,则待检测apk与某个恶意apk的同
源比对结果s的计算公式为:
[0014][0015]
其中,i表示级数的序号,k表示级数的总数,j表示每一级中包含的特征的序号,l表示每一级包含的特征的总数,θ
i
表示第i级对应的权重值,m
ij
表示第i级的第j个特征项包含的所有特征的总数,n
ij
表示第i级的第j个特征项包含的所有特征中与某个恶意apk的所有特征中特征相同的个数。
[0016]
进一步的,两个特征是否相同根据两个特征的相似度进行判定。
[0017]
进一步的,相似度采用编辑距离进行计算,当两个特征的编辑距离为0时,则两个特征相同。
[0018]
一种同源apk检测终端设备,包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本发明实施例上述的方法的步骤。
[0019]
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例上述的方法的步骤。
[0020]
本发明采用如上技术方案,通过静态检测和动态检测相结合的混合检测技术,将检测到的特征值与特征库里的apk的特征进行比对分析,输出具有同源性的检测结果。
附图说明
[0021]
图1所示为本发明实施例一的流程图。
具体实施方式
[0022]
为进一步说明各实施例,本发明提供有附图。这些附图为本发明揭露内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实施例的运作原理。配合参考这些内容,本领域普通技术人员应能理解其他可能的实施方式以及本发明的优点。
[0023]
现结合附图和具体实施方式对本发明进一步说明。
[0024]
实施例一:
[0025]
本发明实施例提供了一种同源apk检测方法,如图1所示,其为本发明实施例所述的同源apk检测方法的流程图,所述方法包括以下步骤:
[0026]
s1:通过静态检测和动态检测结合的方式采集待检测apk的特征值。
[0027]
静态检测通过反编译apk文件等静态检测手段进行。静态特征值包括但不限于apk的签名散列值、so动态链接库等。
[0028]
动态检测采用真机沙箱技术通过对android系统进行深度定制,在关键的系统调用接口设置了api接口,从而实现了对apk全程行为的记录。该检测方法有效的弥补了静态检测对加壳、加固app无法分析的缺陷,通过采用真实手机作为app的运行环境,对app的静默行为后台记录,真实还原了app的行为。通过对抓取到的网络数据进行分析,并提取同源性的动态特征值。动态特征值包括但不限于app的网络请求参数、第三方应用库授权id、网
络通信时的访问网址、字段等特征值。
[0029]
s2:构建包含apk特征值的特征库,将采集的特征值与特征库内存储的每个apk的特征值进行逐一比对,根据设定的同源等级和权重值,计算与每个apk的同源比对结果。
[0030]
与某个恶意apk的同源比对结果s的计算过程为:
[0031]
设定待检测apk的特征值按照同源权重的不同分为k级,每一级包含一个以上的权重值相同的特征项,每一级的所有特征项的权重值均相同,每一个特征项包含一个以上的特征,则待检测apk与某个恶意apk的同源比对结果s的计算公式为:
[0032][0033]
其中,i表示级数的序号,k表示级数的总数,j表示每一级中包含的特征的序号,l表示每一级包含的特征的总数,θ
i
表示第i级对应的权重值,m
ij
表示第i级的第j个特征项包含的所有特征的总数,n
ij
表示第i级的第j个特征项包含的所有特征中与某个恶意apk的所有特征中特征相同的个数。
[0034]
两个特征是否相同根据两个特征的相似度进行判定。该实施例中相似度采用编辑距离进行计算,当两个特征的编辑距离为0时,则两个特征相同。
[0035]
s3:当同源比对结果大于阈值时,判定待检测apk与特征库里的apk具有同源性。
[0036]
该实施例中通过对200个随机apk样本进行分析,其中部分apk具有相同开发者的特性,即同源性,通过对这些同源apk检测、特征值比对分析,并对特征项、同源等级、权重值定义如表1所示(本发明包含的特征项并不限于表格中所列的内容):
[0037]
表1
[0038]
[0039][0040]
根据以上表格所列的特征项和同源比对结果的计算公式,对两个具有同源性的apk的特征值进行比对,若定义θ1=0.7,θ2=0.2,θ3=0.1,计算可得出待检测apk与恶意apk1的同源比对结果为:s=0.74。通过该同源比对结果与阈值的关系,判断两个apk的同源度较高。
[0041]
本发明实施例一通过了对apk的静态检测和动态检测,实现对apk的特征值提取;由于同一开发者开发的不同apk在特征上存在相似性,如授权id、签名、网络请求字符等,通过将特征值与恶意apk的特征值进行同源比对,判定两个apk的同源程度,进而对apk的同源分析核侦测工作具有重要的指导意义。
[0042]
实施例二:
[0043]
本发明还提供一种同源apk检测终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本发明实施例一的上述方法实施例中的步骤。
[0044]
进一步地,作为一个可执行方案,所述同源apk检测终端设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述同源apk检测终端设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,上述同源apk检测终端设备的组成结构仅仅是同源apk检测终端设备的示例,并不构成对同源apk检测终端设备的限定,可以包括比上述更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述同源apk检测终端
设备还可以包括输入输出设备、网络接入设备、总线等,本发明实施例对此不做限定。
[0045]
进一步地,作为一个可执行方案,所称处理器可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述同源apk检测终端设备的控制中心,利用各种接口和线路连接整个同源apk检测终端设备的各个部分。
[0046]
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述同源apk检测终端设备的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据手机的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
[0047]
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例上述方法的步骤。
[0048]
所述同源apk检测终端设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)以及软件分发介质等。
[0049]
尽管结合优选实施方案具体展示和介绍了本发明,但所属领域的技术人员应该明白,在不脱离所附权利要求书所限定的本发明的精神和范围内,在形式上和细节上可以对本发明做出各种变化,均为本发明的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1