一种系统调用的监控方法和装置与流程

文档序号:11918134阅读:352来源:国知局
本发明涉及通信
技术领域
:,具体涉及一种系统调用的监控方法和装置。
背景技术
::在操作系统中,绝大部分的资源都是通过系统调用来访问的,比如文件、和内存,等等。因此,如果能够控制系统调用,保证他们调用是具有权限的,比如不是来自恶意或非法用户,就能够在很大程度上提高系统的安全性,为此,现有技术提出了系统调用的监控技术,即对系统调用进行拦截和分析,在根据分析结果确定该系统调用具有权限时,才允许执行该系统调用。在现有技术中,主要是利用系统漏洞,对系统内核空间中的数据进行修改来达到拦截调用的目的的。例如,具体可以对内核空间中的syscalltable(系统调用函数表)中某个syscall(系统调用)函数的地址进行修改,从而改变该syscall函数的指向,使得系统在调用该syscall函数时,可以指向更改后地址所对应的函数,比如一个自定义函数,然后,利用该自定义函数,获取该系统调用的相关信息并进行分析,便可以确定该系统调用是否具有权限,是否允许执行该系统调用,等等。在对现有技术的研究和实践过程中,本发明的发明人发现,现有的方案需要对内核空间的数据进行修改,因此,实现较为复杂,而且,由于受限于系统漏洞本身,所以,适配性、稳定性和兼容性也较差。技术实现要素:本发明实施例提供一种系统调用的监控方法和装置,不需要修改内核空间的数据,不仅实现简单,而且可以提高适配性、稳定性和兼容性。本发明实施例提供一种系统调用的监控方法,包括:接收用户进程的启动请求,所述启动请求中携带需要启动的用户进程的标识;根据所述标识创建用户进程,并对所述用户进程进行追踪,得到追踪信息;当追踪信息指示所述用户进程在进行系统调用时,获取系统调用信息;基于所述系统调用信息对所述用户进程的系统调用操作进行监控。相应的,本发明实施例提供一种系统调用的监控装置,包括:接收单元,用于接收用户进程的启动请求,所述启动请求中携带需要启动的用户进程的标识;创建单元,用于根据所述标识创建用户进程;追踪单元,用于对所述用户进程进行追踪,得到追踪信息;获取单元,用于当追踪信息指示所述用户进程在进行系统调用时,获取系统调用信息;监控单元,用于基于所述系统调用信息对所述用户进程的系统调用操作进行监控。本发明实施例在接收到用户进程的启动请求时,可以根据该启动请求中携带的需要启动的用户进程的标识创建用户进程,并对该用户进程进行追踪,然后,当追踪信息指示该用户进程在进行系统调用时,获取系统调用信息,并基于该系统调用信息对该用户进程的系统调用操作进行监控;由于该方案的大部分逻辑都在用户空间完成,而无需对内核空间的数据进行修改,因此,实现较为简单;而且,由于该方案无需基于系统漏洞,所以,相对于现有的方案而言,适配性、稳定性和兼容性也得到大大地提高。附图说明为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1a是本发明实施例提供的系统调用的监控方法的场景示意图;图1b是本发明实施例提供的系统调用的监控方法的流程图;图2a是本发明实施例提供的系统调用的监控方法的另一流程图;图2b是本发明实施例提供的系统调用的监控方法的另一场景示意图;图3a是本发明实施例提供的系统调用的监控装置的结构示意图;图3b是本发明实施例提供的系统调用的监控装置的另一结构示意图;图4是本发明实施例提供的终端的结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明实施例提供一种系统调用的监控方法和装置。其中,该系统调用的监控方法具体可以适用于安卓(android)操作系统(简称安卓系统)或其他类似的操作系统,而该系统调用的监控装置具体可以集成在终端,比如手机、平板电脑或笔记本电脑等设备中。以安卓系统为例,参见图1a,内存空间一般可以划分为内核空间和用户空间,其中,内核空间和用户空间的权限不同,内核空间拥有较高的权限,一个终端一般只有一个内核空间,而用户空间相对内核空间而言,权限较低,一般可以存在有多个用户空间,这些用户空间主要用于各种应用程序的运行,每个应用程序可以包括多个进程,在本发明实施例中,将这些应用程序对应的进程称为用户进程;而系统调用,主要指的是对内核空间中的系统调用函数的调用。为了实现对系统调用的监控,可以在用户进程创建时,便对该用户进程进行追踪,若追踪信息指示该用户进程正在进行系统调用,则获取系统调用信息,并基于该系统调用信息对该用户进程的系统调用操作进行控制。例如,如图1a所示,可以启动一追踪进程,当该追踪进程接收到用户进程的启动请求时,便可以根据该启动请求中携带的需要启动的用户进程的标识创建用户进程,比如,可以将跟踪进程附加(attach)至孵化进程(也称为孵化器),通过孵化进程如zygote创建(即孵化)一新的进程(即子进程),然后根据该标识对该子进程中的预设参数进行修改,得到用户进程,与此同时,还可以在该跟踪进程中设置相应的标识,用于指示对用户进程进行追踪,这样,后续跟踪进程便可以自动附加至该用户进程,当该用户进程进行系统调用时,内核空间便会返回相应的系统调用信息给附加至该用户进程的进程,即该跟踪进程,使得跟踪进程可以基于该系统调用信息对该用户进程的系统调用操作进行监控。比如,具体可以从中央处理器(CPU,CentralProcessingUnit)的寄存器中读取系统调用函数(syscall)的函数号(syscallnumber),然后,根据该函数号确定是否需要对该系统调用函数的调用进行控制,若需要,则对该系统调用信息进行分析,并基于分析结果对该用户进程的系统调用进行控制,否则,如果不需要对该函数的调用进行控制,则继续执行该用户进程,等等。以下分别进行详细说明。需说明的是,以下实施例的序号不作为对实施例优选顺序的限制。实施例一、在本实施例中,将从系统调用的监控装置的角度进行描述,该系统调用的监控装置具体可以集成在终端中,该终端可以包括手机、平板电脑或笔记本电脑等设备。一种系统调用的监控方法,包括:接收用户进程的启动请求,该启动请求中携带需要启动的用户进程的标识;根据该标识创建用户进程,并对该用户进程进行追踪,得到追踪信息;当追踪信息指示该用户进程在进行系统调用时,获取系统调用信息;基于该系统调用信息对该用户进程的系统调用操作进行监控。如图1b所示,该系统调用的监控方法的具体流程可以如下:101、接收用户进程的启动请求。其中,该启动请求中携带需要启动的用户进程的标识,比如该用户进程的名称和/或编号等信息,此外,还可以携带其他的信息,比如与该用户进程相应的预设参数的值,等等。其中,预设参数与具体的用户进程相关,一般用于指示该用户进程的资源和调用等情况,不同的用户进程所对应的预设参数可能会存在差异,具体可以根据实际应用的需求而定,在此不再赘述。可选的,可以通过设置一追踪进程(或称为拦截进程)来执行该系统调用的监控操作方法的相关操作,即步骤“接收用户进程的启动请求”具体可以为:通过追踪进程接收用户进程的启动请求。若通过追踪进程来执行该系统调用的监控操作方法的相关操作,则在首次执行时,需要启动该追踪进程,即可选的,在步骤“接收用户进程的启动请求”之前,该系统调用的监控方法还可以包括:接收系统调用的监控请求,根据该监控请求启动跟踪进程。其中,该跟踪进程具体可以通过ptrace(跟踪)机制来实现,比如,具体可以在系统处理系统调用函数(syscall)软中断的例程中插入硬编码的hook(entry.s)(hook(entry.s)为一种钩子函数),使之能够拦截所有被追踪进程的syscall调用和调出,从而达到些安全防护的效果,比如注入拦截,文件删除拦截,文件修改拦截,文件读取拦截、以及网络通讯拦截,等等。102、根据该标识创建用户进程,并对该用户进程进行追踪,得到追踪信息。其中,根据该标识创建用户进程的方式可以有多种,例如,可以如下:将跟踪进程附加(attach)至孵化进程(也称为孵化器),通过该孵化进程创建子进程,该子进程继承该孵化进程的内容,根据该标识对该子进程中的预设参数进行修改,得到用户进程。比如,可以根据该标识确定该子进程中需要修改的参数,以及相应参数值,然后,根据该需要修改的参数,以及相应参数值对该子进程进行修改,得到用户进程。需说明的是,若在用户进程的启动请求中已经携带了预设参数的值,则此时,可以从该启动请求中该子进程中需要修改的参数,以及相应参数值;而如果启动请求中并没有携带该预设参数的值,则此时,可以从其他存储单位或数据库中获取到该子进程中需要修改的参数,以及相应参数值。其中,该孵化进程具体可以为zygote(孵化)进程或其他可以实现与zygote进程类似功能的进程,具体可根据实际应用的需求而定,在此不再赘述。例如,以该孵化进程具体为zygote进程为例,则可以将该跟踪进程附加(attach)至zygote进程,这样,当收到需要启动用户进程时,比如当用户点击某个终端应用的图标时,则zygote进程会以自己为母本,创建(或称为孵化)一新的进程,该新的进程继承了zygote进程所有的内容,也就是说,此时zygote进程相当于父进程,而该新的进程相当于子进程,因此,在本发明实施例中,将该新的进程称为子进程,此后,便可以根据需要启动的用户进程的标识确定该子进程中需要修改的参数,以及相应参数值,然后根据该需要修改的参数,以及相应参数值对该子进程进行修改,得到用户进程。此外,在将该跟踪进程附加至孵化进程时,还可以在该跟踪进程中设置相应的标识,该标识用于指示对用户进程进行追踪,这样,后续若发现有该标识,便可以对用户进程进行追踪,或者,也可以设置一标识,用于指示是否对用户进程进行追踪,比如值为“1”时表示需要对用户进程进行追踪,值为“0”时表示需要对用户进程进行追踪,反之亦可,等等。即此时,步骤“对该用户进程进行追踪,得到追踪信息”可以包括:确定该标识指示对用户进程进行追踪时,将该跟踪进程附加至该用户进程,使得该跟踪进程对该用户进程进行追踪,得到追踪信息。比如,具体可以在跟踪进程中设置PTRACE_O_TRACEFORK,其中,PTRACE_O_TRACEFORK是PTRACE中的一个标识位,通过设置它,可以使得当由zygote进程孵化的进程执行到FORK(一种函数)时,自动附加至对应的用户进程上,这样,后续追踪进程便可以对该用户进程进行追踪。103、当追踪信息指示该用户进程在进行系统调用时,获取系统调用信息。例如,当追踪信息指示该用户进程在进行系统调用时,具体可以通过跟踪进程接收来自内核空间的系统调用信息。比如,以用户进程为应用A的启动进程为例,则当该应用A的启动进程调用内核空间的某个系统调用函数(syscall)时,由于syscall在系统底层的实现,因此,它会向附加(attach)到该用户进程的进程发送信号,即会向追踪进程发送信号,其中,该信号携带系统调用信息。其中,该系统调用信息可以包括系统调用函数标识,比如名称和/或调用号(syscallnumber)等,还可以包括系统调用的时间、以及存储位置等。104、基于该系统调用信息对该用户进程的系统调用操作进行监控。例如,具体可以如下:(1)读取系统调用函数的调用号(syscallnumber)。比如,可以通过读取CPU的寄存器,来获取到调用号。(2)根据该调用号确定需要对该函数的调用进行控制时,对该系统调用信息进行分析,得到分析结果。例如,可以预设一数据表,该数据表保存有调用号、系统调用函数(syscall)、以及重要等级等信息之间的映射关系,其中,重要等级越高,表明调用该syscall时所需要的权限等级越高,越需要对该函数的调用进行控制。这样,在获取到调用号之后,便可以通过查找该预设数据表,来确定该调用号所对应的函数调用是否是需要进行控制,比如,以重要等级为“1”表示需要对该函数的调用进行控制为例,则此时,若调用号为“333”所对应的重要等级为“1”,则可以需要对该函数的调用进行控制,于是,对该系统调用信息进行分析,比如,可以确定该用户进程是否具有调用该函数的权限,等等,从而得到分析结果。反之,若调用号为“333”所对应的重要等级为不为“1”,则可以不需要对该函数的调用进行控制,于是,可以允许该用户进程调用该函数。(3)根据该分析结果对该用户进程的系统调用操作进行控制,比如,可以如下:根据该分析结果确定该用户进程具有调用该函数的权限时,允许该用户进程调用该函数;根据该分析结果确定该用户进程不具有调用该函数的权限时,阻止该用户进程调用该函数。由上可知,本实施例在接收到用户进程的启动请求时,可以根据该启动请求中携带的需要启动的用户进程的标识创建用户进程,并对该用户进程进行追踪,然后,当追踪信息指示该用户进程在进行系统调用时,获取系统调用信息,并基于该系统调用信息对该用户进程的系统调用操作进行监控;由于该方案的大部分逻辑都在用户空间完成,而无需对内核空间的数据进行修改,因此,实现较为简单;而且,由于该方案无需基于系统漏洞,所以,相对于现有的方案而言,适配性、稳定性和兼容性也得到大大地提高。实施例二、根据实施例一所描述的方法,以下将举例作进一步详细说明。在本实施例中,将以该系统调用的监控装置具体集成在终端中,且该终端的操作系统为安卓系统为例进行说明。如图2a所示,一种系统调用的监控方法,具体流程可以如下:201、终端接收系统调用的监控请求,根据该监控请求启动跟踪进程。其中,该跟踪进程具体可以通过ptrace(跟踪)机制来实现,比如,具体可以在系统处理系统调用函数(syscall)软中断的例程中插入硬编码的hook(entry.s)(hook(entry.s)为一种钩子函数),使之能够拦截所有被追踪进程的syscall调用和调出,从而达到些安全防护的效果,比如注入拦截,文件删除拦截,文件修改拦截,文件读取拦截、以及网络通讯拦截,等等。需说明的是,为了节省流程,提高效率,该跟踪进程只需在首次运行时启动即可,后续可以一直沿用,而无需每次对用户进程进行监控时都启动一次,即步骤201为可选步骤,若当前系统中的跟踪进程已经启动,则可以不执行该步骤。202、终端通过追踪进程接收用户进程的启动请求。其中,该启动请求中携带需要启动的用户进程的标识,比如该用户进程的名称和/或编号等信息,此外,还可以携带其他的信息,比如与该用户进程相应的预设参数的值,等等。203、终端将跟踪进程附加(attach)至孵化进程,通过该孵化进程创建子进程,该子进程继承该孵化进程的内容,根据该标识对该子进程中的预设参数进行修改,得到用户进程。其中,该孵化进程具体可以为zygote(孵化)进程或其他可以实现与zygote进程类似功能的进程,例如,以该孵化进程具体为zygote进程,且该需要启动的用户进程为文件A的删除进程为例,则如图2b所示,具体可以如下:可以将该跟踪进程附加(attach)至zygote进程,这样,当接收到文件A的“删除进程”的启动请求时,比如用户点击或滑动文件A的图标以对该文件A进行删除时,zygote进程便会以自己为母本,创建一新的进程,得到子进程,其中,该子进程继承zygote进程的全部内容,然后,根据需要该启动请求中携带的需要启动的“删除进程”的标识确定该子进程中需要修改的参数,以及相应参数值,并根据该需要修改的参数,以及相应参数值对该子进程进行修改,得到该文件A的删除进程(即用户进程)。此外,在将该跟踪进程附加至孵化进程时,还可以在该跟踪进程中设置相应的标识,用于指示对用户进程进行追踪,比如,参见图2b,可以在跟踪进程中设置PTRACE_O_TRACEFORK,这样,当zygote进程执行到FORK函数,即创建一子进程,以得到用户进程时,跟踪进程便可以自动附加(attach)至对应的用户进程,即文件A的删除进程上,从而使得后续该追踪进程可以对该文件A的删除进程进行追踪。其中,追踪进程的部分代码可以如下:204、终端根据追踪信息确定该用户进程是否在进行系统调用,若不在进行系统调用,则可以忽略,若在进行系统调用,则通过跟踪进程接收来自内核空间的系统调用信息。例如,还是以用户进程为文件A的删除进程为例,则当该文件A的删除进程调用内核空间的某个syscall,比如函数“sys_getpid”时,内核空间会向附加(attach)到该删除进程的进程发送信号,即会向追踪进程发送信号,比如发送stopsig,参见图2b,其中,该信号携带系统调用信息,因此,此时,追踪进程可以接收到来自内核空间的系统调用信息。其中,该系统调用信息可以包括系统调用函数标识,比如名称和/或调用号(syscallnumber)等,此外,该系统调用信息还可以包括系统调用的时间、以及存储位置等信息,在此不再赘述。205、终端读取系统调用函数的调用号(syscallnumber),即读取syscall的调用号。比如,由于CPU的寄存器一般保存有当前正在运行的进程所调用的syscall的调用号,因此,可以通过读取CPU的寄存器,来获取到该调用号。206、终端根据该调用号确定需要对该函数的调用进行控制时,对该系统调用信息进行分析,得到分析结果。例如,在获取到调用号之后,可以通过查找预设数据表,来确定是否需要对该调用号所对应的函数的调用进行控制,比如,还是以调用函数“sys_getpid”为例,由于函数“sys_getpid”所对应的调用号为“20”,因此,可以在该预设数据表中查找调用号为“20”的函数的相关记录,以确定是否需要对函数“sys_getpid”的调用进行控制,若需要,则此时可以对接收到的系统调用信息进行分析,得到分析结果;否则,若不需要,则可以直接允许该用户进程调用该函数“sys_getpid”,以此类推,等等。207、终端根据该分析结果确定该用户进程是否具有调用该函数的权限,若是,则允许该用户进程调用该函数;若否,则阻止该用户进程调用该函数。由上可知,本实施例可以通过将追踪进程附加至孵化进程,并在追踪进程中设置相应的用于指示对用户进程进行追踪的标识,使得当孵化进程创建用户进程时,该追踪进程可以自动地附加至该用户进程上,从而达到对用户进程进行追踪,以获取到相应系统调用信息,并基于该系统调用信息对该用户进程的系统调用操作进行监控的目的;由于该方案的大部分逻辑都在用户空间完成,而无需对内核空间的数据进行修改,因此,实现较为简单;而且,由于该方案无需基于系统漏洞,所以,相对于现有的方案而言,适配性、稳定性和兼容性也得到大大地提高;总而言之,本实施例可以在保障系统调用安全性的同时,提高适配性、稳定性和兼容性,而且,实现较为简单,可以大大简单开发难度和成本。实施例三、为了更好地实施以上方法,本发明实施例还提供一种系统调用的监控装置,如图3a所示,该系统调用的监控装置可以包括接收单元301、创建单元302、追踪单元303、获取单元304和监控单元305,如下:(1)接收单元301;接收单元301,用于接收用户进程的启动请求,该启动请求中携带需要启动的用户进程的标识。其中,该用户进程的标识可以包括用户进程的名称和/或编号等信息。此外,该启动请求还可以携带其他的信息,比如与该用户进程相应的预设参数的值,等等。其中,预设参数与具体的用户进程相关,一般用于指示该用户进程的资源和调用等情况,不同的用户进程所对应的预设参数可能会存在差异,具体可以根据实际应用的需求而定,在此不再赘述。可选的,可以通过设置一追踪进程(或称为拦截进程)来执行该系统调用的监控操作方法的相关操作,即如图3b所示,该系统调用的监控装置还可以包括启动单元306,如下:接收单元301,还可以用于接收系统调用的监控请求;则此时,启动单元306,可以用于根据该监控请求启动跟踪进程。其中,该跟踪进程具体可以通过ptrace机制来实现,比如,具体可以在系统处理系统调用函数(syscall)软中断的例程中插入硬编码的hook(entry.s),使之能够拦截所有被追踪进程的syscall调用和调出。(2)创建单元302;创建单元302,用于根据该标识创建用户进程;例如,该创建单元302,具体可以用于将跟踪进程附加至孵化进程;通过该孵化进程创建子进程,该子进程继承该孵化进程的内容;根据该标识对该子进程中的预设参数进行修改,得到用户进程。比如,可以根据该标识确定该子进程中需要修改的参数,以及相应参数值,然后,根据该需要修改的参数,以及相应参数值对该子进程进行修改,得到用户进程。需说明的是,若在用户进程的启动请求中已经携带了预设参数的值,则此时,可以从该启动请求中该子进程中需要修改的参数,以及相应参数值;而如果启动请求中并没有携带该预设参数的值,则此时,可以从其他存储单位或数据库中获取到该子进程中需要修改的参数,以及相应参数值。其中,该孵化进程具体可以为zygote进程或其他可以实现与zygote进程类似功能的进程,具体可根据实际应用的需求而定,在此不再赘述。此外,在将该跟踪进程附加至孵化进程时,还可以在该跟踪进程中设置一用于指示对用户进程进行追踪的标识,这样,后续若发现有该标识,便可以对用户进程进行追踪,即:该创建单元302,还可以用于在将该跟踪进程附加至孵化进程时,在该跟踪进程中设置相应的标识,该标识用于指示是否对子进程进行追踪。(3)追踪单元303;追踪单元303,用于对该用户进程进行追踪,得到追踪信息;例如,该追踪单元303,具体可以用于确定该标识指示对用户进程进行追踪时,将该跟踪进程附加至该用户进程,使得该跟踪进程对该用户进程进行追踪,得到追踪信息,等等。(4)获取单元304;获取单元304,用于当追踪信息指示该用户进程在进行系统调用时,获取系统调用信息;例如,该获取单元304,具体可以用于当追踪信息指示该用户进程在进行系统调用时,通过跟踪进程接收来自内核空间的系统调用信息。比如,以用户进程K为例,则当用户进程K调用内核空间的某个syscall时,内核空间便会向附加(attach)到该用户进程K的进程发送信号,即会向追踪进程发送信号,其中,该信号携带系统调用信息。其中,该系统调用信息可以包括系统调用函数标识,比如名称和/或调用号等,还可以包括系统调用的时间、以及存储位置等。(5)监控单元305;监控单元305,用于基于该系统调用信息对该用户进程的系统调用操作进行监控。例如,该监控单元305可以包括读取子单元、分析子单元和控制子单元,如下:读取子单元,用于读取系统调用函数的函数号。比如,该读取子单元,可以用于从CPU的寄存器中读取系统调用函数的函数号,等等。分析子单元,用于根据该函数号确定需要对该函数的调用进行控制时,对该系统调用信息进行分析,得到分析结果。控制子单元,用于根据该分析结果对该用户进程的系统调用操作进行控制,例如,可以如下:控制子单元,具体用于在根据该分析结果确定该用户进程具有调用该函数的权限时,允许该用户进程调用该函数;在根据该分析结果确定该用户进程不具有调用该函数的权限时,阻止该用户进程调用该函数。具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。该系统调用的监控装置具体可以集成在终端中,该终端可以包括手机、平板电脑或笔记本电脑等设备。由上可知,本实施例在接收到用户进程的启动请求时,可以由创建单元302根据该启动请求中携带的需要启动的用户进程的标识创建用户进程,并由追踪单元303对该用户进程进行追踪,然后,当追踪信息指示该用户进程在进行系统调用时,由获取单元304获取系统调用信息,并由监控单元305基于该系统调用信息对该用户进程的系统调用操作进行监控;由于该方案的大部分逻辑都在用户空间完成,而无需对内核空间的数据进行修改,因此,实现较为简单;而且,由于该方案无需基于系统漏洞,所以,相对于现有的方案而言,适配性、稳定性和兼容性也得到大大地提高。实施例四、相应的,本发明实施例还提供一种终端,如图4所示,该终端可以包括射频(RF,RadioFrequency)电路401、包括有一个或一个以上计算机可读存储介质的存储器402、输入单元403、显示单元404、传感器405、音频电路406、无线保真(WiFi,WirelessFidelity)模块407、包括有一个或者一个以上处理核心的处理器408、以及电源409等部件。本领域技术人员可以理解,图4中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:RF电路401可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器408处理;另外,将涉及上行的数据发送给基站。通常,RF电路401包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM,SubscriberIdentityModule)卡、收发信机、耦合器、低噪声放大器(LNA,LowNoiseAmplifier)、双工器等。此外,RF电路401还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(GSM,GlobalSystemofMobilecommunication)、通用分组无线服务(GPRS,GeneralPacketRadioService)、码分多址(CDMA,CodeDivisionMultipleAccess)、宽带码分多址(WCDMA,WidebandCodeDivisionMultipleAccess)、长期演进(LTE,LongTermEvolution)、电子邮件、短消息服务(SMS,ShortMessagingService)等。存储器402可用于存储软件程序以及模块,处理器408通过运行存储在存储器402的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器408和输入单元403对存储器402的访问。输入单元403可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,在一个具体的实施例中,输入单元403可包括触敏表面以及其他输入设备。触敏表面,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面上或在触敏表面附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器408,并能接收处理器408发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面。除了触敏表面,输入单元403还可以包括其他输入设备。具体地,其他输入设备可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。显示单元404可用于显示由用户输入的信息或提供给用户的信息以及终端的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元404可包括显示面板,可选的,可以采用液晶显示器(LCD,LiquidCrystalDisplay)、有机发光二极管(OLED,OrganicLight-EmittingDiode)等形式来配置显示面板。进一步的,触敏表面可覆盖显示面板,当触敏表面检测到在其上或附近的触摸操作后,传送给处理器408以确定触摸事件的类型,随后处理器408根据触摸事件的类型在显示面板上提供相应的视觉输出。虽然在图4中,触敏表面与显示面板是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面与显示面板集成而实现输入和输出功能。终端还可包括至少一种传感器405,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板的亮度,接近传感器可在终端移动到耳边时,关闭显示面板和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。音频电路406、扬声器,传声器可提供用户与终端之间的音频接口。音频电路406可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路406接收后转换为音频数据,再将音频数据输出处理器408处理后,经RF电路401以发送给比如另一终端,或者将音频数据输出至存储器402以便进一步处理。音频电路406还可能包括耳塞插孔,以提供外设耳机与终端的通信。WiFi属于短距离无线传输技术,终端通过WiFi模块407可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图4示出了WiFi模块407,但是可以理解的是,其并不属于终端的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。处理器408是终端的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行终端的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器408可包括一个或多个处理核心;优选的,处理器408可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器408中。终端还包括给各个部件供电的电源409(比如电池),优选的,电源可以通过电源管理系统与处理器408逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源409还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。尽管未示出,终端还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,终端中的处理器408会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器408来运行存储在存储器402中的应用程序,从而实现各种功能:接收用户进程的启动请求,该启动请求中携带需要启动的用户进程的标识;根据该标识创建用户进程,并对该用户进程进行追踪,得到追踪信息;当追踪信息指示该用户进程在进行系统调用时,获取系统调用信息;基于该系统调用信息对该用户进程的系统调用操作进行监控。例如,可以通过设置一追踪进程(或称为拦截进程)来执行该系统调用的监控操作方法的相关操作,即处理器408可以执行如下操作:接收系统调用的监控请求,根据该监控请求启动跟踪进程。这样,后续便可以通过该追踪进程接收用户进程的启动请求,以及通过该追踪进程来实现对用户进程的追踪,比如,可以将跟踪进程附加(attach)至孵化进程,然后,通过该孵化进程创建子进程(该子进程继承该孵化进程的内容),并根据该标识对该子进程中的预设参数进行修改,得到用户进程,与此同时,还可以在该跟踪进程中设置相应的用于指示对用户进程进行追踪的标识,比如PTRACE_O_TRACEFORK,使得追踪进程可以自动附加至该用户进程上,然后,在用户进程调用syscall时,通过追踪进程接收内核空间发送的携带系统调用信息的信号,这样,追踪进程便可以基于该系统调用信息对该用户进程的系统调用操作进行监控,其中,监控的方式具体可以如下:读取系统调用函数的调用号,根据该调用号确定需要对该函数的调用进行控制时,对该系统调用信息进行分析,得到分析结果根据该分析结果对该用户进程的系统调用操作进行控制,比如,若根据该分析结果确定该用户进程具有调用该函数的权限,则允许该用户进程调用该函数,反之,若根据该分析结果确定该用户进程不具有调用该函数的权限,则阻止该用户进程调用该函数,等等。以上各个操作的具体实施可参见前面的实施例,在此不再赘述。由上可知,本实施例的终端在接收到用户进程的启动请求时,可以根据该启动请求中携带的需要启动的用户进程的标识创建用户进程,并对该用户进程进行追踪,然后,当追踪信息指示该用户进程在进行系统调用时,获取系统调用信息,并基于该系统调用信息对该用户进程的系统调用操作进行监控;由于该方案的大部分逻辑都在用户空间完成,而无需对内核空间的数据进行修改,因此,实现较为简单;而且,由于该方案无需基于系统漏洞,所以,相对于现有的方案而言,适配性、稳定性和兼容性也得到大大地提高。本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,ReadOnlyMemory)、随机存取记忆体(RAM,RandomAccessMemory)、磁盘或光盘等。以上对本发明实施例所提供的一种系统调用的监控方法和装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1