一种针对Android系统App行为的监控方法技术方案

技术编号:13876827 阅读:129 留言:0更新日期:2016-10-22 13:15
本发明专利技术公布了一种针对Android系统App行为的监控方法,首先编写内核模块,通过编写自己的Android内核模块,进行交叉编译;然后将模块加载到Android系统中,通过对特定的函数(如读取通讯录等相关信息的函数)进行拦截,获得到相应的系统调用信息,包括如是哪个进程读取的等信息;再将相应记录信息返回给应用层,形成相应的监控日志文件,实现对整个Android系统的系统调用的拦截与监控。本发明专利技术无论对应用层还是Native层产生的系统调用均能进行监控,相比现有的针对应用层的一些监控方法,能够保护得更加彻底,对手机的安全防护性也更强;使用户对安装的软件的行为了如指掌,能够及时发现软件的恶意行为。

【技术实现步骤摘要】

本专利技术涉及Android系统Application(App)软件安全技术,尤其涉及一种基于Android系统的App敏感行为监控的方法。
技术介绍
智能手机相对于传统普通手机拥有更丰富的功能和更强的数据处理能力,而近年来发展迅速的Android系统具有开源、可移植性强等优点,越来越多的手机采用Android系统作为手机操作系统。随着Android智能手机的普及,Android智能手机暴露出来的安全性问题越来越多。因此,如何保护Android智能手机的安全,是一个非常重要的课题。Android手机市场上有大量可供下载的app,有一些应用是安全的;也有一些app可能被植入了病毒、木马,一旦用户下载并安装了相应的app,可能会造成很多问题,如重要隐私的泄露,手机流量被盗用,手机被监听等等,这些都会对用户造成重大的损失。不管是什么木马病毒,它们要想对系统进行信息窃取,对系统进行监控等都必须通过系统调用来实现相关的功能。因此,针对上述问题,可通过对相应的系统调用进行拦截来解决。目前,市场上的一些安全软件大都是在应用层对系统调用进行监控,例如,开源的Xposed框架被很多安全软件采用,这种方法只能拦截到应用层的系统调用。而如果木马植入在Native层,在这种情况下,现有这些安全软件无法通过对相应的系统调用来拦截到木马行为。
技术实现思路
为了克服上述现有技术的不足,本专利技术提供一种基于Android系统Application(App)敏感行为监控的方法,通过安全内核实现方法在Android内核层添加模块,实现对整个Android系统的系统调用的拦截与监控,从而使用户对安装的软件的行为了如指掌,能够及时发现软件的恶意行为。对于Android系统,无论是在应用层还是在Native层对系统进行调用,都会进行内核层的系统调用,因此,可以通过在内核层对系统调用进行监控和拦截,以达到安全保护的目的。由于本专利技术提供的方法对Native层产生的系统调用也能进行监控,这种基于内核层的软件调用监控比现有的针对应用层的一些监控框架如Xposed等,能够保护得更加彻底,对手机的安全防护性也更强。本专利技术提供的技术方案是:一种针对Android系统App行为的监控方法,通过安全内核实现方法在Android内核层添加模块,实现对整个Android系统的系统调用的拦截与监控;包括如下步骤:S1.编写内核模块;所述编写的内核模块用于实现如下操作:a)获取系统调用表;b)编写自定义函数;c)用所述自定义函数的地址替换所述系统调用表里面的系统调用函数;d)通过所述自定义函数获取相关进程信息;e)编写Netlink socket通信模块,用于将所述相关进程信息传递给应用层;S2.在步骤S1编写的内核模块中,通过hook方法实现对系统调用函数的替换;S3.将步骤S1编写的内核模块加载到内核中去,实现对替换调用函数的拦截,拦截得到调用函数;S4.设定监控目标,包括设定敏感数据和操作,判断拦截得到的调用函数是否对所述设定的敏感数据进行了设定操作;当发生有所述设定时,记录调用函数操作的进程信息,再执行步骤S5;当没有发生所述设定操作时,结束操作;S5.通过内核模块编写的Netlink Socket通信功能,将所述记录的调用函数操作的进程信息传递给上层接收程序,形成日志文件。针对上述针对Android系统App行为的监控方法,进一步地,步骤S1的e)中,所述通信模块采用Linux API hook、Inline hook和Netlink socket通信中的一种。在本专利技术实施例中,所述通信模块采用Netlink socket通信。针对上述针对Android系统App行为的监控方法,进一步地,步骤S2所述hook方法具体包括:首先编写自定义函数;再通过将自定义函数的地址替换系统调用函数的地址,实现对系统调用函数的替换;所述系统调用函数的地址通过步骤S1获取的系统调用表得到。所述hook方法具体通过使用Linux hook api和inline hook对系统调用进行处理,实现对系统调用函数的替换。所述系统调用表地址的获取具体是通过代码来模仿swi中断,在中断过程中将系统调用
表的地址放入tb1寄存器中,由此获得所述系统调用表地址。所述自定义函数的参数列表必须和相应的系统调用函数的参数列表一致,并且在自定义函数的尾部要继续调用所述相应的系统函数,从而使得所述自定义函数能够正确返回。针对上述针对Android系统App行为的监控方法,进一步地,步骤S4所述调用函数操作的进程信息还包括:通过获取所述进程的上下文而获得的其他信息。与现有技术相比,本专利技术的有益效果是:本专利技术提供一种基于Android系统App敏感行为监控的安全内核实现方法,通过在Android内核层添加模块的方法,实现对整个Android系统的系统调用的拦截与监控,从而使用户对安装的软件的行为了如指掌,能够及时发现软件的恶意行为。本专利技术通过编写自己的Android内核模块,进行交叉编译,然后将模块加载到Android系统中,通过对特定的函数(如读取通讯录等相关信息的函数)进行拦截,获得到相应的系统调用信息。系统调用信息包括:读取的进程(是哪个进程读取的)等。然后将相应记录信息返回给应用层,形成相应的日志文件。本专利技术提供的安全内核实现方法无论对应用层还是Native层产生的系统调用均能进行监控,这种基于内核层的软件调用监控比现有的针对应用层的一些监控框架如Xposed等方法,能够保护得更加彻底,对手机的安全防护性也更强。附图说明图1是本专利技术实施例中基于Android系统App敏感行为监控的安全内核实现方法的流程框图。具体实施方式下面结合附图,通过实施例进一步描述本专利技术,但不以任何方式限制本专利技术的范围。本专利技术提供一种基于Android系统App敏感行为监控的安全内核实现方法,通过在Android内核层添加模块的方法,实现对整个Android系统的系统调用的拦截与监控。具体地,通过编写自己的Android内核模块,进行交叉编译,然后将模块加载到Android系统中,通过对特定的函数(如读取通讯录等相关信息的函数)进行拦截,获得到相应的系统调用信息。系统调用信息包括:读取的进程(是哪个进程读取的)等。再将相应记录信息返回给应用层,
形成相应的监控日志文件。本专利技术包括如下步骤:S1.编写内核模块,获取系统调用表地址;在编写的内核模块中实现获取系统调用表地址;通过编写的内核模块,可进一步执行并实现以下几方面操作:f)获取系统调用表;g)编写自定义函数;h)用自定义函数地址替换系统调用表里面的系统调用函数;i)在自定义的函数里面获取相关的进程信息;j)把进程信息通过自己编写的通信模块(采用Netlink socket通信)传递给应用层;k)应用层接收相应的信息并生成日志文件。S2.在内核模块里面通过hook技术实现对系统调用函数的替换;首先编写自定义函数;再通过将自定义函数的地址替换系统调用函数的地址,实现对系统调用函数的替换。其中,系统调用函数的地址通过步骤S1获取的系统调用表得到。S3.将步骤S1编写的内核模块加载到内核中去,实现对替换调用函数的拦截;S4.判断拦截下来的调用函数是否对我本文档来自技高网
...

【技术保护点】
一种针对Android系统App行为的监控方法,通过安全内核实现方法在Android内核层添加模块,实现对整个Android系统的系统调用的拦截与监控;包括如下步骤:S1.编写内核模块;所述编写的内核模块用于实现如下操作:a)获取系统调用表;b)编写自定义函数;c)用所述自定义函数的地址替换所述系统调用表里面的系统调用函数;d)通过所述自定义函数获取相关进程信息;e)编写Netlink socket通信模块,用于将所述相关进程信息传递给应用层;S2.在步骤S1编写的内核模块中,通过hook方法实现对系统调用函数的替换;S3.将步骤S1编写的内核模块加载到内核中去,实现对替换调用函数的拦截,拦截得到调用函数;S4.设定监控目标,包括设定敏感数据和操作,判断拦截得到的调用函数是否对所述设定的敏感数据进行了设定操作;当发生有所述设定时,记录调用函数操作的进程信息,再执行步骤S5;当没有发生所述设定操作时,结束操作;S5.通过内核模块编写的Netlink Socket通信功能,将所述记录的调用函数操作的进程信息传递给上层接收程序,形成日志文件。

【技术特征摘要】
1.一种针对Android系统App行为的监控方法,通过安全内核实现方法在Android内核层添加模块,实现对整个Android系统的系统调用的拦截与监控;包括如下步骤:S1.编写内核模块;所述编写的内核模块用于实现如下操作:a)获取系统调用表;b)编写自定义函数;c)用所述自定义函数的地址替换所述系统调用表里面的系统调用函数;d)通过所述自定义函数获取相关进程信息;e)编写Netlink socket通信模块,用于将所述相关进程信息传递给应用层;S2.在步骤S1编写的内核模块中,通过hook方法实现对系统调用函数的替换;S3.将步骤S1编写的内核模块加载到内核中去,实现对替换调用函数的拦截,拦截得到调用函数;S4.设定监控目标,包括设定敏感数据和操作,判断拦截得到的调用函数是否对所述设定的敏感数据进行了设定操作;当发生有所述设定时,记录调用函数操作的进程信息,再执行步骤S5;当没有发生所述设定操作时,结束操作;S5.通过内核模块编写的Netlink Socket通信功能,将所述记录的调用函数操作的进程信息传递给上层接收程序,形成日志文件。2.如权利要求1所述针对Android系统App行为的监控方法,其特征是,步骤S1的e)中,所述通信模块采用Netlink ...

【专利技术属性】
技术研发人员:文伟平
申请(专利权)人:北京鼎源科技有限公司
类型:发明
国别省市:北京;11

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

1