一种Android应用程序的安全检测方法及系统的制作方法

文档序号:6372382阅读:260来源:国知局
专利名称:一种Android应用程序的安全检测方法及系统的制作方法
技术领域
本申请涉及软件安全技术领域,特别是涉及一种Android应用程序的安全检测方法及系统。
背景技术
Android是一种以Linux为基础的开放源码操作系统,主要使用于手机等移动终端,目前尚未有统一中文名称。Android平台由操作系统、中间件、用户界面和应用软件组成,Android应用程序即指Android平台下的应用软件。随着Android智能手机的普及,逐渐形成了一条针对Android系统的恶意软件的产业链。这些恶意软件通常伪装成正常的应用软件或者游戏欺骗用户安装,一旦进入用户手机,就在后台悄悄定制SP服务或拨打付费电话吸取用户话费,或者收集用户的隐私,或 者窃取用户的网银和第三方支付密码以实施进一步的盗窃。据统计,目前已有超过8000种Android恶意软件,超过500万部Android手机遭到了感染。针对这些众多的Android恶意软件,各个致力于软件杀毒的公司相继推出了Android平台的杀毒软件。但是,它们的杀毒引擎主要移植自PC上的杀毒引擎,采用传统PC杀毒的思路,按照文件进行查杀,甚至对在Android手机上根本无法运行的文件都会进行扫描,导致扫描速度慢、扫描效率低的问题;而且,扫描算法采用提取文件片段计算CRC (Cyclic Redundancy Check,循环冗余校验码)和 MD5 (Message Digest Algorithm,消息摘要算法第五版)再在本地数据库中查找的方法,通用性不高,容易导致误报,误报率较闻。

发明内容
本申请提供了一种Android应用程序的安全检测方法及系统,以解决现有的Android平台的杀毒方法扫描速度慢、误报率高的问题。为了解决上述问题,本申请公开了一种Android应用程序的安全检测方法,包括扫描Android安装包,并从所述Android安装包中提取出指定的特征信息;在预置的安全识别库中查找与指定的单个特征信息或其组合相匹配的特征记录;其中,所述安全识别库中包含特征记录及特征记录对应的安全级别,每条特征记录中包含单个特征信息或特征信息的组合;将查找到的特征记录对应的安全级别包含在所述Android安装包的安全检测结果中显示。优选地,所述从Android安装包中提取出的指定的特征信息包括以下中的一种或几种组合Android安装包的包名,版本号,数字签名,Android组件receiver的特征,Android组件service的特征,Android组件activity的特征,可执行文件中的指令或字符串,Android安装包目录下各文件的MD5值;其中,所述可执行文件包括Dex文件,和/或,ELF文件;所述Dex文件包括classes, dex文件,扩展名为.jar的文件,以及,Dex格式的文件。
优选地,所述安全识别库中的特征信息包括以下中的一种或几种组合各种样本Android安装包的包名,版本号,数字签名,Android组件receiver的特征,Android组件service的特征,Android组件activity的特征,可执行文件中的指令或字符串,Android安装包目录下各文件的MD5值;其中,所述可执行文件包括Dex文件,和/或,ELF文件;所述Dex文件包括classes, dex文件,扩展名为.jar的文件,以及,Dex格式的文件;其中,所述样本Android安装包包括各种安全级别下的Android安装包。优选地,所述在安全识别库中查找与指定的单个特征信息或其组合相匹配的特征记录,包括将所述指定的特征信息进行组合,得到至少包含两个特征的各项特征组合;从包含最多特征的特征组合开始,在所述安全识别库中查找与所述特征组合相匹配的特征记录,如果未查找到,则逐个减少特征组合中的特征个数,针对减少了特征个数的特征组合,继续在所述安全识别库中查找与所述特征组合相匹配的特征记录,如果未查找到,则在所述安全识别库中查找与单个特征信息相匹配的特征记录。优选地,在查找过程中,针对特征个数相同的多项特征组合,按照预先设定的先后 顺序进行查找;针对单个特征信息,按照预先设定的先后顺序进行查找。优选地,所述从Android安装包中提取出指定的特征信息,包括从所述Android安装包的AndroidManifest. xml文件中提取出以下中的一种或几种组合包名,版本号,Android 组件receiver 的特征,Android 组件 service 的特征,Android 组件 activity 的特征;和/或,从所述Android安装包的META-INF\目录下的.RSA文件中提取出所述Android安装包的数字签名;和/或,从所述An droid安装包的classes, dex文件中提取出可执行指令;和/或,从所述Android安装包的lib\目录下提取出ELF文件的指令或字符串。优选地,所述安全级别包括安全、危险、谨慎和木马四个级别。优选地,所述安全检测结果还包括以下至少一项行为描述信息,软件描述信息,时间戳信息。本申请还提供了一种Android应用的安全检测系统,包括特征提取模块,用于扫描Android安装包,并从所述Android安装包中提取出指定的特征信息;检测模块,用于在预置的安全识别库中查找与指定的单个特征信息或其组合相匹配的特征记录;其中,所述安全识别库中包含特征记录及特征记录对应的安全级别,每条特征记录中包含单个特征信息或特征信息的组合;显示模块,用于将查找到的特征记录对应的安全级别包含在所述Android安装包的安全检测结果中显示。优选地,所述从Android安装包中提取出的指定的特征信息包括以下中的一种或几种组合Android安装包的包名,版本号,数字签名,Android组件receiver的特征,Android组件service的特征,Android组件activity的特征,可执行文件中的指令或字符串,Android安装包目录下各文件的MD5值;其中,所述可执行文件包括Dex文件,和/或,ELF文件;所述Dex文件包括classes, dex文件,扩展名为.jar的文件,以及,Dex格式的文件。优选地,所述安全识别库中的特征信息包括以下中的一种或几种组合各种样本Android安装包的包名,版本号,数字签名,Android组件receiver的特征,Android组件service的特征,Android组件activity的特征,可执行文件中的指令或字符串,Android安装包目录下各文件的MD5值;其中,所述可执行文件包括Dex文件,和/或,ELF文件;所述Dex文件包括classes, dex文件,扩展名为.jar的文件,以及,Dex格式的文件;其中,所述样本Android安装包包括各种安全级别下的Android安装包。优选地,所述检测模块包括特征组合子模块,用于将所述指定的特征信息进行组合,得到至少包含两个特征的各项特征组合;第一查找子模块,用于从包含最多特征的特征组合开始,在所述安全识别库中查找与所述特征组合相匹配的特征记录;第二查找子模块,用于当第一查找子模块未查找到时,逐个减少特征组合中的特征个数,针对减少了特征个数的特征组合,继续在所述安全识别库中查找与所述特征组合相匹配的特征记录;第三查找子模块,用于当第二查找子模块未查找到时,在所述安全识别库中查找与单个特征信息相匹配的特征记录。优选地,所述第二查找子模块在查找过程中,针对特征个数相同的多项特征组合,按照预先设定的先后顺序进行查找;所述第三查找子模块针对单个特征信息,按照预先设定的先后顺序进行查找。
优选地,所述特征提取模块包括第一提取子模块,用于从所述Android安装包的AndroidManifest. xml文件中提取出以下中的一种或几种组合包名,版本号,Android组件receiver的特征,Android组件service的特征,Android组件activity的特征;和/或,第二提取子模块,用于从所述Android安装包的META-INF\目录下的.RSA文件中提取出所述Android安装包的数字签名;和/或,第三提取子模块,用于从所述Android安装包的classes, dex文件中提取出可执行指令;和/或,第四提取子模块,用于从所述Android安装包的lib\目录下提取出ELF文件的指令或字符串。优选地,所述安全级别包括安全、危险、谨慎和木马四个级别。与现有技术相比,本申请包括以下优点首先,本申请提供的针对Andro i d应用程序的安全检测,并不是对Andro i d系统中的所有文件进行扫描,而是通过扫描Android安装包来进行安全检测。由于Android上的病毒、木马和其他恶意软件想要进入用户的手机,需要打包成Android安装包的形式。反过来说,如果不是一个合法的Android安装包,它就无法安装到用户手机上,也就不会对用户产生危害。基于这一点,杀毒引擎可以把查杀的目标集中到对Android安装包的扫描上,从而大大提闻扫描的效率。其次,本申请从Android安装包中提取出指定的特征进行检测,如将包名、版本号、数字签名、Android组件receiver、service、activity中的信息等作为指定的特征,这些指定的特征对于检测最具代表性,因此与移植自PC上的传统杀毒引擎相比,本申请准确抓住了 Android平台下应用的几大关键特征,使得扫描速度快、查杀准确率高。再次,本申请进行的检测提供了安全、危险、谨慎和木马四个安全级别,不仅可以检测出病毒、木马和其他恶意软件,还可以将正常的应用、存在安全风险的应用和虽然正常但存在一些问题的应用全部检测出来。因此,本申请对Android应用程序的检测不局限于传统的查毒检测,而是可以为用户提供安全、危险、谨慎等更多的提示。最后,本申请对提取出的各项特征进行安全检测时,采用对各项特征进行组合查询的方式,进一步提高了检测效率和检测的准确率。当然,实施本申请的任一产品不一定需要同时达到以上所述的所有优点。


图I是本申请实施例中Android系统的架构设计图;图2是本申请实施例所述一种Android应用程序的安全检测方法流程图;图3是本申请实施例所述在安全识别库中进行查找的流程图;图4是本申请另一实施例所述在安全识别库中进行查找的流程图;图5是本申请实施例所述一种Android应用程序的安全检测系统的结构图;图6是本申请实施例所述的安全检测系统中检测模块的结构图。
具体实施方式

为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式
对本申请作进一步详细的说明。分析现有技术中的各种杀毒引擎,由于移植自PC上的杀毒引擎,主要针对的是PC系统的特性而设计,而PC系统与Android系统既有相同的特性,也有不同的特性,但现有技术并没有深入理解Android系统本身的特点,因此并不完全适合于Android系统的杀毒,存在着扫描速度慢、误报率高的问题。基于此,本申请结合Android系统本身的特点,提出一种专门针对Android系统特性而设计的杀毒方法,下面先介绍设计思路。在Android系统上,一个可以安装、运行的应用,需要打包成Android系统的APK文件格式。APK 是 Android application package file 的缩写,简称 APK 文件,即 Android安装包,也可以理解为Android终端上安装的应用软件。APK文件其实是ZIP文件格式,但后缀名被修改为apk,通过Unzip等工具解压可以看到其内部的文件结构,如下表所示
文件名说明
META-INF\ 0 t该 0 录不一般存 MANIFEST.MF 和
以.RSA, .SF结尾的文件,这些文件记录了其它0录文件的证书签名,Android系统在安装APK安装包的时候会逐个检查APK内部各文件是否与本目录记录的证节签名一致,如果不一致,则认为文件已被葛改,拒绝该APK
权利要求
1.一种Android应用程序的安全检测方法,其特征在于,包括 扫描Android安装包,并从所述Android安装包中提取出指定的特征信息; 在预置的安全识别库中查找与指定的单个特征信息或其组合相匹配的特征记录;其中,所述安全识别库中包含特征记录及特征记录对应的安全级别,每条特征记录中包含单个特征信息或特征信息的组合; 将查找到的特征记录对应的安全级别包含在所述Android安装包的安全检测结果中显不O
2.根据权利要求I所述的方法,其特征在于,所述从Android安装包中提取出的指定的特征信息包括以下中的一种或几种组合 Android安装包的包名,版本号,数字签名,Android组件receiver的特征,Android组件service的特征,Android组件activity的特征,可执行文件中的指令或字符串,Android安装包目录下各文件的MD5值; 其中,所述可执行文件包括Dex文件,和/或,ELF文件;所述Dex文件包括classes,dex文件,扩展名为.jar的文件,以及,Dex格式的文件。
3.根据权利要求I所述的方法,其特征在于,所述安全识别库中的特征信息包括以下中的一种或几种组合 各种样本Android安装包的包名,版本号,数字签名,Android组件receiver的特征,Android组件service的特征,Android组件activity的特征,可执行文件中的指令或字符串,Android安装包目录下各文件的MD5值; 其中,所述可执行文件包括Dex文件,和/或,ELF文件;所述Dex文件包括classes,dex文件,扩展名为.jar的文件,以及,Dex格式的文件; 其中,所述样本Android安装包包括各种安全级别下的Android安装包。
4.根据权利要求I至3任一所述的方法,其特征在于,所述在安全识别库中查找与指定的单个特征信息或其组合相匹配的特征记录,包括 将所述指定的特征信息进行组合,得到至少包含两个特征的各项特征组合; 从包含最多特征的特征组合开始,在所述安全识别库中查找与所述特征组合相匹配的特征记录,如果未查找到,则 逐个减少特征组合中的特征个数,针对减少了特征个数的特征组合,继续在所述安全识别库中查找与所述特征组合相匹配的特征记录,如果未查找到,则在所述安全识别库中查找与单个特征信息相匹配的特征记录。
5.根据权利要求4所述的方法,其特征在于 在查找过程中,针对特征个数相同的多项特征组合,按照预先设定的先后顺序进行查找; 针对单个特征信息,按照预先设定的先后顺序进行查找。
6.根据权利要求2所述的方法,其特征在于,所述从Android安装包中提取出指定的特征信息,包括 从所述Android安装包的AndroidManifest. xml文件中提取出以下中的一种或几种组合包名,版本号,Android组件receiver的特征,Android组件service的特征,Android组件activity的特征;和/或, 从所述Android安装包的META_INF\目录下的.RSA文件中提取出所述Android安装包的数字签名; 和/或, 从所述Android安装包的classes, dex文件中提取出可执行指令; 和/或, 从所述Android安装包的lib\目录下提取出ELF文件的指令或字符串。
7.根据权利要求I所述的方法,其特征在于 所述安全级别包括安全、危险、谨慎和木马四个级别。
8.根据权利要求I所述的方法,其特征在于,所述安全检测结果还包括以下至少一项 行为描述信息,软件描述信息,时间戳信息。
9.一种Android应用的安全检测系统,其特征在于,包括 特征提取模块,用于扫描Android安装包,并从所述Android安装包中提取出指定的特征信息; 检测模块,用于在预置的安全识别库中查找与指定的单个特征信息或其组合相匹配的特征记录;其中,所述安全识别库中包含特征记录及特征记录对应的安全级别,每条特征记录中包含单个特征信息或特征信息的组合; 显示模块,用于将查找到的特征记录对应的安全级别包含在所述Android安装包的安全检测结果中显示。
10.根据权利要求9所述的系统,其特征在于,所述从Android安装包中提取出的指定的特征信息包括以下中的一种或几种组合 Android安装包的包名,版本号,数字签名,Android组件receiver的特征,Android组件service的特征,Android组件activity的特征,可执行文件中的指令或字符串,Android安装包目录下各文件的MD5值; 其中,所述可执行文件包括Dex文件,和/或,ELF文件;所述Dex文件包括classes,dex文件,扩展名为.jar的文件,以及,Dex格式的文件。
11.根据权利要求9所述的系统,其特征在于,所述安全识别库中的特征信息包括以下中的一种或几种组合 各种样本Android安装包的包名,版本号,数字签名,Android组件receiver的特征,Android组件service的特征,Android组件activity的特征,可执行文件中的指令或字符串,Android安装包目录下各文件的MD5值; 其中,所述可执行文件包括Dex文件,和/或,ELF文件;所述Dex文件包括classes,dex文件,扩展名为.jar的文件,以及,Dex格式的文件; 其中,所述样本Android安装包包括各种安全级别下的Android安装包。
12.根据权利要求9至11任一所述的系统,其特征在于,所述检测模块包括 特征组合子模块,用于将所述指定的特征信息进行组合,得到至少包含两个特征的各项特征组合; 第一查找子模块,用于从包含最多特征的特征组合开始,在所述安全识别库中查找与所述特征组合相匹配的特征记录;第二查找子模块,用于当第一查找子模块未查找到时,逐个减少特征组合中的特征个数,针对减少了特征个数的特征组合,继续在所述安全识别库中查找与所述特征组合相匹配的特征记录; 第三查找子模块,用于当第二查找子模块未查找到时,在所述安全识别库中查找与单个特征信息相匹配的特征记录。
13.根据权利要求12所述的系统,其特征在于 所述第二查找子模块在查找过程中,针对特征个数相同的多项特征组合,按照预先设定的先后顺序进行查找; 所述第三查找子模块针对单个特征信息,按照预先设定的先后顺序进行查找。
14.根据权利要求10所述的系统,其特征在于,所述特征提取模块包括 第一提取子模块,用于从所述Android安装包的AndroidManifest. xml文件中提取出以下中的一种或几种组合包名,版本号,Android组件receiver的特征,Android组件service的特征,Android组件activity的特征; 和/或, 第二提取子模块,用于从所述Android安装包的META-INF\目录下的.RSA文件中提取出所述Android安装包的数字签名; 和/或, 第三提取子模块,用于从所述Android安装包的classes, dex文件中提取出可执行指令; 和/或, 第四提取子模块,用于从所述Android安装包的lib\目录下提取出ELF文件的指令或字符串。
15.根据权利要求9所述的系统,其特征在于 所述安全级别包括安全、危险、谨慎和木马四个级别。
全文摘要
本申请提供了一种Android应用程序的安全检测方法及系统,以解决现有的Android平台的杀毒方法扫描速度慢、误报率高的问题。所述方法包括扫描Android安装包,并从所述Android安装包中提取出指定的特征信息;在预置的安全识别库中查找与指定的单个特征信息或其组合相匹配的特征记录;其中,所述安全识别库中包含特征记录及特征记录对应的安全级别,每条特征记录中包含单个特征信息或特征信息的组合;将查找到的特征记录对应的安全级别包含在所述Android安装包的安全检测结果中显示。本申请扫描速度快、查杀准确率高。
文档编号G06F21/22GK102779257SQ201210221959
公开日2012年11月14日 申请日期2012年6月28日 优先权日2012年6月28日
发明者张旭, 李涛 申请人:奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1