Android恶意应用程序检测方法、系统及设备技术方案

技术编号:8347989 阅读:370 留言:0更新日期:2013-02-21 01:38
本发明专利技术公开了一种Android恶意应用程序检测方法、系统及设备,其中检测方法包括:服务器模拟执行Android应用程序,将Android应用程序调用的系统函数的敏感特征信息与敏感数据引入规则库中存储的敏感特征信息进行匹配,将匹配成功的系统函数的变量标记为敏感数据;将含有敏感数据的函数与恶意行为检测规则库中存储的恶意行为特征信息进行匹配,将匹配成功的函数参数标记为恶意行为。采用本发明专利技术的技术方案,在不依赖人工分析特征码的前提下实现Android恶意应用程序的检测,减少了技术人员的工作量。

【技术实现步骤摘要】
Android恶意应用程序检测方法、系统及设备
本专利技术涉及恶意应用程序检测技术,具体涉及一种安卓(Android)恶意应用程序检测方法、系统及设备。
技术介绍
Android系统作为一种开源的智能手机操作系统,吸引了大量应用程序开发者。由于智能手机中存有大量的用户隐私信息,因此吸引了大量的恶意应用程序涌入应用程序市场,窃取用户的隐私信息;加之各个应用程序市场的监督管理制度和检测方法尚不完善,无法对应用程序的恶意性进行甄别,因此使用户隐私信息大量外泄,给应用程序的使用者蒙受很大损失。Android恶意应用程序是指在未明确提示用户或未经用户许可的情况下,在用户计算机或其他终端上安装运行,侵犯用户合法权益的软件。主要恶意行为包括:恶意扣费、隐私窃取、远程控制、恶意传播、资费消耗、系统破坏、诱骗欺诈、流氓行为等。目前针对恶意应用程序的检测方法主要有两种:动态检测方法与静态检测方法。动态检测方法主要通过修改Android模拟器内核对安装的应用程序进行实时检测或者使用符号执行的方法使应用程序按照指定的路径运行,从而得到应用程序的恶意行为。静态分析方法主要是通过分析安卓安装包(AndroidPackage,APK)中的有关文件,比如AndroidManifest.xml、Dalvik字节码文件等,从中抽取部分信息作为关键特征,采用特征匹配的方式完成检测。动态检测方法依赖于特定的触发条件,无法在短时间内检测完成所有的执行路径;基于特征匹配的方式依赖于特征码数据库,而特征码的获取基本上是靠人工分析的方式,工作量巨大。
技术实现思路
有鉴于此,本专利技术的主要目的在于提供一种Android恶意应用程序检测方法、系统及设备,可在不依赖人工分析特征码的前提下实现Android恶意应用程序的检测,大大减少了技术人员的工作量。为达到上述目的,本专利技术的技术方案是这样实现的:本专利技术提供了一种Android恶意应用程序检测方法,该方法包括:服务器模拟执行Android应用程序,将应用程序调用的系统函数的敏感特征信息与敏感数据引入规则库中存储的敏感特征信息进行匹配,将匹配成功的系统函数的变量标记为敏感数据;将含有敏感数据的函数与恶意行为检测规则库中存储的恶意行为特征信息进行匹配,将匹配成功的函数参数标记为恶意行为。上述方案中,该方法还包括:待服务器模拟Android应用程序的执行结束后,根据与恶意行为检测规则库匹配的结果生成危险行为的详细说明,输出检测报告,并向客户端报告检测结果。上述方案中,所述服务器模拟Android应用程序的执行之前,该方法还包括:客户端将待测的Android应用程序的APK文件发送给服务器,服务器解压APK文件,提取出Dalvik字节码文件和AndroidManifest.xml配置文件。上述方案中,该方法还包括:服务器反汇编Dalvik字节码文件,并根据Dalvik字节码文件信息构建程序结构,包括:指令结构、基本结构、函数结构、类结构、函数调用图、控制流图;服务器解析AndroidManifest.xml配置文件获取入口函数名,并从构建的程序结构中找出对应的函数结构,作为模拟执行的入口函数。上述方案中,所述服务器模拟执行Android应用程序的包括:服务器从入口函数开始,根据构建出的程序结构,模拟函数的调用序列和函数内指令的执行顺序,并按指令的执行顺序,按顺序模拟每条指令的执行。上述方案中,该方法还包括:在模拟指令的执行过程中,服务器收集函数变量的程序状态信息,并利用收集到的变量的程序状态信息,判断动态机制函数实际的调用对象,根据当前对象查找相关响应函数。本专利技术还提供了一种Android恶意应用程序检测系统,该系统包括客户端和服务器;其中:所述客户端,用于将待测的Android应用程序的APK文件发送给服务器;所述服务器,用于根据客户端发来的APK文件模拟Android应用程序的执行,将Android应用程序调用的系统函数的敏感特征信息与敏感数据引入规则库中存储的敏感特征信息进行匹配,将匹配成功的系统函数的变量标记为敏感数据;同时将含有敏感数据的函数参数与恶意行为检测规则库中存储的恶意行为特征信息进行匹配,将匹配成功的函数参数标记为恶意行为。上述方案中,所述客户端包括第一通讯模块,用于将待测的Android应用程序的APK文件发送给服务器。上述方案中,所述服务器包括第二通讯模块、流敏感分析引擎、敏感数据引入规则库和恶意行为检测规则库;其中:所述第二通讯模块,用于接收客户端发来的APK文件,并将APK文件发送给流敏感分析引擎;所述流敏感分析引擎,用于根据收到的APK文件模拟Android应用程序的执行,将Android应用程序调用的系统函数的敏感特征信息与敏感数据引入规则库中存储的敏感特征信息进行匹配,将匹配成功的系统函数的变量标记为敏感数据;还用于将含有敏感数据的函数参数与恶意行为检测规则库中存储的恶意行为的检测规则进行匹配,将匹配成功的函数参数标记为恶意行为;所述敏感数据引入规则库,用于存储敏感特征信息;所述恶意行为检测规则库,用于存储恶意行为特征信息。上述方案中,所述流敏感分析引擎包括匹配模块和恶意行为检测器;其中:所述匹配模块,用于将Android应用程序调用的系统函数的敏感特征信息与敏感数据引入规则库中的敏感特征信息进行匹配,将匹配成功的系统函数的变量标记为敏感数据,将匹配后的数据送入恶意行为检测器进行恶意行为检测;所述恶意行为检测器,用于将含有敏感数据的函数参数与恶意行为检测规则库中存储的恶意行为特征信息进行匹配,将匹配成功的函数参数标记为恶意行为。上述方案中,所述服务器还包括危险行为报告器,用于模拟Android应用程序的执行结束后,根据与恶意行为检测规则库匹配的结果生成危险行为的详细说明,输出检测报告,同时将检测报告经第二通讯模块发送给客户端。上述方案中,所述服务器还包括程序结构构建器和入口函数解析器;其中:所述程序结构构建器,用于反汇编Dalvik字节码文件,并根据Dalvik字节码文件信息构建程序结构,并将构建好的程序结构发送给流敏感分析引擎;所述入口函数解析器,用于解析AndroidManifest.xml配置文件获取入口函数名,并从构建的程序结构中找出对应的函数结构作为开始分析的入口函数,并将获得的入口函数发送给流敏感分析引擎。上述方案中,所述流敏感分析引擎还包括指令模拟器,用于根据程序结构构建器构建出的程序结构,模拟函数的调用序列和函数内指令的执行顺序,从入口函数解析器获得的入口函数开始,按顺序模拟每条指令的执行。上述方案中,所述流敏感分析引擎还包括程序状态收集器和动态机制连接器;其中:所述程序状态收集器,用于在指令的模拟执行过程中,收集函数变量的程序状态信息,并将收集到的函数变量的程序状态信息发送给动态机制连接器;所述动态机制连接器,用于根据程序状态收集器收集到的函数变量的程序状态信息,判断动态机制函数实际的调用对象,根据当前对象查找相关响应函数。本专利技术还提供了一种服务器,该服务器包括通讯模块、流敏感分析引擎、敏感数据引入规则库和恶意行为检测规则库;其中:所述通讯模块,用于接收客户端发来的APK文件,并将APK文件发送给流敏感分析引擎;所述流敏感分析引擎,用于根据收到的A本文档来自技高网...
Android恶意应用程序检测方法、系统及设备

【技术保护点】
一种安卓(Android)恶意应用程序检测方法,其特征在于,该方法包括:服务器模拟执行Android应用程序,将应用程序调用的系统函数的敏感特征信息与敏感数据引入规则库中存储的敏感特征信息进行匹配,将匹配成功的系统函数的变量标记为敏感数据;将含有敏感数据的函数与恶意行为检测规则库中存储的恶意行为特征信息进行匹配,将匹配成功的函数参数标记为恶意行为。

【技术特征摘要】
1.一种安卓(Android)恶意应用程序检测方法,其特征在于,该方法包括:服务器模拟执行Android应用程序,将应用程序调用的系统函数的敏感特征信息与敏感数据引入规则库中存储的敏感特征信息进行匹配,将匹配成功的系统函数的变量标记为敏感数据;将含有敏感数据的函数与恶意行为检测规则库中存储的恶意行为特征信息进行匹配,将匹配成功的函数参数标记为恶意行为;所述服务器模拟Android应用程序的执行之前,该方法还包括:客户端将待测的Android应用程序的APK文件发送给服务器,服务器解压APK文件,提取出Dalvik字节码文件和AndroidManifest.xml配置文件;服务器反汇编Dalvik字节码文件,并根据Dalvik字节码文件信息构建程序结构,包括:指令结构、基本结构、函数结构、类结构、函数调用图、控制流图;服务器解析AndroidManifest.xml配置文件获取入口函数名,并从构建的程序结构中找出对应的函数结构,作为模拟执行的入口函数。2.根据权利要求1所述的方法,其特征在于,该方法还包括:待服务器模拟Android应用程序的执行结束后,根据与恶意行为检测规则库匹配的结果生成危险行为的详细说明,输出检测报告,并向客户端报告检测结果。3.根据权利要求1所述的方法,其特征在于,所述服务器模拟执行Android应用程序的包括:服务器从入口函数开始,根据构建出的程序结构,模拟函数的调用序列和函数内指令的执行顺序,并按指令的执行顺序,按顺序模拟每条指令的执行。4.根据权利要求3所述的方法,其特征在于,该方法还包括:在模拟指令的执行过程中,服务器收集函数变量的程序状态信息,并利用收集到的变量的程序状态信息,判断动态机制函数实际的调用对象,根据当前对象查找相关响应函数。5.一种Android恶意应用程序检测系统,其特征在于,该系统包括客户端和服务器;其中:所述客户端,用于将待测的Android应用程序的APK文件发送给服务器;所述服务器,用于解压APK文件,提取出Dalvik字节码文件和AndroidManifest.xml配置文件;反汇编Dalvik字节码文件,并根据Dalvik字节码文件信息构建程序结构,所述程序结构包括:指令结构、基本结构、函数结构、类结构、函数调用图、控制流图;所述服务器,还用于解析AndroidManifest.xml配置文件获取入口函数名,并从构建的程序结构中找出对应的函数结构,作为模拟执行的入口函数;所述服务器,还用于模拟执行Android应用程序,将Android应用程序调用的系统函数的敏感特征信息与敏感数据引入规则库中存储的敏感特征信息进行匹配,将匹配成功的系统函数的变量标记为敏感数据;同时将含有敏感数据的函数参数与恶意行为检测规则库中存储的恶意行为特征信息进行匹配,将匹配成功的函数参数标记为恶意行为。6.根据权利要求5所述的系统,其特征在于,所述客户端包括第一通讯模块,用于将待测的Android应用程序的APK文件发送给服务器。7.根据权利要求5所述的系统,其特征在于,所述服务器包括第二通讯模块、流敏感分析引擎、敏感数据引入规则库和恶意行为检测规则库;其中:所述第二通讯模块,用于接收客户端发来的APK文件,并将APK文件发送给流敏感分析引擎;所述流敏感分析引擎,用于根据收到的APK文件模拟Android应用程序的执行,将Android应用程序调用的系统函数的敏感特征信息与敏感数据引入规则库中存储的敏感特征信息进行匹配,将匹配成功的系统函数的变量标记为敏感数据;还用于将含有敏感数据的函数参数与恶意行为检测规则库中存储的恶意行为的检测规则进行匹配,将匹配成功的函数参数标记为恶意行为;所述敏感数据引入规则库,用于存储敏感特征信息;所述恶意行为检测规则库,用于存储恶意行为特征信息。8.根据权利要求7所述的系统,其特征在于,所述流敏感分析引擎包括匹配模块和恶意行为检测器;其中:所述匹配模块,用于将Android应用程序调用的系统函数的敏感特征信息与敏感数据引入规则库中的敏感特征信息进行匹配,将匹配成功的系统函数的变量标记为敏感数据,将匹配后的数据送入恶意行为检测器进行恶意行为检测;所述恶意行为检测器,用于将含有敏感数据的函数参数与恶意行为检测规则库中存储的恶意行为特征信息进行匹配,将匹配成功的函数参数标记为恶意行为。9.根据权利要求5所述的系统,其特征在于,所述服务器还包括...

【专利技术属性】
技术研发人员:程绍银巫妍吴俊昌蒋凡
申请(专利权)人:中兴通讯股份有限公司中国科学技术大学
类型:发明
国别省市:

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

1