恶意远程过程调用行为的检测方法和装置的制作方法

文档序号:7804743阅读:121来源:国知局
专利名称:恶意远程过程调用行为的检测方法和装置的制作方法
技术领域
本发明涉及计算机网络技术领域,尤其涉及一种恶意远程过程调用(RPC,Remote Procedure Call)行为的检测方法及一种恶意RPC行为的检测装置。
背景技术
RPC协议提供了一种进程间的通信机制,通过这一机制,在一台计算机上运行的程序可以向网络中另一台计算机上的程序请求服务。RPC协议在应用时,采用客户机/服务器模式,请求服务的程序作为一个客户机,提供服务的程序作为一个服务器。为了区分同一个计算机提供的多个不同的基于RPC协议的服务(以下简称RPC服务),现有技术通过UUID来唯一地标识同一个服务器上的每个RPC服务。当服务器上的每个PRC服务启动时,会申请获得一个端口号在IOM 65525范围内的高位端口,并且根据该PRC服务的UUID对高位端口进行注册,即保存UUID和高位端口号之间的一一映射关系。 当客户机向服务器请求一项RPC服务时,需要与服务器上该PRC服务对应的高位端口建立连接,再通过该连接请求服务。具体地客户机需要首先通过预定查询端口,如135端口与服务器建立连接,依据待请求RPC服务的UUID向服务器查询该RPC服务对应的高位端口号,获得服务器返回的高位端口号后,关闭查询连接;然后,利用获得的待请求RPC服务对应的高位端口号,与服务器建立一个连接请求服务。由于服务器系统在设计上存在漏洞,客户机可以通过请求某些UUID对应的RPC服务来进行危险操作,例如在请求执行RPC服务时,通过发送格式或参数不正确的数据包来制造缓冲区溢出,从而获得对服务器的完全控制。为了解决该问题,现有技术提出,通过入侵防御系统(IPS,Intrusion PreventionSystem)对RPC调用过程进行检测,如果RPC调用过程所绑定的UUID对应的服务是危险的、存在漏洞、应被禁止调用的、或者所执行的操作是被禁止执行的,则阻断该调用过程。发明人在实现本发明过程中,发现现有技术至少存在以下缺陷当恶意客户机在RPC过程中绑定多个UUID,其中包含恶意RPC服务的UUID、或者企图执行的被禁止的操作时,现有IPS无法有效检测出其中的恶意RPC行为,产生较多漏报,从而无法确保服务器的安全。

发明内容
本发明实施例提供一种恶意RPC行为的检测方法,用以解决现有技术对恶意RPC 行为的检测效果不佳,漏报较多的问题。对应地,本发明实施例还提供了一种恶意RPC行为的检测装置。本发明实施例提供的技术方案如下一种恶意远程过程调用RPC行为的检测方法,包括在客户机向服务器查询RPC服务对应的高位端口时,记录该客户机请求的所有 RPC服务的UUID ;
在RPC过程中,对所述客户机与服务器之间会话连接中所传输的数据包进行解析,获得所述会话连接上承载的RPC流;根据所述记录的UUID和RPC流,获得与所述RPC过程相关的所有UUID ;判断获得的所有UUID中的每个UUID是否符合策略库中预定的控制策略,以此检测客户机是否执行了恶意RPC行为。一种恶意RPC行为的检测装置,包括记录模块,用于在客户机向服务器查询RPC服务对应的高位端口时,记录该客户机请求的所有RPC服务的UUID ;解析模块,用于在RPC过程中,对所述客户机与服务器之间会话连接中所传输的数据包进行解析,获得所述会话连接上承载的RPC流;获取模块,用于根据记录模块记录的UUID和解析模块获得的RPC流,获得与所述 RPC过程相关的所有UUID ;检测模块,用于判断获取模块获得的所有UUID中的每个UUID是否符合策略库中预定的控制策略,以此检测客户机是否执行了恶意RPC行为。本发明实施例通过对交互数据包的解析,获得客户机在RPC过程中绑定的所有 UUID,并根据策略库中的策略对其中每个UUID的合法性进行检测,以此检测客户机是否执行了恶意RPC行为。避免客户机通过绑定多个UUID逃避防护设备检测,提高了防护设备检测恶意RPC行为的有效性,从而加强了所保护的RPC服务器的安全性。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例的主要实现原理流程图;图2为本发明实施例提供的网络部署结构的示意图;图3为本发明实施例提供的恶意RPC行为的检测方法的详细流程图;图4为本发明实施例中服务器通过RPC流向客户机提供RPC服务的示意图;图5为本发明实施例提供的恶意RPC行为的检测装置的结构示意图;图6为本发明实施例提供的恶意RPC行为的检测装置的另一种结构示意图。
具体实施例方式发明人对现有IPS在RPC过程中绑定多个UUID时,无法有效检测出其中的恶意 RPC服务调用行为的情况进行深入分析,发现其原因是鉴于RPC调用过程是需要以UUID、 以及该UUID注册时对应的端口号为参数,建立连接从而提供服务的,因此现有IPS的设计前提是在一次RPC调用过程中,即传输RPC内容的一个TCP会话连接中,只绑定了一个 UUID,只要IPS对其中携带的第一个UUID进行检测就能够实现防护恶意RPC调用的目的。但是,恶意客户机可以通过在一次RPC调用中绑定多个UUID的方式来逃避检测, 只要其中的第一个UUID对应的RPC服务是被允许的,IPS就认定此次RPC调用是非恶意的。恶意客户机可以通过多种方式实现在一次RPC调用中绑定多个UUID的目的,例如利用RPC 的Alter Context选项实现在一个TCP会话连接中调用多个UUID分别对应的RPC服务,或者在一个TCP会话连接中携带多个UUID、但其中第一个UUID对应的是服务器不支持服务的方式来逃避检测。在上述分析的基础上,针对在一次RPC调用过程中,通过绑定多个UUID来逃避检测的情况,发明人提供了一种恶意RPC调用行为的检测方法。下面结合各个附图对本发明实施例技术方案的主要实现原理具体实施方式
及其对应能够达到的有益效果进行详细的阐述。如图1所示,本发明实施例的主要实现原理流程如下步骤10,在客户机向服务器查询RPC服务对应的高位端口时,记录该客户机请求的所有RPC服务的UUID。可选地,由于客户机的地址或端口通常是固定的,部署于客户机和服务器之间的防护设备可以通过监控服务器上预定查询端口,如135端口的流量,获得每个客户机请求的所有RPC服务的UUID。所述防护设备包括但不限于IPS和防火墙。步骤20,在RPC过程中,对所述客户机与服务器之间会话连接中所传输的数据包进行解析,获得所述会话连接上承载的RPC流。其中,TCP会话连接中的每个TCP数据包的载荷部分可以承载会话层、应用层等上层协议的数据,通过对TCP会话连接中的每个TCP数据包的载荷部分进行协议解析,可以获得客户机和服务器一次会话连接交互的数据包所承载的RPC流。由于防护设备事先无法获悉RPC服务将使用哪个端口,因而通常防护设备允许所有高位端口的数据包通过,因此为了确保安全防护设备需要监控服务器上所有高位端口的会话连接。步骤30,根据所述记录的UUID和RPC流,获得与所述RPC过程相关的所布UUID。本实施例提供的方案防护设备通过解析RPC流,得到该RPC流中所绑定的所有 UUID,而不是如现有技术一样,解析到第一个UUID就停止解析。步骤40,通过查询策略库,判断获得的与所述RPC过程相关的每个UUID是否符合策略库中预定的控制策略,以此检测客户机是否执行了恶意RPC行为。具体地,策略库和查询要求可以根据IPS或防火墙等防护设备所处网络环境的不同安全等级的要求来设置,例如对于对安全要求较高的网络环境,可以在策略库中配置正常控制策略,所述正常控制策略包含正常的RPC过程相关的UUID,若判断与所述客户机RPC 过程相关的至少一个UUID不符合所述正常控制策略,则确定所述客户机执行了恶意RPC行为;对于对安全要求较低的网络环境,可以在策略库中配置异常控制策略,所述异常控制策略包括恶意RPC行为相关的UUID,若判断所述客户机RPC过程相关的至少一个UUID符合所述异常控制策略,则确定所述客户机执行了恶意RPC行为,只要每个UUID都不符合所述异常控制策略,均认为所述客户机执行的是正常RPC行为。可选地,在检测出客户机执行了恶意RPC行为后,还包括阻断所述TCP会话连接中恶意RPC行为对应的数据包,当然也可以阻断所述TCP会话连接。本发明实施例提供的恶意RPC行为的检测方法,通过对TCP会话连接中数据包载荷内容的解析,获得客户机在RPC过程中绑定的所有UUID,并根据策略库中的策略对其中每个UUID的合法性进行检测,以此检测客户机是否执行了恶意RPC行为。消除了客户机通过绑定多个UUID逃避防护设备检测的可能性,提高了防护设备检测恶意RPC行为的有效性,从而加强了所保护的RPC服务器的安全性。下面将依据本发明上述发明原理,详细介绍一个实施例来对本发明方法的主要实现原理进行详细的阐述和说明。附图2为本发明实施例提供的网络部署结构的示意图。防护设备部署于客户机和服务器之间,客户机和服务器之间交互的数据包需要经过防护设备的检测才能发给对方。 附图2中按照时间的先后顺序给出了几个数据包转发过程的示例。防护设备包括但不限于 IPS、防火墙等。当然客户机和服务器可以为多个,为了简明起见,在图2和图3中仅以一个客户机和一个服务器为例进行说明。附图3为本发明实施例提供的恶意RPC行为的检测方法的详细流程图。步骤301,防护设备通过监控服务器预定查询端口(如135端口 )的流量,获得客户机ClientA的端口查询请求。可选地,客户机向服务器查询RPC服务的UUID对应的高位端口号时,发送的端口查询请求中的locket Flag字段被设置为0x03。防护设备可以根据包括locket Flag字段在内的特征字段,识别出查询请求。若locket Flag字段的内容不是0x03,则表示数据包载荷中携带的是分片数据 (有时候查询的UUID较多,无法携带在同一个数据包中),防护设备对客户机发送的分片数据拼接重组,从而拼接出完整的查询请求。步骤302,防护设备对客户机ClientA的端口查询请求进行协议解析,获得该客户机请求的所有RPC服务的UUID并记录。可选地,防护设备可以采用记录表、单向链表、树等形式来存储客户机请求的 UUID。采用记录表方式存储时,如表1所示。表 1
客户机标识UUIDClientAUUID2UUID75UUID105UUID121ClientBUUID2UUID35UUID80 可选地,由于服务器并非支持客户机请求的所有UUID对应的RPC服务,即使客户机向服务器请求不支持的RPC服务,服务器也不会提供这些服务,因此为了减轻防护设备
8后续的流量监控负担,可以对表1进行删减,执行步骤303。步骤303,防护设备对服务器返回的端口查询响应进行协议解析,获得服务器是否支持客户端所请求的UUID的信息,并所述记录中删除服务器不支持的RPC服务的UUID。服务器若支持客户机发送的查询请求中携带的UUID对应的服务,则在查询响应中返回对应的高位端口号,否则返回拒绝信息,如Providerrejection(0x02)。防护设备若能够从查询响应中获取UUID对应的高位端口号,则说明服务器支持UUID所标识的RPC服务,否则说明服务器不支持UUID所标识的RPC服务。在本实施例中服务器不支持UUID121、UUID80对应的RPC服务,表2为对表1删减后的结果。表 权利要求
1.一种恶意远程过程调用RPC行为的检测方法,其特征在于,包括在客户机向服务器查询RPC服务对应的高位端口时,记录该客户机请求的所有RPC服务的UUID ;在RPC过程中,对所述客户机与服务器之间会话连接中所传输的数据包进行解析,获得所述会话连接上承载的RPC流;根据所述记录的UUID和RPC流,获得与所述RPC过程相关的所有UUID ;判断获得的所有UUID中的每个UUID是否符合策略库中预定的控制策略,以此检测客户机是否执行了恶意RPC行为。
2.如权利要求1所述的方法,其特征在于,所述获得所述数据包上承载的RPC流之前, 还包括根据记录所述UUID时的先后顺序,得到记录的每个UUID对应的顺序号,并保存UUID 和顺序号的对应关系;所述根据所述记录的UUID和RPC流,获得与所述RPC过程相关的所有UUID,包括从所述RPC流中解析出携带的每个RPC服务的顺序号;对于每个解析出的顺序号,在所述对应关系中查找对应的UUID,从而获得与所述RPC 过程相关的所有UUID。
3.如权利要求1所述的方法,其特征在于,所述判断获得的所有UUID中的每个UUID是否符合策略库中预定的控制策略,包括对获得的与所述RPC过程相关的所有UUID进行筛选,去除其中所述服务器不支持的 RPC服务的UUID ;通过查询策略库,判断筛选保留的每个UUID是否符合预定的控制策略。
4.如权利要求1至3中任一所述的方法,其特征在于,所述策略库中包括正常控制策略或异常控制策略,所述正常控制策略包含正常的RPC行为相关的UUID、所述异常控制策略包括恶意RPC行为相关的UUID ;所述判断各UUID是否符合策略库中预定的控制策略,以此检测客户机是否执行了恶意RPC行为,包括判断各UUID是否符合策略库中的正常控制策略,若不符合所述正常控制策略,则确定所述客户机执行了恶意RPC行为;或/和判断各UUID是否符合策略库中的异常控制策略,若符合所述恶意控制策略,则确定所述客户机执行了恶意RPC行为。
5.如权利要求2所述的方法,其特征在于,所述根据所述记录的UUID和RPC流,获得与所述RPC行为相关的所有UUID后,还包括从所述RPC流中解析出携带的每个RPC服务的顺序号和操作符的组合;对于每个所述组合,根据其中的顺序号在所述对应关系中查找对应的UUID,从而获得与所述RPC过程相关的所有UUID与操作符的组合。
6.如权利要求5所述的方法,其特征在于,所述通过查询策略库,确定各UUID是否符合预定的控制策略,包括对获得的每个UUID、以及每个UUID与操作符的组合进行筛选,去除其中所述服务器不支持的RPC服务的UUID、和不支持的RPC服务的UUID与操作符的组合;通过查询策略库,判断筛选保留的每个UUID、每个UUID与操作符的组合是否符合预定的控制策略。
7.如权利要求1、2、3、5或6任一所述的方法,其特征在于,所述检测客户机执行了恶意 RPC行为之后,还包括阻断所述恶意RPC行为对应的数据包。
8.一种恶意RPC行为的检测装置,其特征在于,包括记录模块,用于在客户机向服务器查询RPC服务对应的高位端口时,记录该客户机请求的所有RPC服务的UUID ;解析模块,用于在RPC过程中,对所述客户机与服务器之间会话连接中所传输的数据包进行解析,获得所述会话连接上承载的RPC流;获取模块,用于根据记录模块记录的UUID和解析模块获得的RPC流,获得与所述RPC 过程相关的所有UUID ;检测模块,用于判断获取模块获得的所有UUID中的每个UUID是否符合策略库中预定的控制策略,以此检测客户机是否执行了恶意RPC行为。
9.如权利要求8所述的装置,其特征在于,还包括存储模块,用于根据记录模块记录所述UUID时的先后顺序,得到记录的每个UUID对应的顺序号,并保存UUID和顺序号的对应关系; 所述获取模块包括解析单元,用于从所述RPC流中解析出携带的每个RPC服务的顺序号; 获得单元,用于对于每个解析出的顺序号,在存储单元保存的所述对应关系中查找对应的UUID,从而获得与所述RPC过程相关的所有UUID。
10.如权利要求8或9所述的装置,其特征在于,所述检测模块包括筛选单元,用于对获取模块获得的与所述RPC过程相关的所有UUID进行筛选,去除其中所述服务器不支持的RPC服务的UUID ;检测单元,用于通过查询策略库,判断筛选单元筛选保留的每个UUID是否符合预定的控制策略。
11.如权利要求9所述的装置,其特征在于,所述解析单元,还用于从所述RPC流中解析出携带的每个RPC服务的顺序号和操作符的组合;所述获得单元,还用于对于所述解析单元解析出的每个顺序号和操作符的组合,根据其中的顺序号在所述对应关系中查找对应的UUID,从而获得与所述RPC过程相关的所有 UUID与操作符的组合。
12.如权利要求11所述的装置,其特征在于,所述筛选单元,还用于对所述获得模块获得的每个UUID与操作符的组合进行筛选,去除其中所述服务器不支持的RPC服务的UUID与操作符的组合;所述检测单元,还用于通过查询策略库,判断所述筛选单元筛选保留的每个UUID与操作符的组合是否符合预定的控制策略。
13.如权利要求8至12任一所述的装置,其特征在于,还包括阻断模块,用于在检测模块确定所述客户机执行了恶意RPC行为之后,阻断所述恶意RPC行为对应的数据包。
全文摘要
本发明公开了一种恶意远程过程调用行为的检测方法和装置,用以解决现有技术对恶意RPC行为的检测效果不佳,漏报较多的问题。该方法包括在客户机向服务器查询RPC服务对应的高位端口时,记录该客户机请求的所有RPC服务的UUID;在RPC过程中,对所述客户机与服务器之间会话连接中所传输的数据包进行解析,获得所述会话连接上承载的RPC流;根据所述记录的UUID和RPC流,获得与所述RPC过程相关的所有UUID;判断获得的所有UUID中的每个UUID是否符合策略库中预定的控制策略,以此检测客户机是否执行了恶意RPC行为。提高了防护设备检测恶意RPC行为的有效性,加强了所保护的RPC服务器的安全性。
文档编号H04L12/26GK102438023SQ201110449688
公开日2012年5月2日 申请日期2011年12月29日 优先权日2011年12月29日
发明者周莹莹, 蒋武 申请人:成都市华为赛门铁克科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1