一种Android应用程序的安全检测方法技术

技术编号:21200547 阅读:57 留言:0更新日期:2019-05-25 01:26
本发明专利技术提供一种Android应用程序的安全检测方法,属于信息安全领域,具体方法包括:获取待检测APK的特征信息;根据预设得分规则从多个维度对待检测APK进行相似性检测;根据预设统计算法和预设排序规则得到相似度序列;通过相似度序列与预设安全阈值进行比较判断待检测APK的安全性,并得出待检测APK与标准库中APK的相似关系。本申请通过多个维度对待检测APK进行相似性检测有效提高检测结果的准确率,同时通过预设得分规则和预设统计规则得出应用之间的相似度,解决了现有技术中无法发现更多应用之间共同点的缺陷。

A Security Detection Method for Android Applications

The invention provides a security detection method for Android applications, which belongs to the field of information security. The specific methods include: obtaining the characteristic information of APK to be detected; detecting the similarity of APK from multiple dimensions according to preset scoring rules; obtaining the similarity sequence according to preset statistical algorithm and preset ranking rules; and comparing the similarity sequence with the preset security threshold. The security of APK to be detected is judged and the similar relationship between APK to be detected and APK in standard library is obtained. This application effectively improves the accuracy of detection results by multi-dimension similarity detection of detection APK. At the same time, the similarity between applications is obtained by preset scoring rules and preset statistical rules, which solves the defect that more applications can not find common ground in the existing technology.

【技术实现步骤摘要】
一种Android应用程序的安全检测方法
本专利技术属于信息安全领域,尤其涉及一种Android应用程序的安全检测方法。技术背景随着科学技术的不断进步,网络技术日益发达,智能手机已经成为人们生活中不可或缺的一部分,其中Android操作系统占据了主导地位。Android平台的应用软件使用Java语言编写,但Java语言的特性导致Android应用软件容易被逆向和破解,同时,Android平台允许应用程序的开发者使用自己的证书对安装包进行签名,也允许系统从第三方应用市场中安装应用,因此,当Android应用软件被逆向后,可以修改其代码与资源等文件,重新签名生成新的安装包,发布到第三方应用市场供用户安装使用。很多恶意软件与广告软件开发者利用这种方法,将正常软件中植入恶意代码或者广告代码,以达到更加广泛的传播并欺骗用户安装使用的目的,从而获取更多的利益。但是,为保证原应用软件的正常使用,恶意软件通常不会对原应用软件做大量修改,且恶意代码与广告代码通常是相对独立的模块,因此如何利用这一特性对已经植入恶意代码或者广告代码的软件进行检测是目前急需解决的问题。申请号为201210221959.9的专利提出了一种Android应用程序的安全检测方法及系统,虽然能够利用安全应用与木马应用之间的差异检测出APK的安全性,但其因检测维度较少导致检测结果不准确,且检测结果不能展示待检测APK与库中APK的相似关系,因此,如何解决上述问题是目前亟需解决的问题。
技术实现思路
本专利技术提供了一种Android应用程序的安全检测方法,旨在解决上述问题。本专利技术提供一种Android应用程序的安全检测方法,所述方法包括:通过解析和反编译提取Android应用程序安装包(AndroidPackage,简称APK)的特征信息,所述特征信息是存在所述APK中的用于做安全检测的特征信息,其中包括签名权限信息、目录信息、文件信息、内容信息和时间戳信息;将待检测APK与预设的标准APK库中的多个目标应用作关于所述APK特征信息的相似性检测;将根据预设排序规则得到的相似度序列与预设的安全阈值做比较,判断待检测APK是否是安全应用。优选地,首先通过解压Android应用程序安装包(简称APK)得到编译后的代码文件、资源文件和布局文件,其次通过反编译过程从上述已编译的文件获得相应的未编译的文件,最后得到APK的签名权限信息、目录信息、文件信息、内容信息和时间戳等特征信息,其中每个APK只提取一个距离当前时间最近的时间戳。优选地,待检测APK与标准APK库中的目标应用按照预设得分规则分别从签名权限信息、目录信息、文件信息和内容信息四个维度作相似性检测,并根据预设统计算法利用检测结果得到待检测APK与该目标应用的相似度。优选地,待检测APK与标准库中的APK分别做相似性检测后得到多个相似度,按照预设排序规则将得到的多个相似度排序,得到排序后的相似度序列,最后将相似度序列与预设的安全阈值作比较,若某一相似度不小于安全阈值,则判定待检测APK与该相似度代表的目标APK的属性相同。上述本专利技术提供了一种Android应用程序的安全检测方法,本申请首先利用预设得分规则从多个维度做待检测APK与预设标准库中APK的相似性检测,并根据预设统计算法得到待检测APK与预设标准库中APK的相似度,可有效提高相似性检测的准确性;其次按照预设排序规则将得到的相似度排序,得到相似度序列;最后通过预设安全阈值与相似度序列依次比较,判断待检测APK是否是安全应用,并得出待检测APK与预设标准库中APK的相似关系,以达到快速检测出Android应用程序安全性以及发现更多应用之间共同点的目的。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本专利技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。图1为本专利技术第一实施例提供的一种Android应用程序的安全检测方法的流程图;图2为本专利技术第二实施例提供的一种Android应用程序的安全检测方法的流程图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。因此,以下对在附图中提供的本专利技术的实施例的详细描述并非旨在限制要求保护的本专利技术的范围,而是仅仅表示本专利技术的选定实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。如图1所示,是本专利技术第一实施例提供的一种Android应用程序的安全检测方法的流程图,下面将对图1所示的具体流程图进行详细阐述。步骤101,提取APK特征信息;其中,通过对APK进行解包和反编译操作,获得该APK的特征信息。其中,所述解包过程为解压APK得到编译后的代码文件、资源文件和布局文件;所述反编译过程为从上述已编译的文件中获得相应的未编译文件。作为一种实施方式,将通过解包操作得到的文件命名为解压文件,将通过反编译操作得到的文件命名为源码文件。其中,所述APK特征信息是存在APK未编译文件中的用于做安全检测的特征信息,其中包括签名权限信息、目录信息、文件信息、内容信息和时间戳信息。其中,所述签名权限信息指签名信息和权限信息,签名用于标识应用程序的作者和其开发的应用程序之间的关系,通过签名机制能够判断APK的开发者,签名信息存在于解压后APK的META-LNF目录下的.RSA文件中;权限信息指应用程序所需要的权限,存在于解压后APK的布局文件AndroidManifest.xml中,根据权限的具体行为,将权限信息分为普通权限信息和危险权限信息,作为一种实施方式,这里权限信息可以指读取联系人信息权限、读取短信权限、发送短信权限和上网权限等,其中上网权限为普通权限信息,读取联系人信息权限、读取短信权限和发送短信权限为危险权限信息。其中,所述目录信息指由该目录及其所包含指定文件所生成的唯一md5值,具体生成md5的规则为,对于非嵌套目录,即该目录不再包含目录级,首先分别计算该目录包含的所有文件(其中不包含配置文件、.dex文件和签名文件)的md5值,然后排序后串联组成一个字符串,并在末尾添加该目录名,最后利用得到的字符串重新生成新的md5,即为该非嵌套目录的目录信息;对于嵌套目录,即该目录下包含目录级,首先计算该目录所包含目录的目录信息和文件信息,然后将得到的md5进行排序并串联组成一个字符串,在末尾添加该嵌套目录名,最后利用得到的字符串重新生成新的唯一md5,该md5即为该嵌套目录的目录信息,其中目录信息用于识别广告库和公共开发库。其中,所述文件信息分为解压文件信息和源码文件信息,其中解压文件信息指APK解压后得到dex文件、so文件、jar文件和shell脚本,将其分别转化为唯一md5值,构成的md5集合;源码文件信息指将上述dex文件反编译本文档来自技高网...

【技术保护点】
1.一种Android应用程序的安全检测方法,其特征在于,包括以下步骤:通过解包和反编译提取Android应用程序安装包(AndroidPackage,简称APK)的特征信息,所述特征信息是存在所述APK中的用于做安全检测的特征信息,其中包括签名权限信息、目录信息、文件信息、代码行为和时间戳信息;将待检测APK与预设的标准APK库中的多个目标应用作关于所述APK特征信息的相似性检测;将根据预设排序规则得到的相似度序列与预设的安全阈值做比较,判断待检测APK是否是安全应用。

【技术特征摘要】
1.一种Android应用程序的安全检测方法,其特征在于,包括以下步骤:通过解包和反编译提取Android应用程序安装包(AndroidPackage,简称APK)的特征信息,所述特征信息是存在所述APK中的用于做安全检测的特征信息,其中包括签名权限信息、目录信息、文件信息、代码行为和时间戳信息;将待检测APK与预设的标准APK库中的多个目标应用作关于所述APK特征信息的相似性检测;将根据预设排序规则得到的相似度序列与预设的安全阈值做比较,判断待检测APK是否是安全应用。2.如权利要求1所述方法,其特征在于,通过解包和反编译提取Android应用程序安装包(AndroidPackage,简称APK)的特征信息,所述特征信息是存在所述APK中的用于做安全检测的特征信息,其中包括签名权限信息、目录信息、文件信息、代码行为和时间戳信息,具体为:首先通过解压Android应用程序安装包得到编译后的代码文件、资源文件和布局文件,其次通过反编译过程从上述已编译的文件获得相应的未编译的文件,最后得到APK的签名权限信息、目录信息、文件信息、代码行为和时间戳特征信息,其中每个APK只提取一个距离当前时间最近的时间戳。3.如权利要求1所述方法,其特征在于,将待检测APK与预设的标准APK库中的多个目标应用做关于所述APK特征信息的相似性检测,所述预设的标准APK库具体为:预先建立包含安全应用和木马应用的标准APK库,并存储库中所有应用的关于做安全检测的特征信息。4.如权利要求1所述方法,其特征在于,将待检测APK与预设的标准APK库中的多个目标应用做关于所述APK特征信息的相似性检测,具体检测过程为:待检测APK与标准APK库中的目标应用按照预设得分规则分别从签名权限信息、目录信息、文件信息和代码行为四个维度作相似性检测,并根据预设统计算法利用检测结果得到待检测APK与该目标应用的相似度。5.如权利要求4所述,其特征在于,所述预设得分规则具体为:所述预设得分规则包括签名权限得分规则、目录信息得分规则、文件信息得分规则和代码行为得分规则。6.如权利要求5所述,其特征在于,所述签名权限信息得分规则具体为:设应用程序A和B,A和B做签名权限信息的相似性检测时的得分公式为:其中其中,y1为签名信息做相似性检测的第一参数,y2为权限信息做相似性检测的第二参数,其中y1+y2=1,且均大于0;T1为签名权限信息做相似性检测的预设满分值;为权限信息做相似性检测后的得分,y21为权限信息中危险权限做相似性检测的第三参数,n1和m1分别为从应用程序A和B中提取的危险权限总个数,s1为应用程序A和B包含相同的危险权限个数;y22为权限信息中普通权限做相似性检测的第四参数,n2和m2分别为从应用程序A和B中提取的普通权限总个数,s2为应用程序A和B包含相同的普通权限个数,其中n1、m1、n2、m2均为正整数,s1、s2可为0,也可为正整数,其中y21+y22=1,且均大于0。7.如权利要求5所述,其特征在于,所述目录信息得分规则具体为:设应用程序A和B,A和B做目录信息相似性检测时的得分公式为:其中,i为当前相似性检测的目录层数(i为正整数),当检测根目录时i=1,下层目录i=2,依次类推;p为待检测APK的目录结构总层数(p为正整数);T2为目录信息做相似性检测的预设满分值;ni为应用程序A中第i层的目录个数,si为应用程序A和B在第i层做相似性检测时具有相同目录信息的个数,此时ni和si需要满足,当应用程序A和B在第i-1(i≠1)层做目录信息检测时,若Ae与Bf的目录信息相同,则Ae与Bf目录下所有层数的目录不再做相似性检测,且当统计第i层到第p层的ni和si值时,Ae与Bf目录下所有层数的目录不参与统计,ni、si≥0。8.如权利要求5所述,其特征在于,所述文件信息得分规则具体为:设应用程序A和B,A和B做文件信息相似性检测时的得分公式为:其中其...

【专利技术属性】
技术研发人员:黄晓强夏婷朱永强张彤彤
申请(专利权)人:成都网安科技发展有限公司
类型:发明
国别省市:四川,51

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

1