一种基于函数流关键点监控的安卓恶意软件检测方法技术

技术编号:15640172 阅读:79 留言:0更新日期:2017-06-16 04:13
本发明专利技术公开了一种基于函数流关键点监控的安卓恶意软件检测方法,通过解压分析apk文件,对dex文件进行分析得到函数流的调用序列树状结构,结合静态分析后的清单文件,还原执行应用程序,跟踪记录函数关键流调用序列和行为信息;执行完成后,对应用关键点进行综合分析,实现恶意软件检测本发明专利技术解决了现有技术缺乏对整个应用的函数流调用序列进行细粒度监控的问题,实现了自定义函数和Framework层函数的监控。应用行为的细粒度分析,有效避免了行为的漏分析情况,提高了应用行为分析的准确度。

【技术实现步骤摘要】
一种基于函数流关键点监控的安卓恶意软件检测方法
本专利技术涉及一种基于函数流关键点监控的安卓恶意软件检测方法。
技术介绍
随着智能手机的快速发展和大量普及,移动互联网的安全已是当今主流安全威胁之一。Android是目前市场占有量最大的移动智能设备平台,它也成为众多恶意代码攻击的目标。近几年来,Android平台已经成为了一个非常流行的手机操作系统平台,并且占据了世界上超过一半的手机操作系统市场份额。渗透到各个行业,给我们的生活,工作和学习带来了巨大的变化。随着Android智能手机与Android平板电脑的普及,基于Android恶意软件也发展迅猛,因此基于Android平台的恶意代码检测技术开始被提出。尽管Android智能系统相比苹果的IOS系统更年轻,一些Android平台上的安全检测技术研究已经发布,如系统访问控制机制、恶意软件检测、应用权限分析、内核加固等。大量的Android平台需要提出更加稳健的安全检测技术。安卓恶意软件检测是对终端上的应用进行静态和动态行为监控,现在传统的一般都是利用静态和动态结合的方式进行分析以及利用安全团队累积的经验对软件的行为进行分析,分析出相应的行为信息,包括文件、网络、Android的四大组件及权限等内容。该平台上的恶意软件的数量不断增多,Android成为了恶意软件主要的攻击目标。根据趋势科技统计Android恶意大致分为七类,几乎有一半都是会滥用增值服务的恶意软件,它们会替用户订阅并不需要的服务。广告软件最近也增多了,这类软件会不停地发布伪装成紧急通知的广告,位居第二。数据窃取软件、恶意下载软件、恶意破解软件、点击诈骗软件,以及间谍工具都紧随其后。这些移动软件会带来个人和金融数据被窃的危险。目前国内对Android应用恶意检测主要使用杀毒软件特征查杀和基于框架层(Framework)函数挂钩(APIHook)的方法技术,通常恶意应用通过利用加壳、加密等方法改变自身特征逃避杀毒软件检测。
技术实现思路
为了克服现有技术的缺点,本专利技术提供了一种基于函数流关键点监控的安卓恶意软件检测方法,通过对apk文件进行解压,对其中的dex进行分析得到函数流的调用序列树状结构,并对清单文件进行静态分析;动态执行还原后应用程序,跟踪记录执行流程行为信息;综合静态分析和动态分析提取出应用函数关键流调用序列。本专利技术可以很好解决现有技术不能对整个应用的函数流调用序列进行细粒度的监控问题,包含了自定义函数和Framework层函数的监控,可以对应用行为进行更细粒度的分析,避免了行为的漏分析情况,提高了应用行为分析的准确度。传统分析通常提取应用程序组件、权限、网络、资源文件、配置文件、设备信息、ContentObservers、ContentQueries、用户账号等静态信息进行简单分析;或者对Intent、Uri、FileIO、NetworkIO、Database、ContentResolver、SMS、电话管理器、Digest、Cipher等动态行为进行拦截监控,进行恶意行为发现。本专利技术采用的是一种基于函数流关键点监控技术的安卓恶意软件检测方法,通过分析程序和静态资源,重建并执行应用程序,分析关键的函数流的调用序列,然后对关键流的函数调用序列进行细粒度的监控检测和日志存储和分析,根据规则库生成相应的详细行为分析报告。程序执行流的监控范围从对框架层函数流的监控,扩展到了对系统层以上的每层函数流的监控。本专利技术所采用的技术方案是:一种基于函数流关键点监控的安卓恶意软件检测方法,包括如下步骤:步骤一、静态行为分析模块对apk文件进行解压,对其中的dex进行分析得到一个函数流的调用序列树状结构,并对清单文件进行静态分析;步骤二、动态执行重建还原应用程序,跟踪记录执行行为;步骤三、综合静态行为分析和应用动态行为得到函数关键流调用序列;步骤四、对函数关键流调用序列进行细粒度的监控检测和日志存储及分析,生成详细行为分析报告。与现有技术相比,本专利技术的积极效果是:1.本专利技术是通过函数控制流调用序列进行静态和动态分析相结合对函数流进行监控,此方法解决了传统监控系统孤立调用点的分析,提高恶意程序行为准确性和详细行为分析。2.本专利技术对应用的整个函数流中调用序列进行细粒度的详细监控,生成更详细的函数流函数调用信息,为复杂挖掘更多有价值的恶意代码行为信息提供数据基础。3.本专利技术提出的细粒度分析方案,不再局限于传统部分性敏感系统函数的监控,而是对整个应用函数流调用序列的监控,有效避免了应用行为信息缺漏监控的情况。附图说明本专利技术将通过例子并参照附图的方式说明,其中:图1为本专利技术的流程示意图;图2为本专利技术的系统架构图;图3为一个程序函数流调用序列的树型结构示意图;图4为关键数据流函数结构生成示意图。具体实施方式一种基于函数流关键点监控的安卓恶意软件检测方法,如图1所示,包括如下步骤:步骤1:通过apktool对apk文件进行反编译,会将apk文件中的dex文件中的类、方法等映射成对象,得到反编译后的smali代码和AndroidManifest.xml清单文件。步骤2:对dex文件中的类、方法进行一次源码级的深层次分析,生成一个函数调用关系的执行流树结构。步骤3:通过对AndroidMainfest.xml的静态分析,得到Service、receivers、permissions等敏感组件信息。步骤4:通过动态执行应用程序,记录应用执行函数流调用序列。对函数调用流树形结构中的敏感API和Service、Receivers、permissions等组件的详细调用序列进行分析,并对其中的invoke、return等操作进行记录。步骤5:通过invoke相应地址得到硬盘上的文件偏移,在每次动态加载后,根据相应模块基地址加上文件偏移得到函数的入口,通过return指令得到函数的结束地址。步骤6:为有效克服现有恶意软件的反hook技术,在函数入口地址之后,插入跳转代码,插入点定位在函数入口加相应偏移处(根据dalvik虚拟机或者art虚拟机指令原理设置偏移)。在进行中转器设置之前,要先保存现场环境、插入中代码、执行代理函数、获取寄存器、栈等现场环境值、恢复当前函数的现场环境等。步骤7:根据前面静态分析的整个应用的函数流调用序列与动态行为相应的执行点,综合分析出关键函数流调用序列。步骤8:通过对程序代码执行至代理函数中运行情况的监控,以及,从栈上获取函数的参数和返回值,生成相应的检测模块。步骤9:重载系统的孵化器进程(zygote),通过注入检测模块到该进程。步骤10:加载apk至系统运行环境,通过检测模块的代理函数对函数的参数值和返回值以及函数现场环境进行记录,传给相应的日志存储模块。步骤11:日志分析模块在日志存储器中读出通过函数关键流和静态行为引擎分析出的日志,进行匹配及分析。步骤12:通过制定的规则库对存储的日志进行分析后生成相应的报告。图2为本专利技术的系统架构图,包括函数流分析模块、函数静态行为分析模块、动态检测模块、关键函数流检测模块、日志分析模块、日志存储模块。所述函数流生成模块是通过静态分析解压后的apk文件,得到应用的函数流的调用序列树结构,然后通过加载apk,执行重建应用程序,对动态执行流进行记录及跟踪,本文档来自技高网
...
一种基于函数流关键点监控的安卓恶意软件检测方法

【技术保护点】
一种基于函数流关键点监控的安卓恶意软件检测方法,其特征在于:包括如下步骤:步骤一、静态行为分析模块对apk文件进行解压,对其中的dex进行分析得到函数流的调用序列树状结构,同时对清单文件进行静态分析;步骤二、动态执行还原后应用程序,跟踪记录执行流程行为;步骤三、综合静态行为和还原应用动态行为得到函数关键流调用序列;步骤四、对函数关键流调用序列进行细粒度的监控检测和日志存储及分析,生成详细行为分析报告。

【技术特征摘要】
1.一种基于函数流关键点监控的安卓恶意软件检测方法,其特征在于:包括如下步骤:步骤一、静态行为分析模块对apk文件进行解压,对其中的dex进行分析得到函数流的调用序列树状结构,同时对清单文件进行静态分析;步骤二、动态执行还原后应用程序,跟踪记录执行流程行为;步骤三、综合静态行为和还原应用动态行为得到函数关键流调用序列;步骤四、对函数关键流调用序列进行细粒度的监控检测和日志存储及分析,生成详细行为分析报告。2.根据权利要求1所述的一种基于函数流关键点监控的安卓恶意软件检测方法,其特征在于:所述静态行为分析模块通过apktool或者andrguard对apk文件进行逆向分析,对生成的清单文件进行权限、Android四大组件、反射函数、加密函数、本地函数进行分析,生成详细的分析结果。3.根据权利要求2所述的一种基于函数流关键点监控的安卓恶意软件检测方法,其特征在于:所述静态行为分析模块通过apktool对apk文件进行反编译,将apk文件中的dex文件、类或方法映射成对象,得到反编译后的smali代码和AndroidManifest.xml清单文件。4.根据权利要求3所述的一种基于函数流关键点监控的安卓恶意软件检测方法,其特征在于:所述静态行为分析模块对dex文件的类或方法进行一次源码级的深层次分析,生成一个函数流的调用序列树状结构。5.根据权利要求4所述的一种基于函数流关键点监控的安卓恶...

【专利技术属性】
技术研发人员:李缘文谢兵兰天田伟
申请(专利权)人:中国电子科技网络信息安全有限公司
类型:发明
国别省市:四川,51

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

1