一种基于对象引用图的Android手机恶意软件检测方法

文档序号:8543961阅读:226来源:国知局
一种基于对象引用图的Android手机恶意软件检测方法
【技术领域】
[0001] 本发明设及Amlroid手机恶意软件检测技术,特别设及一种基于对象引用图的An化0id手机恶意软件检测方法。
【背景技术】
[0002] 现有技术包括采用内核级别的监控方式,对An化oid程序的系统调用和信息进行 记录。基于异常行为检测的化0W化oid系统,该系统是基于异常行为检测的分类器,采用的 是轻量级的C/S架构。沙箱技术,该是分析Amlroid恶意代码新的发展方向,有很大的研究 空间。G.MylesandC.Col化erg首先提出动态胎记,他们利用程序在运行过程中完整的控制 流来识别软件。Tamadaetal提出了两种基于API函数调用建立动态胎记的方法。Wangetal. 提出了基于系统调用依赖关系建立动态胎记的方法。通过程序运行时系统调用之间的依赖 关系建立一张系统调用依赖关系(SCDG)。在SCDG中,每一个系统调用作为节点,系统调用 之间的依赖关系(即存在数据交流)作为边。SCDG胎记作为整个SCDG的一个子图来识别 程序。通过实验测试,该方法对于不同的编译选项,不同编译器W及代码混淆的攻击都具有 很好的健壮性。
[0003] 通过内核级别监控识别恶意程序的方法实现难度较大,设及系统底层内核的改 动,并且需要较大的系统检测花销。而沙箱技术还不成熟,沙箱模拟操作系统为程序提供服 务,但是沙箱能够提供的服务是有限的,恶意程序可W通过调用沙箱未提供的服务等方式 使沙箱崩溃。
[0004] 在应对保留程序语义的攻击时,控制流方法比静态胎记技术更加有效。但如果程 序受到代码混淆攻击,该技术就会失效。而且由于程序控制流庞大,对于较大的程序很难实 现。基于API函数调用建立动态胎记的方法最大的问题是需要足够多的API调用,所W当 程序的API数量不足时,该方法就无法建立有效的动态胎记,因此有较大的局限性。
[0005] 《基于对象引用关系图的Amlroid恶意代码检测的研究》没有说明0RGB的提取过 程,其仅仅指出"0RGB的建立需要一个恶意代码类的列表来过滤所得到的类。"而0RGB在系 统进行检测时具有关键作用,0RGB提取效果的好坏对系统最终的检测漏报率,误报率有决 定性的影响。
[0006] 《基于对象引用关系图的Amlroid恶意代码检测的研究》中在检测过程中所使用的 V巧算法无法在真实环境中应用,因为V巧算法的运行时间随着0RGB图中节点的数量成指 数级增长,对于常见的图的一次匹配可能就需要10小时的时间。而该下实际应用环境中 是无法接受的。

【发明内容】

[0007] 本发明的目的是为了解决核级别监控识别恶意程序的方法设及系统底层内核的 改动,需要较大的系统检测花销、沙箱提供服务、控制流方法程序受到代码混淆攻击、0RGB 图中节点的数量成指数级增长没有说明0RGB的提取过程W及基于API函数调用建立动态 胎记的方法需要足够多的API调用具有较大的局限性的问题而提出的一种基于对象引用 图的An化0id手机恶意软件检测方法。
[0008] 上述的发明目的是通过W下技术方案实现的:
[0009] 步骤一、将Amlroid平台下已分类的恶意程序分别运行,从恶意程序堆内存中提 取对象之间对应的引用关系图0RG;其中,0RG为对象引用图是一个二元组0RG= (N,E),N 是图中节点的集合;EGNXN,是对象之间引用关系的集合;对象为0RG图中的节点,边代 表对象之间存在引用关系;0RG包括用户类、系统类W及用户类和系统类的引用关系;
[0010] 步骤二、利用改进的V巧算法将同一类恶意程序的所有引用关系图0RG进行子图 同构,得到该类恶意程序中所有的0RG的最大公共部分即恶意程序的0RGB;其中,0RGB为引 用关系胎记图;
[0011] 步骤S、根据步骤一的方法提取未知程序的0RG,根据未知程序请求的应用权限和 系统类,利用类别判断方法对未知程序类别进行筛选,筛选出未知程序的可能类别;
[0012] 步骤四、选择未知程序的可能类别所对应的0RGB,利用改进的V巧算法依次将所 对应的0RGB与未知程序的0RG进行子图同构检测,若某个0RGB与待检测0RG是子图同构关 系,则表明未知程序为某类匹配的恶意程序;即完成了一种基于对象引用图的Amlroid手 机恶意软件检测方法。
[001引发明效果
[0014] 本发明提出基于对象引用图的恶意软件检测方法。通过提取程序运行过程中内存 中对象的引用关系,将其作为程序的胎记。通过比对程序的胎记与恶意程序库中恶意程序 胎记,判断程序是否为恶意程序。该种方法相对基于API调用通用性更好。
[0015] An化oid系统是当前最流行的移动设备操作系统之一。An化oid系统的开放性一 方面为其快速的发展提供了强大的助力,另一方面也间接的有利于恶意软件的开发。根据 谷歌最新发布的2014年An化oid安全报告,2014年被恶意软件感染的An化oid智能设备近 1%。针对Amlroid手机恶意软件的检测方法有静态检测与动态检测两种。静态检测方法 准确率高,检测速度快,但无法应对代码混淆及加壳等攻击手段。动态检测方法能够应对代 码混淆及加壳等攻击手段,但现有的动态检测方法仍存在一些问题。所W我们提出了基于 对象引用图的动态检测方法。
[0016] 图3是使用上述方法对26类726个程序进行分类的结果。图3看出,上述方法的 在我们把范围扩展到前五位时准确率已经达到了 95%。图4展示的是不同类别各自的分类 准确率,可W看到多数类别的准确率都很高,在考虑前五位的情况下接近100%。
[0017] 本发明方法不设及系统底层的改动,系统开销小;本发明方法使用的是对象引用 图0RG能够避免代码混淆的攻击;本方法使用的是程序运行过程中在堆内存中存放的对象 信息,所W相比API调用具有更广泛的适用性。
[0018] 本发明找到了能够在所有版本的An化oid系统提取0RG的方法;具体方法在权利 要求说明书中的第S部分0RG提取方法中做出了介绍。通过我们的方法,能够在目前所有 版本的Amlroid系统中提取0RG。
[0019] 本发明提取了使用改进的V巧算法提取0RGB的方法,具体方法在权利要求说明书 中第五部分0RGB的提取有具体介绍。对于根据上述方法得到的0RGB的正确性,一方面通 过实验比对验证确认,另一方面,系统最终的检测结果也能够对其进行证明。
[0020] 本发明首先提取基于应用权限与系统类的类别判断方法快速的锁定待检测程序 可能的类别,排除无关类别的干扰,减少需要匹配的次数,该方法的具体介绍在权利要求说 明书的第走部分,说明书附图中的图3是使用上述方法对26类726个程序进行分类的结 果。从表中可W看出,上述方法的在我们把范围扩展到前五位时准确率已经达到了 95%。 说明书附图中的图4展示的是不同类别各自的分类准确率,可W看到多数类别的准确率 都很高,在考虑前五位的情况下接近100%。而有少数几类的准确率较低,例如,Asroot, BaseBridge,通过分析发现其程序所需权限较少,有的程序仅包含一个权限,并且不同程序 间的权限缺乏共性;然后,我们提出适用于恶意程序检测系统的改进的V巧算法,该算法能 够极大的减少算法的运行时间,使系统能够实际的应用目前系统在检测时的平均检测时间 为10s,最大检测时间<30s,最小检测时间<ls。
【附图说明】
[0021] 图1为【具体实施方式】S提出的0RG文件提取流程图;
[002引 图2为【具体实施方式】五提出的0RGB提取示意图,其中,Com.A.ai、Com.A.Cl、Com.A.di、Com.A.f、Com.B. 3i、Com.B.bi、Com.B.Cl、Com.B.di、Com.B.f、a、c、d和f均为对象名 称;
[0023] 图3为【具体实施方式】一提出的使用权限进行分类的结果示意图;
[0024] 图4为【具体实施方式】走提出的不同类别前五位的分类准确率示意图;
[00巧]图5为【具体实施方式】四提出的修改前捜索树的一部分;其中,A.b.C、b.C.tInt、long、java,class和com.a.b均为对象名称;
[0026] 图6为【具体实施方式】四提出的修改后捜索树的一部分;其中,A.b.c、b.c.tInt、 long、java,class和com.a.b均为对象名称;
[0027] 图7为【具体实施方式】四提出的ORGB图,其中,Bingder、X、A、BW及C指代对象名 称;
[002引图8为【具体实施方式】四提出的待匹配0RG图,其中,Linker、Activity、X、A、B、C、D和E指代对象名称;
[0029] 图9为【具体实施方式】一提出的一种基于对象引用图的An化oid手机恶意软件检测 方法流程图;
[0030] 图10为【具体实施
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1