一种状态跟踪方法及系统技术方案

技术编号:8565251 阅读:298 留言:0更新日期:2013-04-11 07:34
本发明专利技术公开了状态跟踪方法及系统,其中,该系统包括拦截模块、监测模块和判断模块;其中,所述拦截模块还用于:拦截客户端进程与服务端进程之间相互绑定时交换的请求和响应的数据包,从所述数据包中获取并保存两个进程相互约定的调用规则,其中所述调用规则包括:接口及所配置的接口的代号的对应关系,和/或,所述接口中包括的各应用程序编码接口及所配置的接口标识的对应关系。本发明专利技术解决了在现有客户端与服务器之间进行RPC调用时,获取调用的接口和函数号的准确含义。

【技术实现步骤摘要】

本专利技术涉及操作系统中运用远程过程调用协议领域,具体地说,涉及一种状态跟踪方法及系统
技术介绍
主动防御是基于程序行为自主分析判断的实时防护技术,不以特征码作为判断恶意程序的依据,而是从最原始的定义出发,直接将程序的行为作为判断恶意程序的依据,其中衍生出在本地使用特征库、在本地设置行为阈值以及在本地启发式杀毒的方式来判别、拦截恶意程序的行为,从而一定程度上达到保护用户个人电脑或计算机的目的。现有的主动防御系统包括 l、HIPS(Host_based Intrusion Prevention System,基于主机的入侵防御系统)、沙箱等防御型产品需要对危险操作进行拦截,但是windows操作系统十分灵活,有多种进程间通信(IPC, Inter-Process Communication)机制,一旦恶意代码通过IPC利用系统进程来进行危险操作,那么对这种操作就难以拦截,需要改,而拦截恶意代码是通过IPC向系统服务发出的恶意请求。尤其是RPC (Remote Procedure Call Protocol,远程过程调用协议)方式就是最难以拦截的IPC机制之一。RPC是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。2、Windows操作系统下对RPC拦截需要识别发起请求的目的,即请求的是什么接口(含⑶ID (Global unique identifier,全局唯一标识符)标识)、什么函数、什么参数等内容。Windows操作系统下RPC的载体有很多,例如本地过程调用(LPC)、命名管道(NamedPipe)、TCP/IP网络等。在本机系统(不跨网络时)上最常见的是LPC与NamedPipe。客户向服务器发起RPC请求首先会先对接口进行绑定(binding),随后才能发出请求(Request)调用指定的程序(Procedure)(通过指明ProcNum或API number)。现有的RPC拦截都是针对请求(Request)阶段的,即只能获得ProcNum和参数,并不能获得⑶ID标识(这时仅能获得由binding时的数字标识),这样就难以获得完整的请求信息。现有技术中,针对RPC拦截(状态跟踪)仅仅知道ProcNum和参数,然后根据一些条件(如port名称、栈回朔参数等内容)去猜测来判断客户端发送的是否为恶意的请求程序是不准确的。RPC采用客户端/服务器模式,实际上请求程序就是一个客户端,而服务提供程序就是一个服务器。首先,客户端调用进程发送一个有进程参数的调用信息到服务进程,然后等待答复信息。在服务器端,服务进程保持睡眠状态直到调用信息的到达为止。当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息,最后,客户端调用进程接收答复信息,获得进程结果,然后调用信息继续进行。所以当客户端为一恶意的请求程序,调用服务器完成恶意操作时,拦截程序(状态跟踪程序)在调用阶段介入拦截,拦截获得调用参数,但是现有技术中并不知道调用过程中所使用的调用指令的含义,所以也无从知晓这个调用指令是要执行什么操作,也就不能判断出操作是否为恶意。现在技术中,可以根据拦截程序在调用阶段介入拦截到的一些其它信息,去猜测调用指令的含义,当调用指令仅涉及少量函数功能时,这种猜测是具备一定操作基础的。但是往往一个调用指令中会涉及很多个功能,此时根据一个调用指令无法准备获知客户端具体要调用服务器完成什么操作。综上所述,如何准确地获取客户端与服务器之间进行RPC调用时,调用的接口和函数号的准确含义,从而就可以判定客户端发送的是否为恶意的请求程序,这样就能够进行防御操作,所以上述问题便成为亟待解决的技术问题。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决或者减缓上述问题的一种状态跟踪方法及系统。根据本专利技术的一个方面,提供了一种状态跟踪方法,用于远程过程调用协议,其包括拦截客户端进程与服务端进程之间相互绑定时交换的数据包,从所述数据包中获取并保存两个进程相互约定的调用规则;当监测到客户端进程运用远程过程调用协议,请求服务端进程提供服务的数据包时或响应另一进程的数据包时,解析该数据包并获取该数据包里面含有的调用指令;根据所述调用规则判断该调用指令所完成的业务行为;其中,拦截客户端进程与服务端进程之间相互绑定时交换的数据包,从所述数据包中获取并保存两个进程相互约定的调用规则,还包括拦截客户端进程与服务端进程之间相互绑定时交换的请求和响应的数据包,从所述数据包中获取并保存两个进程相互约定的调用规则,其中所述调用规则包括接口及所配置的接口的代号的对应关系和/或,所述接口中包括的各应用程序编码接口及所配置的接口标识的对应关系。进一步地,其中,根据所述调用规则判断该调用指令所完成的业务行为,还包括根据所述调用规则判断该调用指令所完成的业务行为,通过判断所述业务行为是否为恶意来判定所述客户端进程是否为恶意;如判定所述业务行为为正常,继续监测下一请求或响应的数据包;如判定所述业务行为为恶意,则进而判定所述客户端进程为恶意,拦截该数据包。进一步地,其中,当监测到客户端进程运用远程过程调用协议,请求服务端进程提供服务的数据包时或响应另一进程的数据包时,解析该数据包并获取该数据包里面含有的调用指令,还包括当监测到客户端进程运用远程过程调用协议,请求服务端进程提供服务的数据包时或响应另一进程的数据包时,解析该数据包并获取该数据包里面含有的调用指令;其中,所述数据包为本地过程调用的请求报文,所述调用指令携带接口的代号和/或接口标识。进一步地,其中,根据所述调用规则判断该调用指令所完成的业务行为,还包括根据所述调用规则,对该调用指令中携带的接口的代号和/或接口标识进行判断,从而识别出所述客户端所调用的接口和函数。进一步地,其中,所述数据包为采用本地过程调用、命名管道、UDP协议网络消息或TCP/IP网络消息的数据包。进一步地,其中,所述调用规则,包括所述调用指令与业务行为的对应关系;所述调用指令,包括服务器根据客户端的请求所配置的接口的代号、以及服务器为接口中包含的应用程序编码接口配置的接口标识;所述业务行为,包括客户端请求的接口、以及客户端请求的接口中包含的应用程序编码接口。进一步地,其中,所述接口的代号为通过表达上下文字段PresentationContext来表示;所述接口标识为通过函数号ProcNum来表示。根据本专利技术的一个方面,还提供了一种状态跟踪系统,用于远程过程调用协议,其包括拦截模块、监测模块和判断模块;其中,所述拦截模块,用于拦截客户端进程与服务端进程之间相互绑定时交换的数据包,从所述数据包中获取并保存两个进程相互约定的调用规则;所述监测模块,用于当监测到客户端进程运用远程过程调用协议,请求服务端进程提供服务的数据包时或响应另一进程的数据包时,解析该数据包并获取该数据包里面含有的调用指令; 判断模块,用于根据所述调用规则判断该调用指令所完成的业务行为;其中,所述拦截模块还用本文档来自技高网
...

【技术保护点】
一种状态跟踪方法,用于远程过程调用协议,包括:拦截客户端进程与服务端进程之间相互绑定时交换的数据包,从所述数据包中获取并保存两个进程相互约定的调用规则;当监测到客户端进程运用远程过程调用协议,请求服务端进程提供服务的数据包时或响应另一进程的数据包时,解析该数据包并获取该数据包里面含有的调用指令;根据所述调用规则判断该调用指令所完成的业务行为;其中,拦截客户端进程与服务端进程之间相互绑定时交换的数据包,从所述数据包中获取并保存两个进程相互约定的调用规则,还包括:拦截客户端进程与服务端进程之间相互绑定时交换的请求和响应的数据包,从所述数据包中获取并保存两个进程相互约定的调用规则,其中所述调用规则包括:接口及所配置的接口的代号的对应关系,和/或,所述接口中包括的各应用程序编码接口及所配置的接口标识的对应关系。

【技术特征摘要】
1.一种状态跟踪方法,用于远程过程调用协议,包括 拦截客户端进程与服务端进程之间相互绑定时交换的数据包,从所述数据包中获取并保存两个进程相互约定的调用规则; 当监测到客户端进程运用远程过程调用协议,请求服务端进程提供服务的数据包时或响应另一进程的数据包时,解析该数据包并获取该数据包里面含有的调用指令; 根据所述调用规则判断该调用指令所完成的业务行为; 其中,拦截客户端进程与服务端进程之间相互绑定时交换的数据包,从所述数据包中获取并保存两个进程相互约定的调用规则,还包括 拦截客户端进程与服务端进程之间相互绑定时交换的请求和响应的数据包,从所述数据包中获取并保存两个进程相互约定的调用规则,其中所述调用规则包括接口及所配置的接口的代号的对应关系,和/或,所述接口中包括的各应用程序编码接口及所配置的接口标识的对应关系。2.如权利要求1所述的状态跟踪方法,其特征在于,根据所述调用规则判断该调用指令所完成的业务行为,还包括 根据所述调用规则判断该调用指令所完成的业务行为,通过判断所述业务行为是否为恶意来判定所述客户端进程是否为恶意; 如判定所述业务行为为正常,继续监测下一请求或响应的数据包;如判定所述业务行为为恶意,则进而判定所述客户端进程为恶意,拦截该数据包。3.如权利要求1或2所述的状态跟踪方法,其特征在于,当监测到客户端进程运用远程过程调用协议,请求服务端进程提供服务的数据包时或响应另一进程的数据包时,解析该数据包并获取该数据包里面含有的调用指令,还包括 当监测到客户端进程运用远程过程调用协议,请求服务端进程提供服务的数据包时或响应另一进程的数据包时,解析该数据包并获取该数据包里面含有的调用指令;其中,所述数据包为本地过程调用的请求报文,所述调用指令携带接口的代号和/或接口标识。4.如权利要求3所述的状态跟踪方法,其特征在于,根据所述调用规则判断该调用指令所完成的业务行为,还包括 根据所述调用规则,对该调用指令中携带的接口的代号和/或接口标识进行判断,从而识别出所述客户端所调用的接口和函数。5.如权利要求1至2中任一所述的状态跟踪方法,其特征在于,所述数据包为采用本地过程调用、命名管道、UDP协议网络消息或TCP/IP网络消息的数据包。6.如权利要求1所述的状态跟踪方法,其中, 所述调用规则,包括所述调用指令与业务行为的对应关系; 所述调用指令,包括服务器根据客户端的请求所配置的接口的代号、以及服务器为接口中包含的应用程序编码接口配置的接口标识; 所述业务行为,包括客户端请求的接口、以及客户端请求的接口中包含的应用程序编码接口。7.如权利要求1或2或6所述的状态跟踪方法,其中, 所述接口的代号为表达上...

【专利技术属性】
技术研发人员:潘剑锋王宇
申请(专利权)人:北京奇虎科技有限公司奇智软件北京有限公司
类型:发明
国别省市:

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

1