CN107688742B - 大规模快速移动应用app检测和分析方法 - Google Patents

大规模快速移动应用app检测和分析方法 Download PDF

Info

Publication number
CN107688742B
CN107688742B CN201710673675.6A CN201710673675A CN107688742B CN 107688742 B CN107688742 B CN 107688742B CN 201710673675 A CN201710673675 A CN 201710673675A CN 107688742 B CN107688742 B CN 107688742B
Authority
CN
China
Prior art keywords
app
dex
file
image
sequence
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710673675.6A
Other languages
English (en)
Other versions
CN107688742A (zh
Inventor
任伟
张耀成
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Bamboo Duan Network Technology Co.,Ltd.
Original Assignee
China University of Geosciences
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China University of Geosciences filed Critical China University of Geosciences
Priority to CN201710673675.6A priority Critical patent/CN107688742B/zh
Publication of CN107688742A publication Critical patent/CN107688742A/zh
Application granted granted Critical
Publication of CN107688742B publication Critical patent/CN107688742B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/12Edge-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/136Segmentation; Edge detection involving thresholding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Image Analysis (AREA)

Abstract

本发明公开了一种大规模快速移动应用APP检测和分析方法,包括以下步骤:从手机移动应用市场获取移动应用APP;通过使用面向逆向解析码的自然语言处理技术,得到该APP的自然语言特征;通过使用面向DEX的特征图像处理技术,得到该APP的DEX图像特征;通过使用基于模糊Hash的重打包验证技术,判断该APP是否是重打包应用。若判断该APP是恶意应用,将该APP的自然语言特征和DEX图像特征打上MALWARE标签,放入到机器学习模块里的验证模型中;若判断该APP是正常应用,并将该APP的自然语言特征和DEX图像特征打上NORMAL标签,放入到机器学习里的验证模型中。

Description

大规模快速移动应用APP检测和分析方法
技术领域
本发明的技术涉及手机移动应用市场上的移动应用监测与类型判断,涉及短时间内大规模移动安卓应用的安全检测与分析,包括代码样本提取与分析、恶意代码分析、匹配与预警、代码检测综合分析评测。
背景技术
当前手机移动应用市场上安卓移动应用数量规模大。各个移动应用市场上每日上线更新的手机应用数目日渐增加,普通的人工检测或者通过特定软件逐个检查上线或更新应用的速度无法适应现在软件更新的速度,导致很多有问题的软件存留在移动应用市场上,对下载这些应用的消费者而言会造成一些不可挽回的损失。
现在国内各个手机移动应用市场对每日更新上线的移动应用的监管力度各不相同,但大多效果并不理想。目前监控手段主要分为人工检测和软件自动检测。例如华为手机应用市场使用的就是人工检测的方式监控每日更新上线的移动应用,这样可以做到对每个在华为手机应用市场上发布的应用的严格检测,保证消费者在通过华为手机应用市场上下载移动应用的安全性,但是却导致该市场每日更新上线应用的数量远远低于其他应用市场的数量。对于软件自动检测而言也有一些问题,软件检测的准确性问题,有很大可能导致漏检、误检等问题,检测效率问题,虽然比人工检测快一些,但漏检和误检会对应用市场造成不好的影响。还有一些移动应用市场甚至没有检测,导致市场上各种类型的移动应用混合在一起,普通消费者在不知情或者错误的情况下有可能下载了含有恶意行为的移动应用导致造成一定的个人损失。
现有技术中,有些解决方案对于每一个要检验分析的应用只有通过实际的使用才能展开分析,而言这种分析并不一定有结果,耗时过长且不具有普遍性。在面对大规模移动应用检测的时候无法及时给出分析结果。不具备时效性。不是一个良好的分析手机移动市场上每日更新应用的手段。
有些方法使用动态检测的方式来检测移动应用的行为,可以较完善的检测出一个app中所有可能的恶意行为,但是耗费时间过长,检测手段是人工方式,没有做到自动化检测,对于移动应用市场而言实用性不高。
也有通过实用app中的特征码作为检测依据,实现一定规模的检测,但是由于是基于特征码检测,所以无法监控未发现特征码的新的恶意app。且检测手法过于单一,面对具有复杂恶意行为的应用有可能发生漏检,误检等情况。对于每日更新大量应用的移动应用市场而言有一定的用处,但是无法做到全面的检测结果。
发明内容
本发明的发明目的在于提供一种可快速高效地实时下载并分析检测,并提高检测的准确性和可信性的大规模快速移动应用检测和分析方法。
本发明解决其技术问题所采用的技术方案是:
提供一种大规模快速移动应用APP检测和分析方法,包括以下步骤:
1)从手机移动应用市场获取移动应用APP;
2)通过使用面向逆向解析码的自然语言处理技术,得到该APP的自然语言特征;
3)通过使用面向DEX的特征图像处理技术,得到该APP的DEX图像特征;
4)通过使用基于模糊Hash的重打包验证技术,判断该APP是否是重打包应用并赋予一个判断结果RC;
5)通过使用机器学习模块,分别得到该APP的自然语言特征和DEX图像特征在使用机器学习后的结果,分别赋予一个判断值N,G;
6)计算该APP的综合判断结果S=S_N(N)+S_G(G)+S_RC(RC);
7)判断该APP的值S是否超过阈值;
8)如果S>阈值,则判断该APP是恶意应用,并将该APP的自然语言特征和DEX图像特征打上MALWARE标签,放入到机器学习模块里的验证模型中;
9)如果S<=阈值,则判断该APP是正常应用,并将该APP的自然语言特征和DEX图像特征打上NORMAL标签,放入到机器学习里的验证模型中。
接上述技术方案,步骤2)具体包括:
将与APP对应的APK文件进行逆向解析,得到对应的smali文件;
合并所有smali文件,将smali文件的内容按顺序组合为一个新文件,称为AllSmali;
按照顺序提取AllSmali文件中所有的操作码;
使用基于功能的Smali代码简化方式简化所有提取到的操作码,得到简化操作码;
令N=4,使用自然语言处理的方式,操作简化操作码;
计算得到4-gram序列中每个序列重复出现的次数;
把计算得到的重复出现次数超过预设次数的4-gram序列保留,写入一个文件中作为APK文件的自然语言特征序列,得到一个关于APK文件的自然语言特征文件。
接上述技术方案,步骤3)具体包括:
解析与APP对应的APK文件,得到DEX文件;
使用python,将DEX文件转换为一个灰度图像;
使用分割算法将灰度图像按照图像中边界进行分割,得到原图像的子图像集合;
计算对每个子图像的GLCM特征值;
将得到的GLCM特征值,按照顺序保存下来形成一个文件,作为该APP的DEX图像特征文件。
接上述技术方案,分割灰度图像的分割算法具体为:
1)每次读取两个像素的值X,Y;
2)计算Z=(X-Y)/(X,Y)min
3)计算Z是否超过阈值,如果超过阈值,则切割,如果没有则不切割。
接上述技术方案,分割灰度图像的分割算法具体为:
任然计算两个像素的值X,Y;
计算Z=(X-Y)/(X,Y)min
计算Z是否超过阈值,如果超过阈值,则切割,如果不超过,则计算X,Y
的均值,然后和下一个像素值进行计算。
接上述技术方案,基于模糊Hash的重打包验证技术具体为:
提取于APP对应的DEX文件的指纹信息。
使用模糊Hash算法提取DEX文件的指纹信息,得到模糊哈希值;
将得到的模糊hash值存储,并与已经存在的模糊hash值进行比较,经过比较后如果相似度超过阈值,则判断新存入的模糊hash值所代表的移动应用是一个重打包应用,并将该模糊hash值从系统中剔除。
接上述技术方案,通过基于功能的smali代码简化方式处理DEX文件,计算DEX文件模糊hash值,具体为:
按顺序统计DEX文件中所有的操作码;
按照基于功能的smali代码简化方式对操作码进行简化;
将简化后的代码按照顺序排列形成一个有序序列;
按照模糊hash算法计算有序序列的模糊hash值。
接上述技术方案,通过基于DEX图像分割的方法计算模糊hash值,具体为:
处理DEX文件形成DEX文件的灰度图像;
分割DEX灰度图像;
对每个分割得到的DEX图像的子图像计算他们的GLCM特征值。作为字符串保存下来;
按顺序保存这些特征值,并且分别计算他们的hash值;
保留hash值高六位作为hash值映射;
将得到的hash映射值按顺序链接到一起作为该DEX文件的灰度图像模糊hash值。
本发明还提供了一种大规模快速移动应用APP检测和分析系统,该系统用于实现上述技术方案中任一项所述的方法。
本发明还提供了一种存储装置,该存储装置用于存储实现上述技术方案中任一项所述的方法的程序。
本发明产生的有益效果是:本发明基于多方面检测手段,包括使用面向逆向解析码的自然语言处理技术,得到该APP的自然语言特征;使用面向DEX的特征图像处理技术,得到该APP的DEX图像特征;再通过使用基于模糊Hash的重打包验证技术可以在短时间内快速的对更新上线的应用进行初步的分析,并给出分析判断。大大减少了应用市场的人工检测工作量,有效减低了恶意应用对消费者可能造成的影响。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明大规模快速移动应用检测和分析方法的总体框架图;
图2是本发明实施例验证模型形成流程图;
图3是本发明实施例重打包检测流程图;
图4是本发明实施例将分片值n纳入模糊哈希值中的流程图;
图5是本发明实施例报告获取流程图;
图6是本发明实施例更新验证模型流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明针对现在移动应用市场上对大规模数据监控检测的需求,提出了如下技术。
1、面向APP逆向解析码的语言处理技术
通过前人的研究和对现有移动应用的分析可以得知,具有恶意行为的移动应用和具有正常行为的移动应用,在调用各种系统函数时具有不同的调用顺序。也就是说调用系统函数的顺序这一行为特征可以用来初步判断一个应用是否是具有恶意行为的移动应用。
要监听一个应用的所有调用函数行为有两种方式,一种是动态检测,一种是静态检测。如果是动态检测的话,需要对一个应用进行全面的且自动化的检测流程,需要耗费一定的资源才能完成检测流程,并且检测结果也不一定是完整的结果。静态检测可通过apktool或者Baksmali等工具将APK文件进行逆向解析,得到对应的smali文件。然后分析这个APK文件所有的smali文件的集合,AllSmali文件中的smali代码。然后逐步分析这个代码中的函数调用流程,得到类似于特征码检测中得到特征值。
本发明使用基于功能的smali代码简化方式:对于具有功能相似的命令,使它们聚合在一起。使用一个字符或者一串固定长度的字符串代表这些功能相似命令。
例如:对于Dalvik Opcode中的命令move、move/from16、move-wide、move-object、move-result、move-exception等都视为移动这一个功能。可以使用M作为这些相似命令的简化符号。
需要提请注意的是,在这里,本发明提出了使用自然语言处理的方式对AllSmali文件中简化后的命令符号进行统计分析。该方法改进了参考方法中分别对每一个samli文件进行分别统计时造成的操作和效率上的不足。这个方法包括:
1)合并所有逆向分析APK文件得到的smali文件,将他们的内容按顺序组合为一个新文件,称为AllSmali;
2)按照顺序提取AllSmali文件中所有的操作码;
3)使用基于功能的Smali代码简化方式简化所有提取到的操作码;
4)令N=4,使用自然语言处理的方式,操作步骤3)得到的简化操作码;
5)计算得到4-gram序列中每个序列重复出现的次数;
6)把步骤5)中计算得到的重复出现次数超过300次的4-gram序列保留,写入一个文件中作为APK文件的自然语言特征序列。
最后,可以得到一个关于APK文件的自然语言特征文件。
2、面向DEX的特征图像处理技术
DEX文件是用apktool等APK逆向分析软件解析APK文件后得到的一个文件。通过分析DEX文件,可以了解APK文件的一些内在行为。
本发明将灰度图像分析的思想引入这个领域,分析DEX灰度图像,可以一定程度上反映出这个APK应用的一些行为特征。即将DEX文件转换为一个灰度图像来判断一个应用是否具有恶意行为。
具体步骤如下:
1)解析APK文件,得到DEX文件;
2)使用python编写的处理程序,将DEX文件转换为一个灰度图像;
3)使用分割算法将灰度图像按照图像中边界进行分割,得到原图像的子图像集合;
4)对每个子图像,计算他们的GLCM特征值;
5)将得到的GLCM特征值,按照顺序保存下来形成一个文件。作为该APP的DEX图像特征值。
在这里分割灰度图像的算法如下:
1)每次读取两个像素的值X,Y;
2)计算Z=(X-Y)/(X,Y)min
3)计算Z是否超过阈值。如果超过阈值,超过则切割,如果没有则不切割。这个阈值可以通过实验逐步确定。
鉴于现有的算法的计算效率比较低下,本发明提出一个新的算法,具体如下
1)任然计算两个像素的值X,Y;
2)计算Z=(X-Y)/(X,Y)min
3)计算Z是否超过阈值,如果超过阈值,超过则切割,如果不超过,则计算X,Y的均值,然后和下一个像素值进行计算,转到步骤2)。
如图2所示,对得到的N-gram特征与DEX灰度图特征,分别使用基于机器学习的方案进行训练,使用基于随机森林的算法分别得到两个判断模型。这两个判断模型也即是用于判断未知类型APP特征数据的验证模型。
3、基于模糊Hash的重打包验证技术
3.1首先提取DEX文件的指纹信息。
使用模糊Hash算法提取DEX文件的指纹信息,即DEX文件的特征信息。具体流程如下:
3.1.1对文件分片
使用滚动hash算法(Rolling Hashing)来计算一个文件的hash值。滚动hash算法的计算方法如下:对于一个长度为N的内容abcde...h,若它的hash值为h1,那么对于长度为N的内容为bcde....hi的hash值为h1-X(a)+Y(i).这里X,Y分别是两个函数,只需要相应增减差量对hash值得影响即可。滚动hash算法的运行流程就像一个滑动窗口一样,每次需要计算的内容都在这个固定长度的滑动窗口内。使用Alder-34作为滚动hash算法中计算固定长度内容hash值的hash算法。
当这个滚动哈希值(使用Alder-34计算固定长度内容得到的hash值)除以n(分片值,由系统设定)的余数等于n-1时,就在当前位置进行分片。如果不是,将滑动窗口向下一个位置移动一格。之后就可以得到该文件的所有文件分片了。
3.1.2对每一个文件分片求摘要:
分片位置确定好后,对每一片求摘要。使用一个名为Fowler-Noll-Vo Hash的哈希算法。对分片内容求取其hash值。
3.1.3压缩摘要:
由于分片比较多,这里我们可以保留高6位用一个ASCII码表示出来,这就是一个分片的哈希结果。
3.1.4连接摘要:
将上述得到的摘要连起来成为一个字符串,并将分片值n纳入模糊哈希值中,如图4所示。
3.2将得到的模糊hash值存入到系统(该系统是用于实现本发明大规模快速移动应用检测和分析方法的系统)中,并与系统中已经存在的模糊hash值进行比较,经过比较后如果相似度超过阈值,就判断新存入的模糊hash值所代表的移动应用是一个重打包应用,并将该模糊hash值从系统中剔除。
对于重打包检测模块,本发明提出一个新的方法,与目前现有所有的方案不同。
该方法基于以下假设:如果两个APK文件是相似的那么他们对于函数调用的规律也是具有高度相似性的。也就是说两个相似的APK文件代表着两个相似的DEX文件。由此本发明提出一个改进方法,包含有两种不同的实现形式。
本发明提出了基于功能的smali代码简化方式处理DEX文件,然后计算DEX文件模糊hash值的方法,该方法改进了原有方法直接操作DEX文件时可能会造成的文件混淆并且大大加快了处理DEX文件的效率。
如图3所示,该方法步骤如下:
1)按顺序统计DEX文件中所有的操作码;
2)按照基于功能的smali代码简化方式将步骤1)得到的操作码简化;
3)将简化后的代码按照顺序排列形成一个有序序列;
4)按照上述的模糊hash算法的计算过程计算步骤3)得到的有序序列;
5)得到该序列的模糊hash值。
由于DEX文件中的函数调用顺序可以用简化的有序序列代替,因此使用该方法得到的模糊hash值与从DEX文件中得到的模糊hash效果上是一致,并且在处理DEX文件过程中也祛除了一些无用的用来混淆DEX文件的数据。并且该方法的处理效率比原先的效率高很多。
除此之外,本发明基于DEX图像特征处理技术,提出基于DEX图像分割的模糊hash计算方法。该方法比原方法在处理DEX文件上免除了文件分片的操作。进一步提高了计算模糊hash值得速度。
该方法步骤如下:
1)处理DEX文件形成DEX文件的灰度图像;
2)分割DEX灰度图像;
3)对每个分割得到的DEX图像的子图像计算他们的GLCM特征值,作为字符串保存下来;
4)按顺序保存这些特征值,并且分别计算他们的hash值;
5)保留hash值高六位作为hash值映射;
6)将得到的hash映射值按顺序链接到一起作为该DEX文件的灰度图像模糊hash值。
由于DEX文件的灰度图像中有着明显的界限之分,于是可以用这些分界线作为DEX文件的文件切割部分。之后使用模糊hash算法计算从分片图像中得到的GLCM特征值。最终得到图像的模糊hash值。
这两种实现方式都可以加快计算DEX文件的模糊hash值得效率,并且使用基于功能的smali代码简化方式处理DEX文件的方法还可以对拥有混淆处理的文件进行过滤的功能。
4、机器学习模块
在经过了上述自然语言处理和DEX特征图像处理后,分别得到了一个关于APP的自然语言特征值文件和灰度图像特征值的文件。通常可以采用综合评分方法,将上述检测方法进行权重分配和评分,从而得到一个合适的综合评分。权重设定可以根据实际情况。这里本发明提出使用有监督的随机森林机器学习模型,可以依据已有的验证模型分别得到对应的验证结果。所谓随机森林机器学习模型就是按照依据随机森林算法为基础的机器学习模型。用随机的方式建立一个森林,森林里面有很多的决策树组成,随机森林的每一棵决策树之间是没有关联的。在得到森林之后,当有一个新的输入样本进入的时候,就让森林中的每一棵决策树分别进行一下判断,看看这个样本应该属于哪一类(对于分类算法),然后看看哪一类被选择最多,就预测这个样本为那一类。
本发明大规模快速移动应用检测和分析方法过程如下:
1)从手机移动应用市场获取移动应用APP;
2)通过使用面向逆向解析码的自然语言处理技术,得到该APP的自然语言特征;
3)通过使用面向DEX的特征图像处理技术,得到该APP的DEX图像特征;
4)通过使用基于模糊Hash的重打包验证技术,判断该APP是否是重打包应用并赋予一个判断结果RC;
5)通过使用机器学习模块,分别得到该APP的自然语言特征和DEX图像特征的在使用机器学习后的结果。分别赋予一个判断值N,G,N代表经过验证模型后对基于APP自然语言特征所得到的判断分数,G代表对基于APP的DEX图像特征所得到的分数。
6)计算该APP的综合判断结果S=S_N(N)+S_G(G)+S_RC(RC)。RC代表经过重打包验证后所得到的分数。在最终判断时,对N,G,RC这三个分数分别赋予不同的权值进行计算,分别以计算函数S_N(),S_G(),S_RC()进行权值计算。之后计算N,G,RC与其权值计算后得到的结果之和S。S=S_N(N)+S_G(G)+S_RC(RC)。此时S就是该APP经过系统验证后所得到的一个分数,通过该分数判断该APP是属于哪种类型的APP。这里权值的赋予可为基于实验得到的经验值,本发明较佳的赋值方案如下:WeightN+WeightG+WeightRC=1,其中WeightN是N-gram的权重,值为:0.4,其中WeightG是DEX图像特征的权重,值为:0.25,其中WeightRC是重打包检测的权重,值为:0.35。
7)判断该APP的值S是否超过阈值。
8)如果S>阈值。则判断该APP是恶意应用,并将该APP的自然语言特征和DEX图像特征打上MALWARE标签,放入到机器学习里的验证模型中。
9)如果S<=阈值。则判断该APP是正常应用,并将该APP的自然语言特征和DEX图像特征打上NORMAL标签,放入到机器学习里的验证模型中。
每次对自然语言特征和DEX图像特征进行标签后,即会更新验证模块,如图6所示,更新验证模型包括:
1提取已知类型APP的自然语言特征数据形成一个集合;
2提取已知类型APP的DEX图像特征数据形成一个集合;
3使用有监督的机器学习方案分别训练这两个数据集合分别得到两个验证模型;
4使用这两个验证模型,对未知类型APP的自然语言特征与DEX图像特征进行判断处理,综合分析后判断该未知类型APP的的类型,并对该APP的自然语言特征数据和DEX图像特征数据赋予标签,表示这些数据是那一类APP的数据(NORMAL或者MALWARE);
5将含有类别的自然语言特征数据存入原有的自然语言特征数据集;
6将含有类别的DEX图像特征数据存入原有的DEX图像特征数据集;
7在增加了一定新的数据后,使用新的数据集进行训练得到新的验证模型。
如图5所示,本发明对移动应用进行检测和分析完成后会生成综合报告,综合报告包含以下内容:
1该APP的N-gram特征结果,经由验证模型(判断模型)判断得出的该APP的分类结果,以及可信程度;
2该APP的DEX灰度图像特征,经由验证模型(判断模型)判断得出的该APP的分类结果,以及可信程度;
3该APP的模糊hash值,该APP与其他APP的模糊hash值的相似程度;
4该APP的最终判断结果,包括分类结果以及是否被重打包。
本发明实现大规模快速移动应用检测和分析方法的系统整体框架图,如图1所示,该图代表本发明整体的运行流程。
1从第三方市场获取已知类型(即知道该APP是NORMAL或者MALWARE类型)的APP;
2将获取得到的APP存入系统中,或者云端设备;
3此时对获取得到的APP开始进行操作,分别用以构建代码分类模块和重打包检测模块(注意,此时是用从APP中获取的数据构建这两个模块而非实用这两个模块)。
4对于代码检测模块说明如下:
4.1首先得到一个空的检测模型;
4.2提取已知类型(NORMAL或者MALWARE)APP的DEX灰度图像特征与N-GRAM特征并形成训练集合;
4.3使用基于机器学习的方法选择随机森林算法训练得到的已知类型APP的DEX灰度图像特征与N-GRAM特征所形成的训练集,由此得到检测模型。
5对于重打包检测模型说明如下:
5.1对于所有的已知类型的APP,使用基于模糊检测的方法提取他们的模糊hash值;
5.2对所有提取得到已知类型的模糊hash值存入系统。
以上是构建该系统的流程,下面是使用该系统的流程:
1从第三方市场上获取未知类型的APP;
2将这些APP存入系统或者云端设备中;
3对获取得到的APP进行操作。此时得到的数据是用于判断这些未知类型的APP的类型以及是否被重打包过的。
4代码检测模块:
4.1此时的检测模型是由一开始已知类型APP的数据经过机器学习训练得到的模型;
4.2提取未知类型APP的DEX灰度图像特征与N-GRAM类型特征;
4.3此时不需要训练集;
4.4通过模型分别对未知类型APP的DEX灰度特征和N-gram特征进行判断,判断该未知类型APP是那种类别的APP。
5对于重打包检测模块
5.1对于未知类型的APP,使用基于模糊检测的方法提取他们的模糊hash值;
5.2此时先不做入库处理;
5.3检测未知类型APP的模糊hash值与已入库的模糊hash值的相似度;
5.4判断相似度是否超过阈值,若超过则认为该未知类型APP是一个重打包APP,否则将该未知类型APP的模糊hash值存入库中。
在完成这些操作过后,综合判断由代码检测模块与重打包检测模块得到的结果,判断未知类型APP到底是哪种类型的APP;
最后向使用者给出报告。报告包含该APP的:
1模糊hash值以及该值与哪些APP具有相似性,相似性的值是多少;
2该APP的N-gram特征,经由判断模型判断的分类类型,该判断结果的可信度;
3该APP的DEX灰度图像特征,经由判断模型判断的分类类型,该判断结果的可信度;
4综合判断类型的计算过程与结果,以及对该APP的类型判断的最终结果。
本发明大规模快速移动应用APP检测和分析系统用于实现上述实施例的大规模快速移动应用检测和分析方法。
本发明的存储装置,用于存储实现上述实施例的大规模快速移动应用检测和分析方法的程序。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。

Claims (10)

1.一种大规模快速移动应用APP检测和分析方法,其特征在于,包括以下步骤:
1)从手机移动应用市场获取移动应用APP;
2)通过使用面向逆向解析码的自然语言处理技术,得到该APP的自然语言特征;
3)通过使用面向DEX的特征图像处理技术,得到该APP的DEX图像特征;
4)通过使用基于模糊Hash的重打包验证技术,判断该APP是否是重打包应用并赋予一个判断结果RC;
5)通过使用机器学习模块,分别得到该APP的自然语言特征和DEX图像特征在使用机器学习后的结果,分别赋予一个判断值N,G;
6)计算该APP的综合判断结果S=S_N(N)+S_G(G)+S_RC(RC);
7)判断该APP的值S是否超过预设阈值;
8)如果S>预设阈值,则判断该APP是恶意应用,并将该APP的自然语言特征和DEX图像特征打上MALWARE标签,放入到机器学习模块里的验证模型中;
9)如果S<=预设阈值,则判断该APP是正常应用,并将该APP的自然语言特征和DEX图像特征打上NORMAL标签,放入到机器学习里的验证模型中。
2.根据权利要求1所述的方法,其特征在于,步骤2)具体包括:
将与APP对应的APK文件进行逆向解析,得到对应的smali文件;
合并所有smali文件,将smali文件的内容按顺序组合为一个新文件,称为AllSmali;
按照顺序提取AllSmali文件中所有的操作码;
使用基于功能的Smali代码简化方式简化所有提取到的操作码,得到简化操作码;
令N=4,使用自然语言处理的方式,操作简化操作码;
计算得到4-gram序列中每个序列重复出现的次数;
把计算得到的重复出现次数超过预设次数的4-gram序列保留,写入一个文件中作为APK文件的自然语言特征序列,得到一个关于APK文件的自然语言特征文件。
3.根据权利要求1所述的方法,其特征在于,步骤3)具体包括:
解析与APP对应的APK文件,得到DEX文件;
使用python,将DEX文件转换为一个灰度图像;
使用分割算法将灰度图像按照图像中边界进行分割,得到原图像的子图像集合;
计算对每个子图像的GLCM特征值;
将得到的GLCM特征值,按照顺序保存下来形成一个文件,作为该APP的DEX图像特征文件。
4.根据权利要求3所述的方法,其特征在于,分割灰度图像的分割算法具体为:
1)每次读取两个像素的值X,Y;
2)计算Z=(X-Y)/(X,Y)min
3)计算Z是否超过阈值,如果超过阈值,则切割,如果没有则不切割。
5.根据权利要求3所述的方法,其特征在于,分割灰度图像的分割算法具体为:
任然计算两个像素的值X,Y;
计算Z=(X-Y)/(X,Y)min
计算Z是否超过阈值,如果超过阈值,则切割,如果不超过,则计算X,Y的均值,然后和下一个像素值进行计算。
6.根据权利要求1所述的方法,其特征在于,基于模糊Hash的重打包验证技术具体为:
提取于APP对应的DEX文件的指纹信息;
使用模糊hash算法提取DEX文件的指纹信息,得到模糊哈希值;
将得到的模糊hash值存储,并与已经存在的模糊hash值进行比较,经过比较后如果相似度超过阈值,则判断新存入的模糊hash值所代表的移动应用是一个重打包应用,并将该模糊hash值从系统中剔除。
7.根据权利要求6所述的方法,其特征在于,通过基于功能的smali代码简化方式处理DEX文件,计算DEX文件模糊hash值,具体为:
按顺序统计DEX文件中所有的操作码;
按照基于功能的smali代码简化方式对操作码进行简化;
将简化后的代码按照顺序排列形成一个有序序列;
按照模糊hash算法计算有序序列的模糊hash值。
8.根据权利要求6所述的方法,其特征在于,通过基于DEX图像分割的方法计算模糊hash值,具体为:
处理DEX文件形成DEX文件的灰度图像;
分割DEX灰度图像;
对每个分割得到的DEX图像的子图像计算他们的GLCM特征值,作为字符串保存下来;
按顺序保存这些特征值,并且分别计算他们的hash值;
保留hash值高六位作为hash值映射;
将得到的hash映射值按顺序链接到一起作为该DEX文件的灰度图像模糊hash值。
9.一种大规模快速移动应用APP检测和分析系统,其特征在于,该系统用于实现上述权利要求1-8中任一项所述的方法。
10.一种存储装置,其特征在于,该存储装置用于存储实现上述权利要求1-8中任一项所述的方法的程序。
CN201710673675.6A 2017-08-09 2017-08-09 大规模快速移动应用app检测和分析方法 Active CN107688742B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710673675.6A CN107688742B (zh) 2017-08-09 2017-08-09 大规模快速移动应用app检测和分析方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710673675.6A CN107688742B (zh) 2017-08-09 2017-08-09 大规模快速移动应用app检测和分析方法

Publications (2)

Publication Number Publication Date
CN107688742A CN107688742A (zh) 2018-02-13
CN107688742B true CN107688742B (zh) 2020-06-05

Family

ID=61153210

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710673675.6A Active CN107688742B (zh) 2017-08-09 2017-08-09 大规模快速移动应用app检测和分析方法

Country Status (1)

Country Link
CN (1) CN107688742B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110532772B (zh) * 2018-05-23 2024-01-02 深信服科技股份有限公司 文件检测方法、模型、设备及计算机可读存储介质
CN109922037A (zh) * 2018-12-28 2019-06-21 深圳豪客互联网有限公司 一种应用程序安全识别方法及装置
CN109858249B (zh) * 2019-02-18 2020-08-07 暨南大学 移动恶意软件大数据的快速智能比对和安全检测方法
CN110727944B (zh) * 2019-12-19 2020-06-02 江阴市普尔网络信息技术有限公司 一种安全网站及其检测入侵的方法
CN111858322B (zh) * 2020-07-10 2022-01-11 中国科学技术大学 一种Python语言特征自动识别系统和方法
CN112487432A (zh) * 2020-12-10 2021-03-12 杭州安恒信息技术股份有限公司 一种基于图标匹配的恶意文件检测的方法、系统及设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104123500A (zh) * 2014-07-22 2014-10-29 卢永强 一种基于深度学习的Android平台恶意应用检测方法及装置
CN106096405A (zh) * 2016-04-26 2016-11-09 浙江工业大学 一种基于Dalvik指令抽象的Android恶意代码检测方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104123500A (zh) * 2014-07-22 2014-10-29 卢永强 一种基于深度学习的Android平台恶意应用检测方法及装置
CN106096405A (zh) * 2016-04-26 2016-11-09 浙江工业大学 一种基于Dalvik指令抽象的Android恶意代码检测方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于特征树的Android恶意软件静态检测技术研究;李琦;《中国优秀硕士学位论文全文数据库》;20160331;I138-193 *
安卓移动智能终端的恶意软件检测与分析方法;汪欢;《中国优秀硕士学位论文全文数据库》;20140730;I138-84 *

Also Published As

Publication number Publication date
CN107688742A (zh) 2018-02-13

Similar Documents

Publication Publication Date Title
CN107688742B (zh) 大规模快速移动应用app检测和分析方法
CN109753801B (zh) 基于系统调用的智能终端恶意软件动态检测方法
CN111798312A (zh) 一种基于孤立森林算法的金融交易系统异常识别方法
CN109992969B (zh) 一种恶意文件检测方法、装置及检测平台
CN108579094B (zh) 一种用户界面检测方法及相关装置、系统和存储介质
CN112307473A (zh) 一种基于Bi-LSTM网络和注意力机制的恶意JavaScript代码检测模型
CN111753290A (zh) 软件类型的检测方法及相关设备
CN114553591B (zh) 随机森林模型的训练方法、异常流量检测方法及装置
CN105989287A (zh) 一种海量恶意样本同源性判定方法及系统
CN111931179A (zh) 基于深度学习的云端恶意程序检测系统及方法
CN103810428A (zh) 一种宏病毒检测方法及装置
CN114090406A (zh) 电力物联网设备行为安全检测方法、系统、设备及存储介质
CN112800919A (zh) 一种检测目标类型视频方法、装置、设备以及存储介质
CN112817877B (zh) 异常脚本检测方法、装置、计算机设备和存储介质
CN113378161A (zh) 一种安全检测方法、装置、设备及存储介质
CN113420295A (zh) 恶意软件的检测方法及装置
CN113128760A (zh) 安全生产的双控管理方法、装置、设备及存储介质
CN109491970B (zh) 面向云存储的不良图片检测方法、装置及存储介质
CN112052453A (zh) 基于Relief算法的webshell检测方法及装置
CN111723370A (zh) 一种容器恶意行为检测的方法和设备
CN112163217B (zh) 恶意软件变种识别方法、装置、设备及计算机存储介质
CN113114679B (zh) 报文的识别方法、装置、电子设备及介质
CN115757075A (zh) 任务异常检测方法、装置、计算机设备及存储介质
CN111209158B (zh) 服务器集群的挖矿监控方法及集群监控系统
CN114610844A (zh) 一种敏感信息检测方法、装置、存储介质及终端

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20210415

Address after: Room 801, 85 Kefeng Road, Huangpu District, Guangzhou City, Guangdong Province

Patentee after: Yami Technology (Guangzhou) Co.,Ltd.

Address before: 430074 No. 388 Lu Lu, Hongshan District, Hubei, Wuhan

Patentee before: CHINA University OF GEOSCIENCES (WUHAN CITY)

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220901

Address after: Room JT11212, Building 2, No. 4268, Zhennan Road, Jiading District, Shanghai, 200000

Patentee after: Shanghai Bamboo Duan Network Technology Co.,Ltd.

Address before: Room 801, 85 Kefeng Road, Huangpu District, Guangzhou City, Guangdong Province

Patentee before: Yami Technology (Guangzhou) Co.,Ltd.

TR01 Transfer of patent right