一种基于动态监控的Android恶意软件的检测方法及系统的制作方法

文档序号:8488062阅读:736来源:国知局
一种基于动态监控的Android恶意软件的检测方法及系统的制作方法
【技术领域】
[0001]本发明涉及一种恶意软件的检测方法,特别是涉及一种基于动态监控的Android恶意软件的检测方法及系统。
【背景技术】
[0002]Android是一种以Linux为基础的开源移动设备操作系统,主要用於智能手机和平板电脑,但其平台开放性特点使得Android恶意软件数量众多,成为移动终端安全的重灾区。一方面,手机厂商可以灵活修改并定制针对自有品牌的手机操作系统,不同厂商之间对系统安全做的处理互不一致,使得恶意软件有了可趁之机;另一方面,其开放性也使研宄Android恶意软件的人数增加,甚至催生了一些恶意软件的开发者。
[0003]随着智能手机、平板电脑的普及,针对手机的恶意代码也陆续出现,并呈现爆炸式的增长。恶意软件主要为游戏类或工具类软件,如神庙逃亡、航班查询等热门软件都曾被伪装或修改过。通常来讲,恶意软件的危害包括:隐私窃取、远程控制、病毒传播、系统破坏、诱骗欺诈、恶意扣费以及流氓行为等等。
[0004]然而,现有技术中Android平台并没有对应用程序的行为监控提供强有力的分析工具。拒绝一些对用户没必要的软件常驻后台可以降低手机CPU和内存的使用率、降低耗电量,对提升用户体验很有帮助。因此,对恶意软件的监控和拦截成为一个项有意义的研宄。
[0005]现有技术中,典型的恶意软件检测技术包括基于签名行为的检测方法,但是必须拥有一类恶意软件的签名库后才能检测该类恶意软件,因此无法有效检测未知的恶意应用。
[0006]基于行为的恶意代码检测目前主要采用动态和静态两种方法。静态方法主要使用反汇编反编译技术或者在中间层代码上进行控制流和数据流分析技术,来进行恶意代码检测。该方法的优点是代码覆盖率高;缺点是无法检测代码混淆,在加密以及在动态执行中才能解码恶意代码。动态方法通过限制应用程序在运行时可访问的系统资源、重打包应用程序,修改应用程序入口,从而达到监控应用程序的目的。但是,修改应用程序必须对应用程序重新签名,破坏了应用程序的完整性。
[0007]综上所述,现有的恶意软件检测方案存在以下问题:
[0008](I)安全模型的安全系数不高
[0009]目前的静态检测方法主要从应用程序的Manifest文件中提取请求权限等安全特征信息,再通过数据流分析应用软件行为是否与安全特征相匹配。但是,一旦恶意软件绕过权限申请便无法进行检测。
[0010]也有研宄者提出一些Android安全模型,其中一个重要的模型是基于许可的安全模型。根据该模型,每个应用软件有不同的设备资源使用需求,由手机用户同意或拒绝安装软件。然而即使用户在安装陌生软件前收到警告信息,手机上的恶意软件传播依然迅速。这是因为恶意软件件通常采用欺骗用户的方式,使用户相信其所有应用的可靠性,并在手机上进行安装。
[0011]还有一种办法是分别提取官方和第三方应用的作者信息和代码指令,计算他们的哈希值,通过比较他们的相似度来判断是否为恶意软件。然而,一旦无法区分官方或第三方应用,则无法进行有效判断。
[0012](2)动态分析误差大
[0013]进行动态分析时,需要用户先手动运行一些恶意软件样本以及对应的官方应用,利用均值算法将收集的数据分为常规和恶意两组,以作为应用程序的特征库。但是在该方法中,找到恶意软件样本和对应的官方应用本身就是一件很困难的事。
[0014]另外,还可以利用一些恶意样本,将其调用系统函数的名字和参数提取出来建立一个规则库,然后在运行时收集应用软件的调用信息,通过与规则库的比较来检测是否是未知的恶意样本。然而,该方法的缺点是检测结果不够精确,误差较大。

【发明内容】

[0015]鉴于以上所述现有技术的缺点,本发明的目的在于提供一种基于动态监控的Android恶意软件的检测方法及系统,通过模拟运行第三方应用软件、监视敏感数据流、分析应用软件的敏感数据泄露,并在敏感数据被篡改时发出安全警报,从而达到有效监控恶意软件的目的。
[0016]为实现上述目的及其他相关目的,本发明提供一种基于动态监控的Android恶意软件的检测方法包括以下步骤:步骤S1、建立移动终端的各类信息的规则库;步骤S2、查找到目标函数地址后,替换目标函数地址为包含监控代码的函数地址;步骤S3、当移动终端的应用启动时,对应用的行为进行监控;步骤S4、判断应用的行为是否是Android恶意软件所执行的敏感行为。
[0017]根据上述的基于动态监控的Android恶意软件的检测方法,其中:所述步骤SI包括:
[0018]I)收集各移动终端的信息;
[0019]2)针对每一种类型的信息,建立规则库作为样本。
[0020]根据上述的基于动态监控的Android恶意软件的检测方法,其中:所述步骤S2中,通过ELF文件解析查找到目标函数地址后,通过嵌入监控代码替换目标函数地址为包含监控代码的函数地址。
[0021]根据上述的基于动态监控的Android恶意软件的检测方法,其中:所述步骤S3中,对应用的行为进行监控时,如果允许应用的服务请求通过,则对该行为进行记录;如果拒绝应用的服务请求,则终止应用的服务请求。
[0022]根据上述的基于动态监控的Android恶意软件的检测方法,其中:所述步骤S4中,所述敏感行为是指获取敏感数据的行为;所述敏感数据包括用户的个人隐私数据,包括地理位置、手机短信、手机通讯录、手机信息和个人数据。
[0023]同时,本发明还提供一种基于动态监控的Android恶意软件的检测系统,包括规则库建立模块、地址替换模块、行为监控模块和行为判断模块;
[0024]所述规则库建立模块用于建立移动终端的各类信息的规则库;
[0025]所述地址替换模块用于在查找到目标函数地址后,替换目标函数地址为包含监控代码的函数地址;
[0026]所述行为监控模块用于在移动终端的应用启动时对应用的行为进行监控;
[0027]所述行为判断模块用于判断应用的行为是否是Android恶意软件所执行的敏感行为。
[0028]根据上述的基于动态监控的Android恶意软件的检测系统,其中:所述规则库建立模块包括信息收集模块和样本建立模块;所述信息收集模块用于收集各移动终端的信息;所述样本建立模块用于针对每一种类型的信息,建立规则库作为样本。
[0029]根据上述的基于动态监控的Android恶意软件的检测系统,其中:所述地址替换模块通过ELF文件解析查找到目标函数地址后,通过嵌入监控代码替换目标函数地址为包含监控代码的函数地址。
[0030]根据上述的基于动态监控的Android恶意软件的检测系统,其中:所述行为监控模块对应用的行为进行监控时,如果允许应用的服务请求通过,则对该行为进行记录;如果拒绝应用的服务请求,则终止应用的服务请求。
[0031]根据上述的基于动态监控的Android恶意软件的检测系统,其中:所述敏感行为是指获取敏感数据的行为;所述敏感数据包括用户的个人隐私数据,包括地理位置、手机短信、手机通讯录、手机信息和个人数据。
[0032]如上所述,本发明的基于动态监控的Android恶意软件的检测方法及系统,具有以下有益效果:
[0033](I)基于动态分析技术,对应用软件的行为进行监控,利用动态注入内存,对目标函数进行替换,实现对恶意行为的检测和拦截处理,从而实现对恶意软件行为的监控;
[0034](2)根据应用软件敏感行为和文件对象的访问跟踪,生成实时监控日志和检测报告,使得检测更加灵活和便捷。
【附图说明】
[0035]图1显示为本发明的基于动态监控的Android恶意软件的检测方法的流程图;
[0036]图2显示为本发明的基于动态监控的Android恶意软件的检测系统的整体框架图;
[0037]图3显示为本发明的基于动态监控的Android恶意软件的检测系统的结构示意图。
[0038]元件标号说明
[0039]I规则库建立模块
[0040]2地址替换模块
[0041]3行为监控模块
[0042]4行为判断模块
【具体实施方式】
[0043]以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的【具体实施方式】加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
[0044]需要说明的是,本实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
[0045]参照图1,本发明的基于动态监控的Android恶意软件的检测方法包括以下步骤:
[0046]步骤S1、建立移动终端的各类信息的规则库。
[0047]其中,规则库设置在Android系统的Native层。需要说明的是,本发明中所涉及的移动终端包括并不限于智能手机、平板电脑、PDA,以及其他具有数据处理功能的手持设备。通常,移动终端是指具有独立的操作系统,可以由用户自行安装软件、游戏等第三方服务商提供的程序,通过此类程序来不断对终端的功能进行扩充,并可以通过移动通讯网络来实现无线网络接入的这样一类移动终端。
[0048]当移动终端上有应用程序启动后台服务时,Android系统会产生监控提醒给框架层,进而上报给用户。用户便可以浏览到本移动终端中有哪些应用及相应应用的具体信息,如应用的使用的权限、CPU的使用率等。
[0049]具体地,包括以下步骤:
[0050]I)收集各移动终端的信息,如用户地理位置、通讯录、短信、用户账号等;
[0051]2)针对每一种类型的信息,建立规则库作为样本。
[0052]优选地,规则库采用C语言来实现。
[0053]步骤S
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1