本发明涉及网络安全技术领域,具体地涉及一种android重打包恶意应用检测方法及装置、可读存储介质和终端。
背景技术:
随着移动互联网的迅速发展,安卓(android)智能终端,如智能手机、平板电脑(pad)、智能手表等,已经成为日常社会活动的重要辅助工具。
但安卓智能终端的广泛使用,也吸引了众多攻击者的目光,各类恶意移动应用(mobilemalware)攻击事件层出不穷。通过对安卓恶意移动应用的实现方法进行统计分析,发现超过80%的安卓恶意移动应用是通过重打包(repackaging)方式完成。分析其原因,一是由于安卓移动应用易于修改,黑客可利用开源工具,如apktool、jadx等,对任意安卓移动应用进行修改,增加恶意代码并重新打包发布;二是通过对流行的安卓移动应用进行重打包,便于恶意代码的快速传播。
因此,android重打包恶意应用对网络运行安全存在着威胁,对其进行检测具有重要的意义。
技术实现要素:
本发明解决的技术问题是如何检测android重打包恶意应用,提高网络安全。
为解决上述技术问题,本发明实施例提供了一种android重打包恶意应用检测方法,所述方法包括:
分别构建待检测移动应用和对比组的网络流量行为模型;所述对比组中包括多个与所述待检测移动应用相类似的移动应用;
将待检测移动应用的网络流量行为模型与所述对比组的网络流量行为模型进行比对,以确定所述待检测移动应用是否为android重打包恶意应用。
可选地,所述构建待检测移动应用的网络流量行为模型包括:
获取所述待检测移动应用的网络流量;所述待检测移动应用的网络流量包括以所述待检测移动应用为发起方的出流和以待检测移动应用为接受方的入流;
计算所述待检测移动应用的网络流量对应的多个网络流量特征;
将所述多个网络特征按照顺序进行排列,得到所述待检测移动应用的网络流量行为模型。
可选地,所述构建对比组的网络流量行为模型,包括:
分别获取所述对比组中各个移动应用的网络流量;所述对比组中各个移动应用的网络流量包括以所述对比组中各个移动应用为发起方的出流和以待检测移动应用为接受方的入流;
分别计算所述对比组中各个移动应用的网络流量对应的多个网络流量特征;
分别计算所述对比组中各个移动应用的网络流量对应的多个网络流量特征中相应的网络流量特征的均值;
将所述对比组中各个移动应用的网络流量对应的多个网络流量特征中相应的网络流量特征的均值按照顺序进行排列,得到对比组的网络流量行为模型。
可选地,所述网络流量特征包括以下至少两项:
出流的数量;
入流的数量;
所有出流中报文的数量总和;
所有入流中报文的数量总和;
所有出流中报文长度的总和;
所有入流中报文长度的总和;
所有出流中平均报文长度值;
所有出流中报文长度值的方差;
所有入流中平均报文长度值;
所有入流中报文长度值的方差;
所有出流中平均报文时间间隔;
所有出流中报文时间间隔的方差;
所有入流中平均报文时间间隔;
所有入流中报文时间间隔的方差。
可选地,所述将待检测移动应用的网络流量行为模型与所述对比组的网络流量行为模型进行比对,以确定所述待检测移动应用是否为android重打包恶意应用,包括:
分别将所述待检测移动应用的网络流量行为模型与所述对比组的网络流量行为模型进行归一化处理;
计算归一化后的所述待检测移动应用的网络流量行为模型与所述对比组的网络流量行为模型之间的距离;
当确定归一化后的所述待检测移动应用的网络流量行为模型与所述对比组的网络流量行为模型之间的距离大于预设的距离阈值时,确定所述待检测移动应用为android重打包恶意应用;
当确定归一化后的所述待检测移动应用的网络流量行为模型与所述对比组的网络流量行为模型之间的距离小于或等于所述距离阈值时,确定所述待检测移动应用为正常应用。
可选地,采用如下的公式分别将所述待检测移动应用的网络流量行为模型与所述对比组的网络流量行为模型进行归一化处理:
其中,
可选地,采用如下的公式计算归一化后的所述待检测移动应用的网络流量行为模型与所述对比组的网络流量行为模型之间的距离:
其中,d表示所述归一化处理后的所述待检测移动应用的网络流量行为模型与所述对比组的网络流量行为模型之间的欧式距离。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述任一项所述的android重打包恶意应用检测方法的步骤。
本发明实施例还提供了一种终端,包括存储器和处理器,所述存储器上储存有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行上述任一项所述的android重打包恶意应用检测方法的步骤。
与现有技术相比,本发明实施例的技术方案具有以下有益效果:
上述的方案,通过分别构建待检测移动应用和对比组的网络流量行为模型;所述对比组中包括多个与所述待检测移动应用相类似的移动应用,并将待检测移动应用的网络流量行为模型与所述对比组的网络流量行为模型进行比对,以确定所述待检测移动应用是否为android重打包恶意应用,可以准确地检测出待检测移动应用是否为android重打包恶意应用,提高网络安全。
附图说明
图1是本发明实施例中的一种android重打包恶意应用检测方法的流程图;
图2是本发明实施例中的另一种android重打包恶意应用检测方法的流程图;
图3是如何选取与待检测应用“motox3mbikeracegame-repackaged”相类似的游戏应用的示意图;
图4是本发明实施例中的一种android重打包恶意应用检测装置的结构示意图。
具体实施方式
本发明实施例中的技术方案通过分别构建待检测移动应用和对比组的网络流量行为模型;所述对比组中包括多个与所述待检测移动应用相类似的移动应用,并将待检测移动应用的网络流量行为模型与所述对比组的网络流量行为模型进行比对,以确定所述待检测移动应用是否为android重打包恶意应用,可以准确地检测出待检测移动应用是否为android重打包恶意应用,提高网络安全。
为使本发明的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
图1是本发明实施例的一种android重打包恶意应用检测方法的流程图。参见图1,一种android重打包恶意应用检测方法,可以包括如下的步骤:
步骤s101:分别构建待检测移动应用和对比组的网络流量行为模型。
在具体实施中,所述对比组中包括多个与所述待检测移动应用相类似的移动应用。
步骤s102:将待检测移动应用的网络流量行为模型与所述对比组的网络流量行为模型进行比对,以确定所述待检测移动应用是否为android重打包恶意应用。
在具体实施中,通过将待检测移动应用的网络流量行为模型与所述对比组的网络流量行为模型进行比对的比对结果,可以确定所述待检测移动应用是否为android重打包恶意应用。
上述的方案,通过分别构建待检测移动应用和对比组的网络流量行为模型;所述对比组中包括多个与所述待检测移动应用相类似的移动应用,并将待检测移动应用的网络流量行为模型与所述对比组的网络流量行为模型进行比对,以确定所述待检测移动应用是否为android重打包恶意应用,可以准确地检测出待检测移动应用是否为android重打包恶意应用,提高网络安全。
下面将结合图2对本发明实施例中的技术方案进行进一步详细的说明。
图2示出了本发明实施例中的另一种android重打包恶意应用检测方法的流程图。请参见图2,本发明实施例中的一种android重打包恶意应用检测方法,适于对android重打包恶意应用进行检测,具体可以采用如下的步骤实现:
步骤s201:选取与待检测移动应用类似的多个android移动应用,构成所述待检测移动应用的对比组。
在具体实施中,可以在移动应用商店中选取与待检测移动应用相类似的android移动应用,构成所述待检测移动应用的对比组。其中,所述待检测移动应用的对比组中的移动应用的个数可以根据实际的需要进行设置,在此不做限制。
以移动应用商店googleplay为例,将待检测的android移动应用记为a,在移动应用商店googleplay中选择与移动应用a相类似的移动应用的过程如下:
首先,在googleplay中搜索移动应用a,点击搜索结果,出现移动应用a的详细介绍页面,在移动应用a的详细介绍页面中显示的“同类内容”,可以以“同类内容”中的应用为与移动应用a相类似的android移动应用,记为s1,s2,s3...,sn,也即采用{s1,s2,s3...,sn}组成移动应用a的对比组。
当然,本领域的技术人员还可以采用其他的方式,选取与待检测移动应用相类似的android移动应用,在此不做限制。
步骤s202:判断所述待检测移动应用的对比组是否构建成功;当判断结果为是时,可以执行步骤s203;反之,则可以从步骤s201重新开始执行。
步骤s203:运行所述待检测移动应用,并获取所述待检测移动应用的网络流量。
在具体实施中,在所述待检测移动应用a的运行过程中,实时或定时捕获所述移动应用a在预设时间段内的网络流量。其中,预设时间段的时长可以根据实际的需要进行设置。
在本发明一实施例中,以<源地址,目的地址,源端口,目的端口,上层协议,流方向>六元组为网络流标识,提取待检测移动应用a所产生的所有网络流量。其中,所述六元组中的上层协议为传输控制协议(transmissioncontrolprotocol,tcp)或用户数据报协议(userdatagramprotocol,udp);所述流方向包括以移动应用a为报文接受方的入流和以移动应用a为报文发起方的出流。
步骤s204:计算所述待检测移动应用的网络流量对应的多个网络流量特征。
在具体实施中,在获取到所述待检测移动应用a在预设时间段内产生的所有网络流量时,可以针对待检测移动应用a的所有出流和入流,提取其包含的所有报文的长度、报文时间间隔的值。其中,报文长度值不包括tcp或udp和ip头部的长度。
当提取得到所述待检测移动应用a的所有出流和入流的报文的长度、报文时间间隔的值时,再基于提取得到所述待检测移动应用a的所有出流和入流的报文的长度、报文时间间隔的值,生成所述待检测移动应用a的网络流量特征。
在本发明一实施例中,所述待检测移动应用a网络流量特征包括以下十四项:
f1:出流的数量;
f2:入流的数量;
f3:所有出流中报文的数量总和;
f4:所有入流中报文的数量总和;
f5:所有出流中报文长度的总和;
f6:所有入流中报文长度的总和;
f7:所有出流中平均报文长度值;
f8:所有出流中报文长度值的方差;
f9:所有入流中平均报文长度值;
f10:所有入流中报文长度值的方差;
f11:所有出流中平均报文时间间隔;
f12:所有出流中报文时间间隔的方差;
f13:所有入流中平均报文时间间隔;
f14:所有入流中报文时间间隔的方差。
本领域的技术人员可以理解的是,所述待检测移动应用a的网络流量特征可以比上述的十四项网络特征更多或者更少,在此不做限制。
步骤s205:将所述多个网络特征按照顺序进行排列,得到所述待检测移动应用的网络流量行为模型。
在具体实施中,当生成所述待检测移动应用a的各项网络流量特征时,可以将成所述待检测移动应用a的各项网络流量特征按照预设的顺序进行排列,得到所述待检测移动应用a的网络流量行为模型。在本发明一实施例中,采用<f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14>,作为待检测移动应用a的网络行为模型,记为n(a)。
步骤s206:分别获取所述对比组中各个移动应用的网络流量。
在具体实施中,与所述对比组中各个移动应用的网络流量可以包括以所述对比组中各个移动应用为发起方的出流和以待检测移动应用为接受方的入流。
步骤s207:分别计算所述对比组中各个移动应用的网络流量对应的多个网络流量特征。
在具体实施中,针对对比组{s1,s2,s3...,sn}中每个移动应用si(1≤i≤n),可以分别采用s203~s205的方式构建对比组中的每个移动应用si的网络行为模型,记为n(si),不再赘述。例如,当每个移动应用的网络特征包括上述的十四项网络流量特征时,对比组中的每个移动应用si对应的网络流量特征记为fj(si)(1≤j≤14),且每个移动应用si对应的网络特征模型,记为n(si)=<f1(si),f2(si),f3(si),f4(si),f5(si),f6(si),f7(si),f8(si),f9(si),f10(si),f11(si),f12(si),f13(si),f14(si)>。
在具体实施中,当生成对比组中的每个移动应用si对应的网络特征模型n(si),可以基于对比组中的每个移动应用si对应的网络特征模型n(si),生成所述对比组的网络特征模型,记为n(c)。
步骤s208:分别计算所述对比组中各个移动应用的网络流量对应的多个网络流量特征中相应的网络流量特征的均值,并将所述对比组中各个移动应用的网络流量对应的多个网络流量特征中相应的网络流量特征的均值按照顺序进行排列,得到对比组的网络流量行为模型。
在本发明一实施例中,首先计算所述对比组中各个移动应用的网络流量对应的多个网络流量特征中相应的网络流量特征的均值,也即计算所述对比组c中的所有移动应用的各项网络流量特征的均值,并将计算得到的均值按照预设顺序进行排列,得到对比组的网络流量行为模型n(c)。例如,当每个移动应用的网络特征包括上述的十四项网络流量特征时,对比组的网络流量行为模型为n(c)为:
步骤s209:分别将所述待检测移动应用的网络流量行为模型与所述对比组的网络流量行为模型进行归一化处理。
在本发明一实施例中,采用如下的公式分别将所述待检测移动应用的网络流量行为模型与所述对比组的网络流量行为模型进行归一化处理:
且:
其中,
步骤s210:计算归一化后的所述待检测移动应用的网络流量行为模型与所述对比组的网络流量行为模型之间的距离。
在本发明一实施例中,计算所述归一化后的所述待检测移动应用的网络流量行为模型与所述对比组的网络流量行为模型之间的距离可以为欧式距离,也即采用如下的公式计算归一化后的所述待检测移动应用的网络流量行为模型与所述对比组的网络流量行为模型之间的距离:
其中,d表示所述归一化处理后的所述待检测移动应用的网络流量行为模型与所述对比组的网络流量行为模型之间的欧式距离。
步骤s211:判断所述距离是否大于预设的距离阈值;当判断结果为是时,可以执行s212;反之,则可以执行步骤s213。
在具体实施中,所述预设的距离阈值t的数值,可以根据实际的需要,如根据先验知识进行确定,只要所设置的距离阈值t可以满足android重打包恶意应用的检测要求即可,在此不做限定。
步骤s212:确定所述待检测移动应用为android重打包恶意应用。
在具体实施中,当确定归一化后的所述待检测移动应用的网络流量行为模型与所述对比组的网络流量行为模型之间的距离d大于距离阈值t时,可以确定待检测移动应用为android重打包恶意应用。
步骤s213:确定所述待检测移动应用为正常应用。
在具体实施中,当确定能够确定归一化后的所述待检测移动应用的网络流量行为模型与所述对比组的网络流量行为模型之间的距离d小于或等于距离阈值t时,可以确定待检测移动应用为非android重打包恶意应用,也即待检测移动应用为正常的android移动应用。
为了方便描述,下面将结合具体的实例对本发明实施例中的基于网络流量行为比对的android重打包恶意应用检测进行介绍。
参见图3,以对android游戏应用“motox3mbikeracegame”进行重打包,植入anserverbot恶意程序,记重打包后的应用为“motox3mbikeracegame-repackaged”,当采用本发明实施例中的方法进行对“motox3mbikeracegame-repackaged”进行检测时:
首先,选择“motox3mbikeracegame-repackaged”的对比组。通过在googleplay中搜索motox3mbikeracegame,点击搜索结果进入该应用的详细介绍页面,选择详细介绍页面中的“同类内容”中的前5项应用组成对比组,也即选择的对比组中的移动应用为“摩托競技3d-bikeracing”、“bikerace免費版-最棒的免費遊戲”、“trafficrider”、“wheeliechallenge”和“madmotor-motocrossracing-dirtbikeracing”,具体请参见图如图2所示。
接着,构建重打包后的motox3mbikeracegame的网络行为模型。使用packetcapture应用捕获“motox3mbikeracegame-repackaged”产生的网络流量如下框所示:
然后,构建对比组的网络行为模型。使用packetcapture应用分别捕获“摩托競技3d-bikeracing”、“bikerace免費版-最棒的免費遊戲”、“trafficrider”、“wheeliechallenge”和“madmotor-motocrossracing-dirtbikeracing”产生的网络流量,并使用前述的计算方法构建对比组的网络行为模型如下框所示:
之后,设定阈值t的值为0.8。使用上述的方法计算出“motox3mbikeracegame-repackaged”和其对比组的网络流量行为模型间的欧氏距离d的值。计算出d的值为1.8416,大于0.8,故判定“motox3mbikeracegame-repackaged”应用为android重打包恶意应用。
上述对本发明实施例中的android重打包恶意应用检测方法进行了详细的描述,下面将对上述的方法对应的装置进行介绍。
图4示出了本发明实施例还提供了一种android重打包恶意应用检测装置的结构。参见图4,一种android重打包恶意应用检测装置40可以包括模型构建单元401和比较确定单元402,其中:
所述模型构建单元401,适于分别构建待检测移动应用和对比组的网络流量行为模型;所述对比组中包括多个与所述待检测移动应用相类似的移动应用;
所述比较确定单元402,适于将待检测移动应用的网络流量行为模型与所述对比组的网络流量行为模型进行比对,以确定所述待检测移动应用是否为android重打包恶意应用。
在本发明一实施例中,所述模型构建单元401,适于获取所述待检测移动应用的网络流量;所述待检测移动应用的网络流量包括以所述待检测移动应用为发起方的出流和以待检测移动应用为接受方的入流;计算所述待检测移动应用的网络流量对应的多个网络流量特征;将所述多个网络特征按照顺序进行排列,得到所述待检测移动应用的网络流量行为模型。
在本发明一实施例中,所述模型构建单元401,还适于分别获取所述对比组中各个移动应用的网络流量;所述对比组中各个移动应用的网络流量包括以所述对比组中各个移动应用为发起方的出流和以待检测移动应用为接受方的入流;分别计算所述对比组中各个移动应用的网络流量对应的多个网络流量特征;分别计算所述对比组中各个移动应用的网络流量对应的多个网络流量特征中相应的网络流量特征的均值;将所述对比组中各个移动应用的网络流量对应的多个网络流量特征中相应的网络流量特征的均值按照顺序进行排列,得到对比组的网络流量行为模型。
在具体实施中,所述网络流量特征包括以下至少一种:出流的数量;入流的数量;所有出流中报文的数量总和;所有入流中报文的数量总和;所有出流中报文长度的总和;所有入流中报文长度的总和;所有出流中平均报文长度值;所有出流中报文长度值的方差;所有入流中平均报文长度值;所有入流中报文长度值的方差;所有出流中平均报文时间间隔;所有出流中报文时间间隔的方差;所有入流中平均报文时间间隔;所有入流中报文时间间隔的方差。
在本发明一实施例中,所述比较确定单元402,适于分别将所述待检测移动应用的网络流量行为模型与所述对比组的网络流量行为模型进行归一化处理;计算归一化后的所述待检测移动应用的网络流量行为模型与所述对比组的网络流量行为模型之间的距离;当确定归一化后的所述待检测移动应用的网络流量行为模型与所述对比组的网络流量行为模型之间的距离大于预设的距离阈值时,确定所述待检测移动应用为android重打包恶意应用;当确定归一化后的所述待检测移动应用的网络流量行为模型与所述对比组的网络流量行为模型之间的距离小于或等于所述距离阈值时,确定所述待检测移动应用为正常应用。
在本发明一实施例中,所述比较确定单元402,适于采用如下的公式分别将所述待检测移动应用的网络流量行为模型与所述对比组的网络流量行为模型进行归一化处理:
其中,
在本发明一实施例中,所述比较确定单元402,适于采用如下的公式计算归一化后的所述待检测移动应用的网络流量行为模型与所述对比组的网络流量行为模型之间的距离:
其中,d表示所述归一化后的所述待检测移动应用的网络流量行为模型与所述对比组的网络流量行为模型之间的距离。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述任一项所述的android重打包恶意应用检测方法的步骤。
本发明实施例还提供了一种终端,包括存储器和处理器,所述存储器上储存有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行上述任一项所述的android重打包恶意应用检测方法的步骤。
采用本发明实施例中的上述方案,通过分别构建待检测移动应用和对比组的网络流量行为模型;所述对比组中包括多个与所述待检测移动应用相类似的移动应用,并将待检测移动应用的网络流量行为模型与所述对比组的网络流量行为模型进行比对,以确定所述待检测移动应用是否为android重打包恶意应用,可以准确地检测出待检测移动应用是否为android重打包恶意应用,提高网络安全。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于计算机可读存储介质中,存储介质可以包括:rom、ram、磁盘或光盘等。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。