用于识别恶意apk文件的方法和装置制造方法

文档序号:6509638阅读:247来源:国知局
用于识别恶意apk文件的方法和装置制造方法
【专利摘要】本发明公开了一种用于识别恶意APK文件的方法和装置。该识别恶意APK文件的方法包括以下步骤:选取预定数量APK文件样本;解析APK文件样本中的可执行文件并提取出解析文本中的特征字符串;利用特征字符串构建恶意程序特征码列表和非恶意程序特征码列表;将APK文件样本对应的特征字符串与恶意程序特征码列表和非恶意程序特征码列表进行比对,得到该APK文件样本的字符串特征向量,并根据字符串特征向量和该APK文件样本向系统申请的权限生成该APK文件的识别特征向量;对多个APK文件样本的识别特征向量进行训练,生成用于识别恶意APK文件的分类模型;利用该分类模型对未知类型的APK文件进行识别。利用本发明的技术方案,识别准确度高,并可对未知病毒进行预测。
【专利说明】用于识别恶意APK文件的方法和装置
【技术领域】
[0001]本发明涉及互联网计算机安全防护领域,具体而言,涉及一种用于识别恶意APK文件的方法和装置。
【背景技术】
[0002]APK是Android application package file的缩写,即安卓安装包,可以理解为安卓终端上安装的应用软件。随着安卓终端的普及和发展,各种各样的APK应运而生,例如,一些APK通过诸如短信定制付费服务、拨打付费电话、备份用户手机中的敏感数据至特定服务器等恶意行为来损害用户的权益。这类恶意APK在用户不知晓也未授权的情况下潜入到用户的终端中,对用户的信息安全和财产安全带来隐患。
[0003]现有技术中的识别恶意APK的方法主要依靠人工抽取特征码并制定相应的识别规则或者根据病毒APK制作者的APK数字签名进行识别。前者的识别方式需要分析师针对已有APK程序样本进行人工分析,找出相应的特征,这严重依赖于病毒分析师的能力,因此需要大量经验丰富的人员才能满足解决问题的需求,并且由于技术复杂,识别的效率比较低。而且利用人工总结特征码一般只能处理已知的恶意APK,不能对可能发生的问题进行防范,因此具有一定的滞后性;后者的识别方法基于简单的特征或规则或者数字签名进行识另Ij,很容易被病毒制作者绕开,造成漏过恶意程序的问题。

【发明内容】

[0004]鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的识别恶意APK文件的装置和相应的识别恶意APK文件的方法。
[0005]依据本发明的一个方面,提供了识别恶意APK文件的方法。该识别恶意APK文件的方法包括以下步骤:选取预定数量APK文件样本;解析APK文件样本中的可执行文件并提取出解析文本中的特征字符串;利用特征字符串构建恶意程序特征码列表和非恶意程序特征码列表;将APK文件样本对应的特征字符串与恶意程序特征码列表和非恶意程序特征码列表分别进行比对,得到该APK文件样本的字符串特征向量,并根据字符串特征向量和该APK文件样本向系统申请的权限生成该APK文件样本的识别特征向量;对多个APK文件样本的识别特征向量进行训练,生成用于识别恶意APK文件的分类模型;利用该分类模型对未知类型的APK文件进行识别。
[0006]可选地,解析APK文件样本中的可执行文件并提取出解析文本中的特征字符串包括:解析APK文件样本中的可执行文件,提取解析文本中的字符串;对字符串进行大小写统一处理,并对同一解析文本中的字符串进行去重处理,得到该样本的特征字符串。
[0007]可选地,利用特征字符串构建程序特征码列表和非恶意程序特征码列表包括:计算每一特征字符串在APK文件样本中的恶意APK文件样本中出现的比率,记为第一比率;计算每一特征字符串在APK文件样本中的非恶意APK文件样本中出现的比率,记为第二比率;按照第一比率和第二比率选取恶意程序特征码和非恶意程序特征码,并由恶意程序特征码构建恶意程序特征码列表,以及由非恶意程序特征码构建非恶意程序特征码列表。
[0008]可选地,按照第一比率和第二比率选取恶意程序特征码和非恶意程序特征码包括:计算同一特征字符串的第一比率和第二比率的差值,并按照所述差值对特征字符串进行排序;按照所述排序的结果选取恶意程序特征码和非恶意程序特征码。
[0009]可选地,对多个APK文件样本的识别特征向量进行训练包括:使用支持向量机算法或者逻辑回归法对APK文件样本的识别特征向量进行训练。
[0010]可选地,在生成用于识别恶意APK文件的分类模型之后还包括:选取验证APK样本;使用分类模型对验证APK样本进行恶意程序识别;根据识别结果对分类模型进行优化。
[0011]可选地,根据识别结果对分类模型进行优化包括:将识别结果与验证APK样本的类型进行比较,以判断是否出现漏报;在出现漏报的情况下,解析出现漏报的验证APK样本中的可执行文件,并根据解析出的漏报的验证APK样本的特征字符串对恶意程序特征码和非恶意程序特征码进行修改,并利用修改后的恶意程序特征码和非恶意程序特征码重新生成分类模型。
[0012]可选地,根据识别结果对所述分类模型进行优化包括:将识别结果与验证APK样本的类型进行比较,以判断是否出现误报;在出现误报的情况下,解析出现误报的验证APK样本中的可执行文件,并根据解析出的误报的验证APK样本的特征字符串对恶意程序特征码进行修改,并利用修改后的恶意程序特征码重新生成分类模型。
[0013]可选地,解析所述APK文件样本中的可执行文件并提取出解析文本中的特征字符串包括:对APK文件样本中的dex文件进行解析,得到的字符串包括以下任一项或多项:头部信息特征码、常量特征码、操作数特征码、指令特征码、指令特征码序列、类名函数名特征码。
[0014]可选地,在根据字符串特征向量和该APK文件样本向系统申请的权限生成该APK文件样本的识别特征向量之前还包括:对APK文件样本中的AndroidManifest.xml进行解析,以得到该APK文件样本申请的功能权限;将功能权限与安卓系统的功能权限列表进行比对,得到APK文件样本的权限特征向量。
[0015]根据本发明的另一方面,提供了一种用于识别恶意APK文件的装置。该用于识别恶意APK文件的装置包括:样本选取模块,用于选取预定数量APK文件样本;解析模块,用于解析APK文件样本中的可执行文件并提取出解析文本中的特征字符串;特征码生成模块,用于利用特征字符串构建恶意程序特征码列表和非恶意程序特征码列表;特征向量生成模块,用于将APK文件样本对应的特征字符串与恶意程序特征码列表和非恶意程序特征码列表分别进行比对,得到该APK文件样本的字符串特征向量,并根据字符串特征向量和该APK文件样本向系统申请的权限生成该APK文件样本的识别特征向量;模型训练模块,用于对多个APK文件样本的识别特征向量进行训练,生成用于识别恶意APK文件的分类模型;识别模块,用于利用该分类模型对未知类型的APK文件进行识别。
[0016]可选地,特征码生成模块还用于:计算每一特征字符串在APK文件样本中的恶意APK文件样本中出现的比率,记为第一比率;计算每一特征字符串在APK文件样本中的非恶意APK文件样本中出现的比率,记为第二比率;按照第一比率和第二比率选取恶意程序特征码和非恶意程序特征码,并由恶意程序特征码构建恶意程序特征码列表,以及由非恶意程序特征码构建非恶意程序特征码列表。[0017]可选地,本发明提供的装置还包括:验证样本选取模块,用于选取验证APK样本;验证模块,用于使用分类模型对验证APK样本进行恶意程序识别;优化模块,用于根据识别结果对分类模型进行优化。
[0018]根据本发明的用于识别恶意APK文件的方法可以通过对一定数量的APK文件样本自动训练出分类模型,以对未知类型的APK文件进行识别,由于该分类模型中使用的识别特征向量综合了恶意APK文件非恶意APK文件中的字符串特征以及权限特征,识别恶意文件的准确度高,避免出现误杀和漏杀的情况,为用户提供有效的针对恶意软件和其他互联网威胁的高效保护,保障了移动互联网的安全性。
[0019]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。
【专利附图】

【附图说明】
[0020]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0021]图1是根据本发明实施例的用于识别恶意APK文件的装置的示意图;
[0022]图2是根据本发明另一实施例的用于识别恶意APK文件的装置的示意图;
[0023]图3是根据本发明实施例的用于识别恶意APK文件的方法的示意图;以及
[0024]图4是根据本发明实施例的用于识别恶意APK文件的方法的执行流程的流程图。
【具体实施方式】
[0025]在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
[0026]本实施例介绍的用于识别恶意APK文件的方法和装置针对的目标是在用户不知情的情况下恶意损害用户的权益的APK文件。其中,APK是安卓安装包(Androidapplication package file)的缩写,可理解为安卓系统上安装的应用软件。APK是类似Symbian Sis或Sisx的文件格式。通过将APK文件直接传到安卓模拟器或安卓终端中执行即可安装。APK文件和sis—样,把安卓专属的软件开发工具包(software developmentkit, SDK)编译的工程打包成一个安装程序文件,格式为APK。APK文件经过解压后,可以得到APK文件的文件结构,表I是APK文件的文件结构列表。
[0027]表I
[0028]
【权利要求】
1.一种用于识别恶意APK文件的方法,包括以下步骤: 选取预定数量APK文件样本; 解析所述APK文件样本中的可执行文件并提取出解析文本中的特征字符串; 利用所述特征字符串构建恶意程序特征码列表和非恶意程序特征码列表; 将所述APK文件样本对应的特征字符串与所述恶意程序特征码列表和非恶意程序特征码列表分别进行比对,得到该APK文件样本的字符串特征向量,并根据所述字符串特征向量和该APK文件样本向系统申请的权限生成该APK文件样本的识别特征向量; 对多个所述APK文件样本的识别特征向量进行训练,生成用于识别恶意APK文件的分类模型; 利用该分类模型对未知类型的APK文件进行识别。
2.根据权利要求1所述的方法,其中,解析所述APK文件样本中的可执行文件并提取出解析文本中的特征字符串包括: 解析所述APK文件样本中的可执行文件,提取解析文本中的字符串; 对所述字符串进行大小写统一处理,并对同一解析文本中的字符串进行去重处理,得到该样本的所述特征字符串。
3.根据权利要求1所述 的方法,其中,利用所述特征字符串构建程序特征码列表和非恶意程序特征码列表包括: 计算每一所述特征字符串在所述APK文件样本中的恶意APK文件样本中出现的比率,记为第一比率; 计算每一所述特征字符串在所述APK文件样本中的非恶意APK文件样本中出现的比率,记为第二比率; 按照所述第一比率和所述第二比率选取恶意程序特征码和非恶意程序特征码,并由所述恶意程序特征码构建所述恶意程序特征码列表,以及由所述非恶意程序特征码构建所述非恶意程序特征码列表。
4.根据权利要求3所述的方法,其中,按照所述第一比率和所述第二比率选取恶意程序特征码和非恶意程序特征码包括: 计算同一特征字符串的第一比率和第二比率的差值,并按照所述差值对特征字符串进行排序; 按照所述排序的结果选取所述恶意程序特征码和所述非恶意程序特征码。
5.根据权利要求1所述的方法,其中,对多个所述APK文件样本的识别特征向量进行训练包括:使用支持向量机算法或者逻辑回归法对所述APK文件样本的识别特征向量进行训练。
6.根据权利要求1至5中任一项所述的方法,其中,在生成用于识别恶意APK文件的分类模型之后还包括: 选取验证APK样本, 使用所述分类模型对所述验证APK样本进行恶意程序识别; 根据识别结果对所述分类模型进行优化。
7.根据权利要求6所述的方法,其中,根据识别结果对所述分类模型进行优化包括: 将所述识别结果与所述验证APK样本的类型进行比较,以判断是否出现漏报;在出现漏报的情况下,解析出现漏报的验证APK样本中的可执行文件,并根据解析出的所述漏报的验证APK样本的特征字符串对所述恶意程序特征码和所述非恶意程序特征码进行修改,并利用修改后的恶意程序特征码和非恶意程序特征码重新生成分类模型。
8.根据权利要求6所述的方法,其中,根据识别结果对所述分类模型进行优化包括: 将所述识别结果与所述验证APK样本的类型进行比较,以判断是否出现误报; 在出现误报的情况下,解析出现误报的验证APK样本中的可执行文件,并根据解析出的所述误报的验证APK样本的特征字符串对所述恶意程序特征码进行修改,并利用修改后的恶意程序特征码重新生成分类模型。
9.根据权利要求1至8中任一项所述的方法,其中,解析所述APK文件样本中的可执行文件并提取出解析文本中的特征字符串包括:对所述APK文件样本中的dex文件进行解析,得到的字符串包括以下任一项或多项:头部信息特征码、常量特征码、操作数特征码、指令特征码、指令特征码序列、类名函数名特征码。
10.根据权利要求9所述的方法,其中,在根据所述字符串特征向量和该APK文件样本向系统申请的权限生成该APK文件样本的识别特征向量之前还包括: 对所述APK文件样本中的AndroidManifest.xml进行解析,以得到该APK文件申请的功能权限; 将所述功能权限与安卓系统的功能权限列表进行比对,得到所述APK文件样本的权限特征向量。.
【文档编号】G06F21/56GK103473506SQ201310388742
【公开日】2013年12月25日 申请日期:2013年8月30日 优先权日:2013年8月30日
【发明者】杨康, 陈卓 申请人:北京奇虎科技有限公司, 奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1