一种进程监控的方法和装置的制造方法

文档序号:9810932阅读:188来源:国知局
一种进程监控的方法和装置的制造方法
【技术领域】
[0001]本申请涉及信息安全技术领域,特别是涉及一种进程监控的方法和一种进程监控的装置。
【背景技术】
[0002]随着通信技术的快速发展,手机等移动终端已经非常普及,并且移动终端提供的功能也越来越多。例如,用户不仅可以通过移动终端打电话、发短信,还可以自由地安装各种应用程序,从而实现在移动终端上进行工作、观看视频、购物、支付等活动。目前,用户在移动终端上安装几十甚至上百个应用程序已是非常普遍的情况,因此,这些应用程序是否安全对用户而言也越来越重要。
[0003]目前,使用安卓Android操作系统的移动终端,应用程序一般都是通过JAVA进程创建JAVA子进程进行运行。一些应用程序,出于实现应用程序固有功能需要之外的目的,特别是商业目的,随意申请系统权限,获取用户隐私数据、执行网络访问、保持设备活动、发送短信行为等。轻则可能导致用户隐私数据泄露,或者占用系统资源,重则可能通过恶意扣费、植入广告、消耗资费、欺诈诱骗等,使用户遭受损失。因此,为了保证移动终端的安全性,Android操作系统会对JAVA子进程进行监控,其做法是:将主动防御模块预先注入Zygote(孵化器)进程,然后JAVA进程向Zygote进程申请创建子进程,从而使Zygote进程分裂出子进程,由于主动防御模块预先已经注入到Zygote进程中,因此Zygote进程分裂出的子进程中自然也包含主动防御模块,可以实现对子进程的监控。
[0004]但是,现有方法只对JAVA子进程有效,对于通过Native进程或者其他进程运行的应用程序,现有的方法因为无法注入到Native进程或者其他进程中去,因而也就不能对其进行监控,此外,JA VA进程也可能创建Native子进程,利用现有的方法同样无法实现对Nati ve子进程的监控。

【发明内容】

[0005]鉴于上述问题,提出了本申请以便提供一种克服上述问题或者至少部分地解决上述问题的一种进程监控的方法和相应的一种进程监控的装置。
[0006]依据本申请的一个方面,提供了一种进程监控的方法,包括:
[0007]当监控到父进程创建子进程时,拦截所述父进程对执行文件的调用命令;
[0008]根据所述调用命令,创建注入器;
[0009]采用所述注入器,创建子进程,所述子进程具有相应的Hook监控模块;
[0010]采用所述Hook监控模块对所述子进程进行监控。
[0011]可选地,在所述当监控到父进程创建子进程时,拦截所述父进程对执行文件的调用命令的步骤后,还包括:
[0012]获取所述子进程对应的路径参数,以及,注入器对应的路径参数。
[0013]可选地,所述根据所述调用命令,创建注入器的步骤包括:
[0014]判断所述父进程是否是通过切换用户SU提权方式创建子进程;
[0015]若是,则采用所述切换用户SU提权创建所述注入器;
[0016]若否,则将所述子进程替换为所述注入器,从而创建所述注入器。
[0017]可选地,所述采用所述切换用户SU提权创建所述注入器的步骤包括:
[0018]在切换用户SU提权的指令中,加入-C参数,采用所述切换用户SU提权创建所述注入器。
[0019 ]可选地,所述将所述子进程替换为所述注入器,从而创建所述注入器的步骤包括:
[0020]将所述调用命令中子进程对应的路径参数替换为注入器对应的路径参数,从而创建所述注入器。
[0021 ]可选地,所述采用所述注入器,创建子进程的步骤包括:
[0022]采用所述注入器,创建所述子进程的镜像;
[0023]根据所述子进程对应的路径参数,调用所述子进程对应的组件;
[0024]将所述子进程对应的组件以及预设的Hook监控模块注入所述子进程的镜像;
[0025]命令所述子进程加载S分享属性。
[0026]可选地,所述采用所述Hook监控模块对所述子进程进行监控的步骤包括:
[0027]命令所述Hook监控模块通过所述S分享属性对所述子进程进行监控;
[0028]当通过所述Hook监控模块监控到所述子进程创建进程时,将所述子进程作为父进程,继续为新创建的进程注入所述Hook监控模块。
[0029]可选地,所述父进程包括JAVA进程,和/或,Nati ve进程;所述子进程包括JAVA进程,和/或,Native进程。
[0030]根据本申请的另一方面,提供了一种进程监控的装置,包括:
[0031 ]拦截模块,用于在监控到父进程创建子进程时,拦截所述父进程对执行文件的调用命令;
[0032]创建模块,用于根据所述调用命令,创建注入器;
[0033]注入模块,用于采用所述注入器,创建子进程,所述子进程具有相应的Hook监控模块;
[0034]监控模块,用于采用所述Hook监控模块对所述子进程进行监控。
[0035]可选地,还包括:
[0036]获取模块,用于获取所述子进程对应的路径参数,以及,注入器对应的路径参数。
[0037]可选地,所述创建模块包括:
[0038]判断子模块,用于判断所述父进程是否是通过切换用户SU提权方式创建子进程;
[0039]第一创建子模块,用于在父进程是通过切换用户SU提权方式创建子进程时,采用所述切换用户SU提权创建所述注入器;
[0040]第二创建子模块,用于在父进程不是通过切换用户SU提权方式创建子进程时,将所述子进程替换为所述注入器,从而创建所述注入器。
[0041 ]可选地,所述第一创建子模块包括:
[0042]第一创建单元,用于在切换用户SU提权的指令中,加入-C参数,采用所述切换用户SU提权创建所述注入器。
[0043]可选地,所述第二创建子模块包括:
[0044]第二创建单元,用于将所述调用命令中子进程对应的路径参数替换为注入器对应的路径参数,从而创建所述注入器。
[0045]可选地,所述注入模块包括:
[0046]镜像创建子模块,用于采用所述注入器,创建所述子进程的镜像;
[0047]组件调用子模块,用于根据所述子进程对应的路径参数,调用所述子进程对应的组件;
[0048]第一注入子模块,用于将所述子进程对应的组件以及预设的Hook监控模块注入所述子进程的镜像;
[0049]S属性加载子模块,用于命令所述子进程加载S分享属性。
[0050]可选地,所述监控模块包括:
[0051]第一监控子模块,用于命令所述Hook监控模块通过所述S分享属性对所述子进程进行监控;
[0052]第二注入子模块,用于在通过所述Hook监控模块监控到所述子进程创建进程时,将所述子进程作为父进程,继续为新创建的进程注入所述Hook监控模块。
[0053]可选地,所述父进程包括JAVA进程,和/或,Nati ve进程;所述子进程包括JAVA进程,和/或,Native进程。
[0054]根据本申请的一种进程监控的方法和装置可以在监控到父进程通过Fork函数创建子进程时,通过拦截父进程对Execve函数的调用命令,将所述调用命令中子进程对应的路径参数替换为注入器对应的路径参数,以创建出注入器,然后在通过所述注入器创建子进程时,注入预设的Hook监控模块,使得Hook监控模块能够对新创建的子进程进行监控,从而解决了目前安卓操作系统中只能对JAVA进程创建的JAVA子进程进行监控的问题,从而可以实现对任一进程创建的各种类型子进程行为的监控,有助于及时发现恶意进程,提高系统的安全性。
[0055]上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的【具体实施方式】。
【附图说明】
[0056]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0057]图1示出了根据本申请一个实施例的一种进程监控的方法步骤流程图;
[00
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1