[发明专利]一种状态跟踪方法及系统有效
申请号: | 201210559987.1 | 申请日: | 2012-12-20 |
公开(公告)号: | CN103036895A | 公开(公告)日: | 2013-04-10 |
发明(设计)人: | 潘剑锋;王宇 | 申请(专利权)人: | 北京奇虎科技有限公司;奇智软件(北京)有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06 |
代理公司: | 北京国昊天诚知识产权代理有限公司 11315 | 代理人: | 许志勇 |
地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 状态 跟踪 方法 系统 | ||
技术领域
本发明涉及操作系统中运用远程过程调用协议领域,具体地说,涉及一种状态跟踪方法及系统。
背景技术
主动防御是基于程序行为自主分析判断的实时防护技术,不以特征码作为判断恶意程序的依据,而是从最原始的定义出发,直接将程序的行为作为判断恶意程序的依据,其中衍生出在本地使用特征库、在本地设置行为阈值以及在本地启发式杀毒的方式来判别、拦截恶意程序的行为,从而一定程度上达到保护用户个人电脑或计算机的目的。
现有的主动防御系统包括:
1、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拦截需要识别发起请求的目的,即请求的是什么接口(含GUID(Global unique identifier,全局唯一标识符)标识)、什么函数、什么参数等内容。Windows操作系统下RPC的载体有很多,例如本地过程调用(LPC)、命名管道(NamedPipe)、TCP/IP网络等。在本机系统(不跨网络时)上最常见的是LPC与NamedPipe。客户向服务器发起RPC请求首先会先对接口进行绑定(binding),随后才能发出请求(Request)调用指定的程序(Procedure)(通过指明ProcNum或API number)。现有的RPC拦截都是针对请求(Request)阶段的,即只能获得ProcNum和参数,并不能获得GUID标识(这时仅能获得由binding时的数字标识),这样就难以获得完整的请求信息。
现有技术中,针对RPC拦截(状态跟踪)仅仅知道ProcNum和参数,然后根据一些条件(如port名称、栈回朔参数等内容)去猜测来判断客户端发送的是否为恶意的请求程序是不准确的。
RPC采用客户端/服务器模式,实际上请求程序就是一个客户端,而服务提供程序就是一个服务器。
首先,客户端调用进程发送一个有进程参数的调用信息到服务进程,然后等待答复信息。在服务器端,服务进程保持睡眠状态直到调用信息的到达为止。当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息,最后,客户端调用进程接收答复信息,获得进程结果,然后调用信息继续进行。
所以当客户端为一恶意的请求程序,调用服务器完成恶意操作时,拦截程序(状态跟踪程序)在调用阶段介入拦截,拦截获得调用参数,但是现有技术中并不知道调用过程中所使用的调用指令的含义,所以也无从知晓这个调用指令是要执行什么操作,也就不能判断出操作是否为恶意。
现在技术中,可以根据拦截程序在调用阶段介入拦截到的一些其它信息,去猜测调用指令的含义,当调用指令仅涉及少量函数功能时,这种猜测是具备一定操作基础的。但是往往一个调用指令中会涉及很多个功能,此时根据一个调用指令无法准备获知客户端具体要调用服务器完成什么操作。
综上所述,如何准确地获取客户端与服务器之间进行RPC调用时,调用的接口和函数号的准确含义,从而就可以判定客户端发送的是否为恶意的请求程序,这样就能够进行防御操作,所以上述问题便成为亟待解决的技术问题。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决或者减缓上述问题的一种状态跟踪方法及系统。
根据本发明的一个方面,提供了一种状态跟踪方法,用于远程过程调用协议,其包括:
拦截客户端进程与服务端进程之间相互绑定时交换的数据包,从所述数据包中获取并保存两个进程相互约定的调用规则;
当监测到客户端进程运用远程过程调用协议,请求服务端进程提供服务的数据包时或响应另一进程的数据包时,解析该数据包并获取该数据包里面含有的调用指令;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司;奇智软件(北京)有限公司,未经北京奇虎科技有限公司;奇智软件(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210559987.1/2.html,转载请声明来源钻瓜专利网。