基于内核的安卓程序实时行为分析方法及系统的制作方法

文档序号:9432986阅读:291来源:国知局
基于内核的安卓程序实时行为分析方法及系统的制作方法
【技术领域】
[0001]本发明属于数据处理技术领域,具体涉及基于内核的安卓程序实时行为分析方法及系统。
【背景技术】
[0002]随着智能移动设备的普及,针对这些设备的恶意软件也越来越多。安卓作为一个开源的平台,已经成为全球范围内具有广泛影响力的操作系统,目前占有80%的市场份额,也正因此,针对安卓平台的恶意软件数目也是十分巨大的,同时这些恶意软件具有快速增长的趋势。安卓设备上拥有大量的重要用户隐私信息,因此此类恶意软件给手机安全带来了巨大的威胁。
[0003]针对上述情况,检测和甄别恶意软件是十分必要的。这需要了解恶意软件的行为,在近几年,针对应用程序的行为分析方法被人们广泛研究并且已成为目前处理恶意软件的热门技术方法。当前的行为分析方法主要由两类方法组成,一类是静态行为分析,另一类是动态行为分析。针对动态行为分析,目前的方法大多数是建立在安卓Dalvik虚拟机之上以及在虚拟环境中实行分析应用程序。但是这些应用程序分析方法都有各自的不足之处。基于Dalvik虚拟机的技术方案不能检测出本地代码中的行为,同时由于和应用程序处于同一层次,容易被恶意软件检测并规避。基于虚拟机自省方法的技术方案可以检测本地代码中的行为,但由于这类方法运行在一个虚拟环境中,因此恶意软件会因为执行环境的差异表现出不同的行为,现有恶意软件可以检测出它们的运行环境,并使用反取证技术进行规避,这就使得虚拟机自省方案下的行为分析的准确性得不到保证。

【发明内容】

[0004]为解决上述问题,本发明公开了基于内核的安卓程序实时行为分析方法以及能够实现该方法的行为分析系统,通过在内核中拦截并解析系统调用,重构出应用程序的文件,网络以及安卓特有的进程间同行等行为,整个过程在内核中进行实时监控,保证行为获取的准确性,同时内核拥有最高的权限,恶意软件难以进行规避。
[0005]为了达到上述目的,本发明提供如下技术方案:
一种基于内核的安卓程序实时行为分析方法,包括如下步骤:
步骤一,系统调用监控初始化:
在内核内存中,搜索系统调用表的加载指令,通过该条指令,找到系统调用表的地址;备份系统调用表中的关于文件系统调用方法地址,网络系统调用方法地址,进程复制系统调用方法地址和安卓进程间交互行为所关联的对设备的设备I/o通道管理的系统调用方法地址,并使用自定义的方法替换这些地址;将所需的安卓接口定义语言文件的内容加载入内存中;添加安卓进程间交互行为方法的过滤器;
步骤二,内核系统调用拦截监控与解析:
在步骤一中经过地址替换后的系统调用方法被调用时,掌握系统控制权,当系统调用为安卓进程间交互行为所关联的对设备的设备I/o通道管理的系统调用方法时,采用安卓进程间通信解析方法对系统调用进行解析,当系统调用为文件系统调用方法、网络系统调用方法或是进程复制系统调用方法时,采用系统调用解析方法对系统调用进行解析,解析完成后将系统控制权归还系统;
步骤三,基于解析结果生成信息日志:
根据解析后的系统调用信息,将解析结果写入到日志文件中;
步骤四,基于信息日志,重构应用程序行为,生成行为活动图:
根据信息日志中的信息,将日志组织成为初级行为活动图,针对初级行为活动图进一步采用活动生命周期识别以及广播匹配算法来进行处理,形成具有丰富语义的行为活动图;针对行为活动图,根据各个广播活动事件,抽象出其中的关键行为,形成高可读性的抽象行为活动图。
[0006]进一步的,所述步骤一中找到系统调用表的地址的过程如下:
定位整个异常向量处理例程地址,在整个异常向量处理例程地址中找到软件中断异常处理例程地址,根据软件中断异常处理例程地址找到软件中断异常处理例程,在软件中断异常处理例程所处在的内存中,搜索一条将系统调用表加载入寄存器的指令,根据这条指令,得到系统调用表的地址。
[0007]进一步的,所述步骤一中加载的所需的安卓接口定义语言文件的内容为哈希表形式。
[0008]进一步的,所述步骤二中的安卓进程间通信解析方法用于获取进程间通信行为的读写结构体,根据读写结构体获得进程标识符、用户标识符,并从数据缓冲区中获取传输数据结构体,根据传输数据结构体获得高层进程间通信方法参数。
[0009]进一步的,所述步骤二中的系统调用方法根据不同的系统调用类型采用不同的系统调用解析方法:
当系统调用为文件类型时,将未解析过的文件描述符以及对应文件的绝对路径存入文件哈希表中;
当系统调用为网络类型时,获取并解析系统调用参数中的数据缓冲区参数和数据项长度参数,得到网络操作中的数据信息;
当系统调用为进程复制类型时,获取进程标识符和用户标识符。
[0010]进一步的,所述步骤三中日志文件中包括以下信息:进程标识符,用户标识符,系统调用对应的高层或者底层方法名以及参数。
[0011]进一步的,所述步骤三中在记录日志前,获取并备份当前内核对内存地址检查的处理方式,在记录日志之后还原当前内核对内存地址检查的处理方式。
[0012]进一步的,所述步骤四中生成行为活动图的过程包括:
根据记录好的信息日志文件,采用初级行为图重构算法生成初级行为图;
采用广播生命周期匹配算法,识别出初级行为图中的活动生命周期,以及广播事件生命周期,丰富初级行为图中的语义信息,生成具有丰富语义的行为图;
针对已经识别出来的广播时间生命周期,将其中的行为节点信息进行提炼,文件操作的节点统一成为文件访问信息,网络操作的节点统一成为网络访问信息,安卓进程间通信行为根据进行进程间通信时的权限检查,提炼出各个进程间通信所需的权限信息,提炼后的信息统一到广播时间生命周期开始节点,形成高可读性的抽象行为活动图。
[0013]本发明还提供了能够实现上述分析方法的基于内核的安卓程序实时行为分析系统,包括:初始化模块、监控解析模块、信息日志记录模块、行为重构模块;
所述初始化模块用于加载解析安卓进程间通信所需的安卓接口定义语言文件的信息到内存中,备份系统调用表中的关于文件系统调用方法地址,网络系统调用方法地址,进程复制系统调用方法地址和安卓进程间交互行为所关联的对设备的设备I/o通道管理的系统调用方法地址,并使用自定义的方法替换这些地址;
所述监控解析模块用于在系统内核中,根据用户定义的配置文件实时解析系统调用,根据系统调用方法类型,采用相应的程间通信解析方法对系统调用进行解析,来获取行为重构中所需的信息,解析完成后将系统控制权归还系统,
所述信息日志记录模块用于在在内核中解析完毕系统调用后,将解析出来的信息按照约定格式记录记录在日志文件中;
所述行为重构模块用于根据信息日志中的信息,将日志组织成为初级行为活动图,并进一步采用活动生命周期识别以及广播匹配算法来进行处理,形成具有丰富语义的行为活动图,最后根据各个广播活动事件,抽象出其中的关键行为,形成高可读性的抽象行为活动图。
[0014]进一步的,所述监控解析模块中还包括安卓进程间通信解析器和系统调用解析器,安卓进程间通信解析器用于解析设备I/o通道管理的系统调用方法,系统调用解析器用于解析文件,网络以及进程复制的系统调用。
[0015]与现有技术相比,本发明具有如下优点和有益效果:
1.本发明方法运行在系统内核层中,通过对文件,网络以及安卓特有的系统调用的拦截与解析,来实时地重构应用程序的底层与高层行为,无论这些行为是来自Java语言,本地代码还是Linux的可执行与可链接格式,都可以
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1