CN114466053B - 远程过程调用的调用管控方法、装置、设备及存储介质 - Google Patents
远程过程调用的调用管控方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114466053B CN114466053B CN202210375390.5A CN202210375390A CN114466053B CN 114466053 B CN114466053 B CN 114466053B CN 202210375390 A CN202210375390 A CN 202210375390A CN 114466053 B CN114466053 B CN 114466053B
- Authority
- CN
- China
- Prior art keywords
- call
- information
- service
- remote procedure
- calling
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0236—Filtering by address, protocol, port number or service, e.g. IP-address or URL
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/101—Access control lists [ACL]
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请实施例公开了一种远程过程调用的调用管控方法、装置、设备及存储介质,相关实施例可应用于云安全等各种场景,用于维护远程过程调用的安全调用。本申请实施例方法包括:通过过滤模块对远程过程调用组件进行安全检测,当检测到远程过程调用组件接收到信息调用请求时,收集远程过程调用组件所对应的调用信息,根据调用信息中的传输协议确定信息调用请求所对应的远程客户端通信地址,若远程客户端通信地址为客户端的非本地地址,则将调用信息确定为异常调用信息,若异常调用信息中的服务接口以及服务接口方法中的任一项属于服务黑名单中的敏感服务接口或敏感服务接口方法,则将信息调用请求确定为危险调用请求,对危险调用请求进行拦截。
Description
技术领域
本申请实施例涉及云安全管理技术领域,尤其涉及一种远程过程调用的调用管控方法、装置、设备及存储介质。
背景技术
随着信息技术的不断发展,恶意程序传播和使用的攻击技术也在不断升级,可以通过利用远程过程调用(Remote Procedure Call,RPC)使服务系统中已经存在的RPC组件进行恶意行为释放,使得恶意程序可盗用个人信息,或者恶意程序可通过删除服务进行删除杀毒应用程序,导致使用服务系统的对象的个人隐私信息可遭泄露,并可导致服务系统崩溃,造成使用服务系统的对象的财产损失的情况。
为了避免或减少恶意程序通过RPC组件释放恶意行为,目前使用的对远程过程调用的拦截方法主要是通过配置过滤规则,然后对命中规则的远程调用进行拦截,即当查杀过程中,引擎会读取文件使用过滤规则进行匹配,如果发现文件程序代码被命中,就可以判定该文件程序为恶意程序,对恶意程序进行过滤。
但是,这种远程过程调用的拦截方法是使用预设的调用信息字段配置过滤规则的,难以全面覆盖所有的调用信息,容易遗漏或缺少关键调用信息,在判断命中规则的过程中容易产生误报或判断不准确的情况,导致恶意程序的判定不准确,从而导致拦截准确率降低。
发明内容
本申请实施例提供了一种远程过程调用的调用管控方法、装置、设备及存储介质,用于通过远程客户端通信地址来初步过滤安全调用请求和安全调用信息,然后,通过服务黑名单进一步过滤安全调用请求和安全调用信息,以锁定危险调用请求并进行拦截,从而提高拦截准确率,降低误报。
本申请实施例一方面提供了一种远程过程调用的调用管控方法,包括:
向远程过程调用服务进程注入过滤模块,以通过过滤模块对远程过程调用组件进行安全检测;
当检测到远程过程调用组件接收到信息调用请求时,收集远程过程调用组件所对应的调用信息,其中,调用信息至少包括传输协议、服务接口以及服务接口所对应的服务接口方法;
根据传输协议确定信息调用请求所对应的远程客户端通信地址;
若远程客户端通信地址为客户端的非本地地址,则将信息调用请求所对应的调用信息确定为异常调用信息;
若异常调用信息中的服务接口以及服务接口方法中的任一项属于服务黑名单中的敏感服务接口或敏感服务接口方法,则将信息调用请求确定为危险调用请求,并对危险调用请求进行拦截。
本申请另一方面提供了一种远程过程调用的调用管控装置,包括:
处理单元,用于向远程过程调用服务进程注入过滤模块,以通过过滤模块对远程过程调用组件进行安全检测;
获取单元,用于当检测到远程过程调用组件接收到信息调用请求时,收集远程过程调用组件所对应的调用信息,其中,调用信息至少包括传输协议、服务接口以及服务接口方法;
确定单元,用于根据传输协议确定信息调用请求所对应的远程客户端通信地址;
确定单元,还用于若远程客户端通信地址为客户端的非本地地址,则将信息调用请求所对应的调用信息确定为异常调用信息;
处理单元,还用于若异常调用信息中的服务接口以及服务接口方法中的任一项属于服务黑名单中的敏感服务接口或敏感服务接口方法,则将信息调用请求确定为危险调用请求,并对危险调用请求进行拦截。
在一种可能的设计中,本申请实施例另一方面的一种实现方式中,确定单元具体可以用于:
若传输协议为命名管道传输协议,则根据命名管道传输协议从信息调用请求的请求句柄中查询到远程过程调用组件的链接地址,并将链接地址作为远程客户端通信地址;
若传输协议为非命名管道传输协议,则将非命名管道传输协议上携带的客户端IP地址作为远程客户端通信地址。
在一种可能的设计中,本申请实施例另一方面的一种实现方式中,确定单元具体可以用于:
当远程客户端通信地址为链接地址时,将远程客户端通信地址与客户端的地址名称或本地IP地址进行对比;
若远程客户端通信地址与客户端的地址名称或本地IP地址中的任一项一致,则将调用信息确定为安全调用信息;
若远程客户端通信地址与客户端的地址名称以及本地IP地址均不一致,则将调用信息确定为异常调用信息。
在一种可能的设计中,本申请实施例另一方面的一种实现方式中,确定单元具体可以用于:
当远程客户端通信地址为客户端IP地址时,将远程客户端通信地址与客户端的本地IP地址进行对比;
若远程客户端通信地址与客户端的本地IP地址一致,则将调用信息确定为安全调用信息;
若远程客户端通信地址与客户端的本地IP地址不一致,则将调用信息确定为异常调用信息。
在一种可能的设计中,本申请实施例另一方面的一种实现方式中,处理单元具体可以用于:
扫描当前服务器进程,若当前服务器进程为远程过程调用服务进程,则向远程过程调用服务进程注入过滤模块;
根据过滤模块,对远程过程调用服务进程进行接管,以通过过滤模块对远程过程调用组件进行安全检测。
在一种可能的设计中,本申请实施例另一方面的一种实现方式中,处理单元具体可以用于:
获取远程过程调用服务进程所对应的原始过滤回调函数;
根据过滤模块中的目标过滤函数对原始过滤回调函数进行接管,以使得过滤模块对远程过程调用组件进行安全检测。
在一种可能的设计中,本申请实施例另一方面的一种实现方式中,处理单元具体可以用于:
当信息调用请求到达远程过程调用组件时,将信息调用请求传递至原始过滤回调函数;
从原始过滤回调函数的参数中获取传输协议;
当目标过滤函数接收到原始过滤回调函数传递的信息调用请求时,根据目标过滤函数收集服务接口以及服务接口方法。
在一种可能的设计中,本申请实施例另一方面的一种实现方式中,处理单元具体可以用于:
根据目标过滤函数获取服务接口以及服务接口所对应的服务接口方法编号;
根据服务接口方法编号与方法定义之间的映射关系,获取服务接口方法。
在一种可能的设计中,本申请实施例另一方面的一种实现方式中,处理单元具体可以用于:
获取当前服务器进程中的远程过程调用服务组件的加载状态;
若远程过程调用服务组件的加载状态为已加载,则将当前服务器进程作为远程过程调用服务进程,并向远程过程调用服务进程注入过滤模块。
在一种可能的设计中,本申请实施例另一方面的一种实现方式中,处理单元具体可以用于:
调用已加载的远程过程调用服务组件中的指向函数获取原始过滤回调函数;
根据过滤模块中的目标过滤函数对原始过滤回调函数进行接管,包括:
基于指向函数,将目标过滤函数挂钩至原始过滤回调函数。
在一种可能的设计中,本申请实施例另一方面的一种实现方式中,
处理单元,还用于加载替换扩展模块,以通过替换扩展模块对当前服务器进程中所对应的原始扩展模块进行接管,其中,替换扩展模块是通过对注册表中保存的文件名进行替换得到的;
处理单元具体可以用于:基于替换扩展模块,获取当前服务器进程中的远程过程调用服务组件的加载状态。
在一种可能的设计中,本申请实施例另一方面的一种实现方式中,处理单元具体可以用于:
获取远程过程调用服务进程所对应的安全检查函数;
将过滤模块中的目标过滤函数挂钩至安全检查函数所对应的调用路径上的任意位置,以使得过滤模块接管对远程过程调用组件的安全检测。
在一种可能的设计中,本申请实施例另一方面的一种实现方式中,
处理单元,还用于根据异常调用信息中的服务接口以及服务接口方法,在服务白名单中进行遍历;
处理单元,还用于若遍历到异常调用信息中的服务接口属于服务白名单中的安全服务接口,以及服务接口方法属于服务白名单中的安全服务接口方法,则将信息调用请求确定为安全调用请求,并对安全调用请求进行放行。
在一种可能的设计中,本申请实施例另一方面的一种实现方式中,
确定单元,还用于若异常调用信息中的服务接口以及服务接口方法不属于服务黑名单,且不属于服务白名单,则将信息调用请求作为待审核调用请求;
处理单元,还用于将待审核调用请求以及异常调用信息发送至第三方服务器进行调用审核;
处理单元,还用于接收第三方服务器返回的调用审核结果,并根据调用审核结果对待审核调用请求进行处理。
在一种可能的设计中,本申请实施例另一方面的一种实现方式中,处理单元具体可以用于:
若第三方服务器发送的调用审核结果为安全调用,则对待审核调用请求进行放行;
若第三方服务器发送的调用审核结果为危险调用,则对待审核调用请求进行拦截。
在一种可能的设计中,本申请实施例另一方面的一种实现方式中,
处理单元,还用于对远程过程调用服务进程中已注册的接口信息进行检测;
确定单元,还用于若在已注册的接口信息中未检测到远程过程调用服务接口信息,则确定远程过程调用服务进程不具备远程过程调用服务,并卸载过滤模块;
确定单元,还用于若在已注册的接口信息中检测到远程过程调用服务接口信息,则确定远程过程调用服务进程具备远程过程调用服务,以通过远程过程调用服务使用过滤模块对信息调用请求进行管控。
本申请另一方面提供了一种计算机设备,包括:存储器、处理器以及总线系统;
其中,存储器用于存储程序;
处理器用于执行存储器中的程序时实现如上述各方面的方法;
总线系统用于连接存储器以及处理器,以使存储器以及处理器进行通信。
本申请的另一方面提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面的方法。
从以上技术方案可以看出,本申请实施例具有以下有益效果:
通过当检测到远程过程调用组件接收到信息调用请求时,收集远程过程调用组件所对应的至少包括传输协议、服务接口以及服务接口方法的调用信息,可以根据传输协议确定信息调用请求所对应的远程客户端通信地址,当远程客户端通信地址为客户端的非本地地址时,将信息调用请求所对应的调用信息确定为异常调用信息,然后,当异常调用信息中的服务接口以及服务接口方法编号是服务黑名单中的敏感服务接口或敏感服务接口方法编号时,可以将信息调用请求的行为确定为危险调用请求,并对危险调用请求进行拦截。通过上述方式,通过信息调用请求所对应的传输协议,确定传输协议所对应的远程客户端通信地址,来准确区分信息调用请求是否来源于客户端本地地址发起的安全调用请求,能够对安全调用请求和安全调用信息进行初步过滤,然后,通过服务黑名单对非本地调用的异常调用信息中的服务接口与方法编号进行安全调用请求和安全调用信息的进一步地过滤,以锁定危险调用请求并进行拦截,从而提高拦截准确率,降低误报。
附图说明
图1是本申请实施例中远程过程调用控制系统的一个架构示意图;
图2是本申请实施例中远程过程调用的调用管控方法的一个实施例流程图;
图3是本申请实施例中远程过程调用的调用管控方法的另一个实施例流程图;
图4是本申请实施例中远程过程调用的调用管控方法的另一个实施例流程图;
图5是本申请实施例中远程过程调用的调用管控方法的另一个实施例流程图;
图6是本申请实施例中远程过程调用的调用管控方法的另一个实施例流程图;
图7是本申请实施例中远程过程调用的调用管控方法的另一个实施例流程图;
图8是本申请实施例中远程过程调用的调用管控方法的另一个实施例流程图;
图9是本申请实施例中远程过程调用的调用管控方法的另一个实施例流程图;
图10是本申请实施例中远程过程调用的调用管控方法的另一个实施例流程图;
图11是本申请实施例中远程过程调用的调用管控方法的另一个实施例流程图;
图12是本申请实施例中远程过程调用的调用管控方法的另一个实施例流程图;
图13是本申请实施例中远程过程调用的调用管控方法的另一个实施例流程图;
图14是本申请实施例中远程过程调用的调用管控方法的另一个实施例流程图;
图15是本申请实施例中远程过程调用的调用管控方法的另一个实施例流程图;
图16是本申请实施例中远程过程调用的调用管控方法的另一个实施例流程图;
图17是本申请实施例中远程过程调用的调用管控方法的一个原理流程示意图;
图18是本申请实施例中远程过程调用的调用管控方法的一个原理流程示意图检测远程过程调用的调用请求的原理流程示意图;
图19是本申请实施例中远程过程调用的调用管控装置的一个实施例示意图;
图20是本申请实施例中计算机设备的一个实施例示意图。
具体实施方式
本申请实施例提供了一种一种远程过程调用的调用管控方法、装置、设备及存储介质,用于通过远程客户端通信地址来初步过滤安全调用请求和安全调用信息,然后,通过服务黑名单进一步过滤安全调用请求和安全调用信息,以锁定危险调用请求并进行拦截,从而提高拦截准确率,降低误报。
本申请的说明书和权利要求书及附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“对应于”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了便于理解,先对本申请实施例涉及到的一些术语或概念进行解释。
1、远程过程调用RPC
远程过程调用RPC是指一类协议与框架,Windows RPC指的是Windows操作系统上实现的DCE或RPC协议的一系列系统组件。
2、Windows RPC
Windows RPC是Windows操作系统上实现的一项允许程序通过网络从远程计算机上请求服务的组件。服务端程序向本地主机操作系统上的Windows RPC组件注册服务接口,可以对远程主机提供远程调用服务。Windows RPC支持的底层传输协议包括本地过程调用ALPC、命名管道NamedPipe、TCP/IP协议等。在本地调用时最常见的是本地过程调用与命名管道,在远程调用时最常见的是TCP/IP协议以及命名管道传输协议。
3、横向渗透
横向渗透是指在已经恶意占有部分内网主机的前提下,以这部分内网主机为跳板,利用现有的资源尝试获取更多敏感信息与权限,进而达到控制整个网段、拥有最高权限的目的。内网渗透的起点往往只是一台通过漏洞攻陷的跳板主机,横向渗透就是通过这个突破口去不断扩大在本网段内的结果,也就是说恶意调用对象利用横向渗透手段可能会由点到面进行恶意占有,从而达到使内网沦陷的情形。
4、主动防御
主动防御是基于程序行为自主分析判断的实时防护技术,不以特征码作为判断恶意程序的依据,而是从最原始的定义出发,直接将程序的行为作为判断恶意程序的依据,其中衍生出在本地使用特征库、在本地设置行为阈值以及在本地启发式杀毒的方式来判别、拦截恶意程序的行为,从而一定程度上达到保护用户个人电脑或计算机的目的。
可以理解的是,在本申请的具体实施方式中,涉及到调用信息等相关的数据,当本申请以上实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
可以理解的是,如本申请所公开的远程过程调用的调用管控方法,具体涉及云技术(Cloud technology),下面进一步地对云技术进行介绍。云技术是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
而云计算(cloud computing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。
作为云计算的基础能力提供商,会建立云计算资源池(简称云平台,一般称为IaaS(Infrastructure as a Service,基础设施即服务)平台,在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。
按照逻辑功能划分,在IaaS(Infrastructure as a Service,基础设施即服务)层上可以部署PaaS(Platform as a Service,平台即服务)层,PaaS层之上再部署SaaS(Software as a Service,软件即服务)层,也可以直接将SaaS部署在IaaS上。PaaS为软件运行的平台,如数据库、web容器等。SaaS为各式各样的事务软件,如web门户网站、短信群发器等。一般来说,SaaS和PaaS相对于IaaS是上层。
其次,云安全(Cloud Security) 是指基于云计算商业模式应用的安全软件、硬件、用户、机构、安全云平台的总称。云安全融合了并行处理、网格计算、未知病毒行为判断等新兴技术和概念,通过网状的大量客户端对网络中软件行为的异常监测,获取互联网中木马、恶意程序的最新信息,并发送到服务端进行自动分析和处理,再把病毒和木马的解决方案分发到每一个客户端。
其次,云存储(cloud storage)是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储系统 (以下简称存储系统)是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和事务访问功能的一个存储系统。
目前,存储系统的存储方法为:创建逻辑卷,在创建逻辑卷时,就为每个逻辑卷分配物理存储空间,该物理存储空间可能是某个存储设备或者某几个存储设备的磁盘组成。客户端在某一逻辑卷上存储数据,也就是将数据存储在文件系统上,文件系统将数据分成许多部分,每一部分是一个对象,对象不仅包含数据而且还包含数据标识(ID,ID entity)等额外的信息,文件系统将每个对象分别写入该逻辑卷的物理存储空间,且文件系统会记录每个对象的存储位置信息,从而当客户端请求访问数据时,文件系统能够根据每个对象的存储位置信息让客户端对数据进行访问。
存储系统为逻辑卷分配物理存储空间的过程,具体为:按照对存储于逻辑卷的对象的容量估量(该估量往往相对于实际要存储的对象的容量有很大余量)和独立冗余磁盘阵列(RAID,Redundant Array of Independent Disk)的组别,预先将物理存储空间划分成分条,一个逻辑卷可以理解为一个分条,从而为逻辑卷分配了物理存储空间。
应理解,本申请提供的远程过程调用的调用管控方法可以应用于云安全、人工智能、智慧交通等领域,用于通过主动防御对远程过程调用的调用行为进行管控的等场景。作为示例,例如基于主机的入侵防御系统HIPS,通过安全客户端A向服务器A发送远程过程调用的调用消息,服务器A放行安全调用并回复调用信息。作为另一个示例,例如通过恶意客户端B向服务器B发送远程过程调用的调用消息,服务器B拦截危险调用。作为再一示例,例如通过未知客户端C向服务器C发送远程过程调用的调用消息,等待服务器C放行或拦截调用消息。在上述种种场景中,为了完成对远程过程调用的调用管控,通常是通过使用的对远程过程调用的拦截方法主要是通过配置过滤规则,然后对命中规则的远程调用进行拦截,但是,使用预设的调用信息字段配置过滤规则难以全面覆盖所有的调用信息,容易遗漏或缺少关键调用信息,容易产生误报或判断不准确的情况,从而导致拦截准确率降低。
可以理解的是,智慧交通领域中应用的智能交通系统(Intelligent TrafficSystem,ITS)又称智能运输系统(Intelligent Transportation System),是将先进的科学技术(信息技术、计算机技术、数据通信技术、传感器技术、电子控制技术、自动控制理论、运筹学、人工智能等)有效地综合运用于交通运输、服务控制和车辆制造,加强车辆、道路、使用者三者之间的联系,从而形成一种保障安全、提高效率、改善环境、节约能源的综合运输系统。
为了解决上述问题,本申请提出了一种远程过程调用的调用管控方法,该方法应用于图1所示的远程过程调用控制系统,请参阅图1,图1为本申请实施例中远程过程调用控制系统的一个架构示意图,如图1所示,通过当检测到远程过程调用组件接收到信息调用请求时,收集远程过程调用组件所对应的至少包括传输协议、服务接口以及服务接口方法的调用信息,可以根据传输协议确定信息调用请求所对应的远程客户端通信地址,当远程客户端通信地址为客户端的非本地地址时,将信息调用请求所对应的调用信息确定为异常调用信息,然后,当异常调用信息中的服务接口以及服务接口方法编号是服务黑名单中的敏感服务接口或敏感服务接口方法编号时,可以将信息调用请求的行为确定为危险调用请求,并对危险调用请求进行拦截。通过上述方式,通过信息调用请求所对应的传输协议,确定传输协议所对应的远程客户端通信地址,来准确区分信息调用请求是否来源于客户端本地地址发起的安全调用请求,能够对安全调用请求和安全调用信息进行初步过滤,然后,通过服务黑名单对非本地调用的异常调用信息中的服务接口与方法编号进行安全调用请求和安全调用信息的进一步地过滤,以锁定危险调用请求并进行拦截,从而提高拦截准确率,降低误报。
可以理解的是,图1中仅示出了一种终端设备,在实际场景中可以由更多种类的终端设备参与到数据处理的过程中,终端设备包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端等,具体数量和种类因实际场景而定,具体此处不做限定。另外,图1中示出了一个服务器,但在实际场景中,也可以有多个服务器的参与,特别是在多模型训练交互的场景中,服务器的数量因实际场景而定,具体此处不做限定。
需要注意的是,本实施例中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(contentdelivery network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端设备以及服务器可以通过有线或无线通信方式进行直接或间接地连接,终端设备以及服务器可以连接组成区块链网络,本申请在此不做限制。
下面将对本申请中远程过程调用的调用管控方法进行介绍,请参阅图2,本申请实施例中远程过程调用的调用管控方法一个实施例包括:
在步骤S101中,向远程过程调用服务进程注入过滤模块,以通过过滤模块对远程过程调用组件进行安全检测。
在本实施例中,为了能够更好地检测到远程过程调用组件的调用消息,以更准确地区分存在恶意调用行为的危险调用请求,本实施例通过接管系统内置过滤引擎WindowsFiltering Platform对远程过程调用RPC的过滤判断流程,使得过滤模块可以对远程过程调用组件进行安全检测,能够更好地监测客户端使用不同底层协议发起信息调用请求的调用动作,以避免监测整个网络流量导致的解析成本和加密成本高的情形,从而降低管控成本。
具体地,如图18所示,可以向远程过程调用服务进程注入过滤模块,然后,在注入过滤模块后过滤模块主动执行,接管原有过滤模块的功能,可以实现对远程过程调用RPC的的安全检测,从而可以该过滤模块实现对远程过程调用RPC的调用消息的管控。
在步骤S102中,当检测到远程过程调用组件接收到信息调用请求时,收集远程过程调用组件所对应的调用信息,其中,调用信息至少包括传输协议、服务接口以及服务接口所对应的服务接口方法;
在本实施例中,当检测到远程过程调用组件接收到信息调用请求或调用消息时,可以通过系统内置过滤引擎收集远程过程调用组件所对应的调用信息,以使后续可以通过对收集到的调用信息进行分析,以筛选出危险调用请求进行拦截,从而实现对恶意或危险调用行为的拦截,可以在一定程度上提高拦截的准确率,降低误报。
其中,远程过程调用RPC是指一类协议与框架,Windows RPC指的是Windows操作系统上实现的DCE或RPC协议的一系列系统组件,可以理解的是本实施例中使用的RPC均指Windows RPC。调用信息包括调用的传输协议、服务接口、服务接口中的方法函数以及调用参数等信息。其中,Windows RPC是Windows操作系统上实现的一项允许程序通过网络从远程计算机上请求服务的组件。服务端程序向本地主机操作系统上的Windows RPC组件注册服务接口,可以对远程主机提供远程调用服务。Windows RPC支持的底层传输协议包括本地过程调用ALPC、命名管道NamedPipe、TCP/IP协议等。在本地调用时最常见的是本地过程调用与命名管道传输协议,在远程调用时最常见的是TCP/IP协议以及命名管道传输协议。可以理解的是,一个服务接口可以对应有多个服务接口方法,即同一个服务接口可能包含危险方法与安全的方法。原始的服务接口方法具体可以表现为一个数值下标,需要结合服务接口进行分析。
具体地,由于远程过程调用RPC采用的是客户端与服务器模式,可以理解为,请求程序是一个客户端,服务提供程序是一个服务器,客户端可以调用过程远程调用RPC,可以通过发送一个有进程参数的信息调用请求到服务器进程,然后等待服务器返回的答复信息,同时,在服务器端,当信息调用请求到达服务器进程时,服务器进程可以根据进程参数,收集调用信息,计算进程结果,并向客户端发送答复信息,然后,等待下一个信息调用请求,最后,客户端调用进程接收到答复信息,获得进程结果,然后调用信息继续进行,因此,为了避免当客户端为一恶意的请求程序,调用服务器完成恶意操作,导致目标对象的隐私信息或财产受到损坏的情形,本实施例可以基于主机的入侵防御系统(Host based IntrusionPrevention System,HIPS)、沙箱等主动防御型产品对远程过程调用组件进行检测,如图17所示,在检测到信息调用请求到达服务器时,服务器进程会将信息调用请求传递给过滤引擎中的过滤回调函数FwFilter,即原始过滤回调函数,可以从原始过滤回调函数FwFilter的参数中获取到当前服务器进程所使用的传输协议,同时,原始过滤回调函数FwFilter会将接收到的信息调用请求传递给挂钩后的钩子函数NewFwFilter中,即目标过滤函数,然后,可以在钩子函数NewFwFilter中收集远程过程调用RPC的调用信息如服务接口以及该服务接口所对应的服务接口方法。
在步骤S103中,根据传输协议确定信息调用请求所对应的远程客户端通信地址;
在本实施例中,在获取到传输协议之后,由于在本地调用时最常见的是本地过程调用与命名管道传输协议,在远程调用时最常见的是TCP/IP协议以及命名管道传输协议,因此,可以根据传输协议查询或获取到信息调用请求所对应的远程客户端通信地址,以使后续通过远程客户端通信地址来准确区分信息调用请求的来源,进而可以根据信息调用请求的来源来初步过滤安全调用请求,以确定可能存在危险的信息调用请求进行管控,以减少误报,从而可以在一定程度上提高拦截效率。
其中,远程客户端通信地址具体可以表现为客户端IP地址(Internet ProtocolAddress,IP)或数据链路地址,此处不作具体限制,远程客户端通信地址可以来识别同一链路中不同的计算机,或者用来识别网络中互连的主机和路由器。
具体地,在获取到传输协议之后,可以根据传输协议确定信息调用请求所对应的远程客户端通信地址,假设传输协议为TCP/IP协议时,具体可以是先通过负责建立连接、发送数据以及断开连接客户端与服务器之间的TCP协议获取TCP首部,其中,TCP协议是提供将应用层发来的数据顺利发送至对端的可靠传输,TCP首部包括源端口号如请求发送方客户端的端口号,可以理解为客户端程序地址,还包括目标端口号如请求接收方服务器的端口号,可以理解为服务器程序地址。
进一步地,可以通过IP协议将TCP传过来的TCP首部和TCP数据合起来当做自己的数据,并在TCP首部的前端加上自己的IP首部,其中,IP首部包括源IP地址如请求发送方客户端的IP地址,还包括目标IP地址如请求接收方服务器的IP地址。然后,可以通过TCP首部和IP首部准确获取发起信息调用请求的远程客户端通信地址。
在步骤S104中,若远程客户端通信地址为客户端的非本地地址,则将信息调用请求所对应的调用信息确定为异常调用信息;
在本实施例中,在获取到远程客户端通信地址后,如果当远程客户端通信地址为客户端的非本地地址,即远程客户端通信地址不是客户端的本地地址时,可以理解为该信息请求调用属于远程调用,由于远程调用可能是安全调用也可能是危险调用,因此,可以先将该信息调用请求所对应的调用信息确定为是可能存在危险的异常调用信息。
其中,客户端的非本地地址即不是客户端的本地地址,可以理解的是,客户端的本地地址具体可以表现为本地计算机地址或本机IP地址,此处不作具体限制。
具体地,如图17所示,在获取到远程客户端通信地址后,可以将获取到的远程客户端通信地址与客户端的本地地址进行比对,来判断远程客户端通信地址是否为客户端的本地地址,例如,如果当程客户端通信地址是客户端的本地地址时,可以理解为该信息请求调用属于本地调用,本地调用属于安全调用,则可以先将该信息调用请求所对应的调用信息确定为安全调用信息,即不存在恶意调用行为,无需进行拦截,可以对安全调用请求进行初步筛选或过滤,可以在一定程度上提高拦截恶意调用行为的准确性。
进一步地,如图17所示,如果当远程客户端通信地址为客户端的非本地地址,即远程客户端通信地址不是客户端的本地地址时,可以理解为该信息请求调用属于远程调用,由于远程调用可能是安全调用也可能是危险调用,故可以将该信息调用请求所对应的调用信息确定为是可能存在危险的异常调用信息,以使后续可以对异常调用信息进行进一步分析,以更准确地确定该信息调用请求是否存在恶意调用行为,可以在一定程度上提高拦截恶意调用行为的准确性。
在步骤S105中,若异常调用信息中的服务接口以及服务接口方法中的任一项属于服务黑名单中的敏感服务接口或敏感服务接口方法,则将信息调用请求确定为危险调用请求,并对危险调用请求进行拦截。
在本实施例中,在确定异常调用信息之后,可以通过判断异常调用信息中的服务接口以及服务接口方法中的任一项是否属于服务黑名单中的敏感服务接口或敏感服务接口方法,如果异常调用信息中的服务接口以及服务接口方法中的任一项属于服务黑名单中的敏感服务接口或敏感服务接口方法,可以理解为该异常调用信息中的服务接口与服务黑名单中的服务接口相匹配,或服务接口方法与服务黑名单中的服务接口方法相匹配,即该调用信息存在敏感调用信息,则可以将该异常调用信息对应的信息调用请求确定为危险调用请求,然后,可以对危险调用请求进行拦截,可以通过服务黑名单准确捕捉到异常调用信息中是否存在敏感调用信息,从而准确过滤或筛选出存在危险的危险调用请求进行拦截,可以降低误报,并在一定程度上提高拦截恶意调用行为的准确性,以提升主机系统安全性,保护数字资产。
其中,服务黑名单是预先收集与横向渗透有关的敏感系统服务接口以及存在危险的服务接口方法的黑名单。
具体地,如图17所示,在确定异常调用信息之后,对信息调用请求是否调用了危险系统服务接口与服务接口方法进行判断,具体可以通过在预设收集到的服务黑名单中进行遍历或匹配,如果没有在该服务黑名单中遍历或匹配到与该异常调用信息中的服务接口相似或一致的服务接口,且没有在该服务黑名单中遍历或匹配到与服务接口方法相似或一致的服务接口方法,可以理解为该异常调用信息中不存在敏感调用信息,则可以先将该异常调用信息确定为安全调用信息,即该信息调用请求不存在恶意调用行为,无需进行拦截,可以实现进一步对安全调用请求进行筛选或过滤,从而可以在一定程度上提高拦截恶意调用行为的准确性。
进一步地,如图17所示如果在该服务黑名单中遍历或匹配到与该异常调用信息中的服务接口相似或一致的服务接口,或者在该服务黑名单中遍历或匹配到与服务接口方法相似或一致的服务接口方法,可以理解为该异常调用信息中存在敏感调用信息,则可以将该异常调用信息对应的信息调用请求确定为危险调用请求,然后,可以对危险调用请求进行拦截,可以实现进一步对安全调用请求进行筛选或过滤,从而可以在一定程度上提高拦截恶意调用行为的准确性。
在本申请实施例中,提供了一种远程过程调用的调用管控方法,通过上述方式,通过信息调用请求所对应的传输协议,确定传输协议所对应的远程客户端通信地址,来准确区分信息调用请求是否来源于客户端本地地址发起的安全调用请求,能够对安全调用请求和安全调用信息进行初步过滤,然后,通过服务黑名单对非本地调用的异常调用信息中的服务接口与方法编号进行安全调用请求和安全调用信息的进一步地过滤,以锁定危险调用请求并进行拦截,从而提高拦截准确率,降低误报。
可选地,在上述图2对应的实施例的基础上,本申请实施例提供的远程过程调用的调用管控方法另一个可选实施例中,如图3所示,步骤S103根据传输协议确定信息调用请求所对应的远程客户端通信地址,包括:
在步骤S301中,若传输协议为命名管道传输协议,则根据命名管道传输协议从信息调用请求的请求句柄中查询到远程过程调用组件的链接地址,并将链接地址作为远程客户端通信地址;
在步骤S302中,若传输协议为非命名管道传输协议,则将非命名管道传输协议上携带的客户端IP地址作为远程客户端通信地址。
在本实施例中,在获取到传输协议之后,由于在本地调用时最常见的是本地过程调用与命名管道传输协议,在远程调用时最常见的是TCP/IP协议以及命名管道传输协议,因此,如果传输协议是命名管道传输协议,可以理解为该信息调用请求可能是本地调用,也可能是远程应用,则可以根据命名管道传输协议从信息调用请求的请求句柄中查询到远程过程调用组件的链接地址,然后,可以将链接地址作为远程客户端通信地址,同理,如果当传输协议是非命名管道传输协议,可以理解为该信息调用请求是远程应用,则可以将非命名管道传输协议上携带的客户端IP地址作为远程客户端通信地址。
具体地,在获取到传输协议之后,可以对传输协议是否为命名管道传输协议进行判断,例如,如果传输协议是命名管道传输协议,则针对通过命名管道传输协议发起的信息调用请求,具体可以是通过调用RpcBindingServerFromClient与RpcBindingToStringBindingW获取远程过程调用RPC链接地址信息即远程客户端通信地址。
其中,RpcBindingServerFromClient指的是用于从一个客户端链接的句柄查询到对应服务器链接的句柄。RpcBindingToStringBindingW指的是用于获取远程过程调用RPC链接的句柄的传输层链接方式的文字描述。通过组合调用这两个函数,可以从一个客户端RPC请求句柄中查询到客户端的远程过程调用RPC链接地址信息,其中,对于命名管道协议链接方式的实现类似于socket套接字中的getpeername函数的功能,并进一步判断出客户端来自本地或是远程。
进一步地,如果当传输协议为非命名管道传输协议如TCP/IP协议时,可以根据非命名管道传输协议上携带的客户端IP地址作为远程客户端通信地址,具体可以是通过TCP/IP协议所对应的TCP首部和IP首部来准确获取发起信息调用请求的客户端IP地址作为远程客户端通信地址,还可以通过其他方式获取客户端IP地址,此处不作具体限制。
可选地,在上述图3对应的实施例的基础上,本申请实施例提供的远程过程调用的调用管控方法另一个可选实施例中,如图4所示,步骤S104若远程客户端通信地址为客户端的非本地地址,则将信息调用请求所对应的调用信息确定为异常调用信息,包括:
在步骤S401中,当远程客户端通信地址为链接地址时,将远程客户端通信地址与客户端的地址名称或本地IP地址进行对比;
在步骤S402中,若远程客户端通信地址与客户端的地址名称或本地IP地址中的任一项一致,则将调用信息确定为安全调用信息;
在步骤S403中,若远程客户端通信地址与客户端的地址名称以及本地IP地址均不一致,则将调用信息确定为异常调用信息。
在本实施例中,在根据命名管道传输协议获取到的链接地址作为远程客户端通信地址时,可以将获取到的链接地址与客户端的地址名称或本地IP地址进行对比,来判断调用信息确定是否为安全调用信息,即如果当链接地址与客户端的地址名称或本地IP地址中的任一项一致时,可以将调用信息确定为安全调用信息,以使后续可以对该安全调用信息对应的信息调用请求放行;同理,如果当链接地址与客户端的地址名称以及本地IP地址均不一致时,可以将调用信息确定为异常调用信息,以使后续可以对该异常调用信息进行进一步分析,以更加准确地区分该异常调用信息是否存在危险,可以更好地对安全调用请求进行过滤,减少误报,从而可以在一定程度上提高拦截危险调用请求的准确率。
其中,客户端的地址名称或本地IP地址可以从过滤回调函数的参数获取由FWPM_LAYER_RPC_UM层预设的调用信息中得到,客户端的地址名称或本地IP地址可用于识别网络中计算机。
具体地,对于使用命名管道协议发起的信息调用请求,可以对远程客户端通信地址是否为客户端的本机地址或本地地址,如本机计算机名或本机ip地址进行判断,具体可以是将获取到的链接地址与客户端的地址名称或本地IP地址进行对比,如果链接地址与客户端的地址名称一致,或者链接地址与本地IP地址一致,则可以确定该信息调用请求来源与本地调用,不存在远程恶意调用行为,即可以将该调用信息确定为安全调用信息。
进一步地,如果链接地址与客户端的地址名称不一致,且链接地址与本地IP地址也不一致,则可以确定该信息调用请求来源与远程调用,可能存在远程恶意调用行为,即可以将该调用信息确定为异常调用信息,以使后续可以对该异常调用信息进行进一步分析,以更加准确地区分该异常调用信息是否存在危险,从而可以更准确地对存在危险的信息调用请求进行拦截。
可选地,在上述图3对应的实施例的基础上,本申请实施例提供的远程过程调用的调用管控方法另一个可选实施例中,如图5所示,步骤S104若远程客户端通信地址为客户端的非本地地址,则将信息调用请求所对应的调用信息确定为异常调用信息,还包括:
在步骤S501中,当远程客户端通信地址为客户端IP地址时,将远程客户端通信地址与客户端的本地IP地址进行对比;
在步骤S502中,若远程客户端通信地址与客户端的本地IP地址一致,则将调用信息确定为安全调用信息;
在步骤S503中,若远程客户端通信地址与客户端的本地IP地址不一致,则将调用信息确定为异常调用信息。
在本实施例中,在根据非命名管道传输协议获取到的客户端IP地址作为远程客户端通信地址时,可以将获取到的客户端IP地址与本地IP地址进行对比,来判断调用信息确定是否为安全调用信息,即如果当客户端IP地址与本地IP地址中的一致时,可以将调用信息确定为安全调用信息,以使后续可以对该安全调用信息对应的信息调用请求放行;同理,如果当客户端IP地址与本地IP地址不一致时,可以将调用信息确定为异常调用信息,以使后续可以对该异常调用信息进行进一步分析,以更加准确地区分该异常调用信息是否存在危险,可以更好地对安全调用请求进行过滤,减少误报,从而可以在一定程度上提高拦截危险调用请求的准确率。
具体地,对于使用非命名管道协议如TCP/IP协议等发起的信息调用请求,可以对远程客户端通信地址是否为客户端的本地地址,如本机ip地址进行判断,具体可以是将获取到的客户端IP地址与本地IP地址进行对比,如果客户端IP地址与本地IP地址一致,即客户端ip地址为本机ip地址,则可以确定该信息调用请求来源与本地调用,不存在远程恶意调用行为,即可以将该调用信息确定为安全调用信息。
进一步地,如果客户端IP地址与本地IP地址不一致,即客户端ip地址不是本机ip地址,则可以确定该信息调用请求来源与远程调用,可能存在远程恶意调用行为,即可以将该调用信息确定为异常调用信息,以使后续可以对该异常调用信息进行进一步分析,以更加准确地区分该异常调用信息是否存在危险,从而可以更准确地对存在危险的信息调用请求进行拦截。
可选地,在上述图2对应的实施例的基础上,本申请实施例提供的远程过程调用的调用管控方法另一个可选实施例中,如图6所示,步骤S101向远程过程调用服务进程注入过滤模块,以通过过滤模块对远程过程调用组件进行安全检测,包括:
在步骤S601中,扫描当前服务器进程,若当前服务器进程为远程过程调用服务进程,则向远程过程调用服务进程注入过滤模块;
在步骤S602中,根据过滤模块,对远程过程调用服务进程进行接管,以通过过滤模块对远程过程调用组件进行安全检测。
在本实施例中,为了能够更好地检测到远程过程调用组件的调用消息,以更准确地区分存在恶意调用行为的危险调用请求,可以通过扫描当前服务器进程,如果当前服务器进程为远程过程调用服务进程时,可以向该远程过程调用服务进程注入过滤模块,以获取到远程过程调用服务进程所对应的原始过滤回调函数,并根据过滤模块中的目标过滤函数对原始过滤回调函数进行接管,以使得过滤模块对到达远程过程调用组件的信息调用请求进行检测或过滤,可以在RPC调用协议数据被系统组件解密与解析之后,且执行调用动作之前,能够更好地监测客户端使用不同底层协议发起信息调用请求的调用动作,以避免监测整个网络流量导致的解析成本和加密成本高的情形,从而降低管控成本。
具体地,如图18所示,由于Windows RPC是在操作系统用户态的功能组件,在每个远程过程调用RPC的服务器进程内需要加载此组件,因此,可以扫描当前服务器进程中加载的系统模块,如果当前服务器进程是能够通过Windows RPC组件提供远程调用服务的服务器进程,即当前服务器进程为远程过程调用服务进程,则可以向远程过程调用服务进程注入过滤模块,具体可以是通过DLL注入技术向远程过程调用服务进程注入代码,还可以通过其他方式或技术注入过滤模块,此处不作具体限制,其中,代码内容包括用于实现接管的挂钩功能代码与接管后处理RPC调用时的信息收集与规则判断代码等内容。然后,在注入过滤模块后过滤模块主动执行,接管原有过滤模块的功能,可以实现对远程过程调用RPC的的安全检测,从而可以该过滤模块实现对远程过程调用RPC的调用消息的管控。
可选地,在上述图6对应的实施例的基础上,本申请实施例提供的远程过程调用的调用管控方法另一个可选实施例中,如图7所示,步骤S602根据过滤模块,对远程过程调用服务进程进行接管,以通过过滤模块对远程过程调用组件进行安全检测,包括:
在步骤S701中,获取远程过程调用服务进程所对应的原始过滤回调函数;
在步骤S702中,根据过滤模块中的目标过滤函数对原始过滤回调函数进行接管,以使得过滤模块对远程过程调用组件进行安全检测。
在本实施例中,在向该远程过程调用服务进程注入过滤模块之后,可以获取到远程过程调用服务进程所对应的原始过滤回调函数,并根据过滤模块中的目标过滤函数对原始过滤回调函数进行接管,以使得过滤模块对到达远程过程调用组件进行安全检测,即对接收到的信息调用请求进行检测或过滤,能够更好地监测客户端使用不同底层协议发起信息调用请求的调用动作,以避免监测整个网络流量导致的解析成本和加密成本高的情形,从而降低管控成本。
具体地,在注入过滤模块后过滤模块主动执行,以获取原有过滤模块中的原始过滤回调函数,如系统内置过滤引擎Windows Filtering Platform的相关组件RpcRtRemote.dll的回调函数FwFilter,即获取远程过程调用服务进程所对应的原始过滤回调函数,然后,可以根据过滤模块中的目标过滤函数对原始过滤回调函数进行接管,即接管原有过滤模块的功能,从而可以该过滤模块实现对远程过程调用RPC的调用消息的管控。
可选地,在上述图7对应的实施例的基础上,本申请实施例提供的远程过程调用的调用管控方法另一个可选实施例中,如图8所示,步骤S102当检测到远程过程调用组件接收到信息调用请求时,收集远程过程调用组件所对应的调用信息,包括:
在步骤S801中,当信息调用请求到达远程过程调用组件时,将信息调用请求传递至原始过滤回调函数;
在步骤S802中,从原始过滤回调函数的参数中获取传输协议;
在步骤S803中,当目标过滤函数接收到原始过滤回调函数传递的信息调用请求时,根据目标过滤函数收集服务接口以及服务接口方法。
在本实施例中,在根据过滤模块中的目标过滤函数对原始过滤回调函数进行接管之后,当有信息调用请求到达远程过程调用组件时,会将该信息调用请求传递至原始过滤回调函数中,使得可以从原始过滤回调函数的参数中获取到传输协议,然后,由于目标过滤函数接管原始过滤回调函数后,原始过滤回调函数会将信息调用请求传递至目标过滤函数,使得目标过滤函数接收到原始过滤回调函数传递的信息调用请求时,可以收集到该信息调用请求访问远程过程调用服务进程所调用的服务接口以及与该服务接口所对应的服务接口方法,以使后续可以通过对收集到的调用信息进行分析,以筛选出危险调用请求进行拦截,从而实现对恶意或危险调用行为的拦截,可以在一定程度上提高拦截的准确率,降低误报。
具体地,通过过滤模块中的目标过滤函数对原始过滤回调函数进行接管之后,当有信息调用请求到达远程过程调用组件时,会将该信息调用请求传递至原始过滤回调函数中,使得可以从原始过滤回调函数的参数中获取到传输协议,具体可以是通过从回调函数的参数获取由FWPM_LAYER_RPC_UM层预设的基础调用信息,以使后续可以通过预设的基础调用信息确定调用信息以及信息调用请求的来源。其中,预设的调用信息包括远程对象令牌、接口标识符、接口实现版本、接口选项、DCOM应用标识符、服务器进程名、调用传输协议、验证类型、验证等级、安全加密算法、安全加密密钥大小、服务器IP地址及端口号、服务器命名管道名称、客户端IP地址以及本机IP地址等,此处不作具体限制。
进一步地,由于目标过滤函数已对原始过滤回调函数进行接管,因此,原始过滤回调函数会将信息调用请求传递至目标过滤函数,使得目标过滤函数在接收到原始过滤回调函数传递的信息调用请求时,可以在目标函数中调用查询函数或调用方法定义列表,或采用其他收集方式,收集到该信息调用请求访问远程过程调用服务进程所调用的服务接口以及与该服务接口所对应的服务接口方法。
可选地,在上述图8对应的实施例的基础上,本申请实施例提供的远程过程调用的调用管控方法另一个可选实施例中,如图9所示,步骤S803根据目标过滤函数收集服务接口以及服务接口方法,包括:
在步骤S901中,根据目标过滤函数获取服务接口以及服务接口所对应的服务接口方法编号;
在步骤S902中,根据服务接口方法编号与方法定义之间的映射关系,获取服务接口方法。
在本实施例中,当目标过滤函数接收到原始过滤回调函数传递的信息调用请求时,可以根据目标过滤函数获取到信息调用请求访问远程过程调用服务进程所调用的服务接口以及服务接口所对应的服务接口方法编号,然后,可以根据服务接口方法编号与方法定义之间的映射关系,获取到每个服务接口方法编号所对应的服务接口方法,以使后续可以通过对收集到的调用信息进行分析,以筛选出危险调用请求进行拦截,从而实现对恶意或危险调用行为的拦截,可以在一定程度上提高拦截的准确率,降低误报。
具体地,当目标过滤函数接收到原始过滤回调函数传递的信息调用请求时,可以根据目标过滤函数获取到信息调用请求访问远程过程调用服务进程所调用的服务接口以及服务接口所对应的服务接口方法编号,具体可以是通过补充方法来获取到详细信息,即可以通过调用RpcServerInqCallAttributesW函数来获取信息调用请求访问远程过程调用服务进程所调用的服务接口方法编号,即OpNum或ProcNum,然后,可以使用预置的方法编号到方法定义的映射表,即服务接口方法编号与方法定义之间的映射关系,以获取到每个服务接口方法编号所对应的方法名称与函数签名等信息,即服务接口方法。其中,RpcServerInqCallAttributesW函数可以用于在远程过程调用服务进程中查询一个客户端的对远程过程调用RPC的信息调用请求的各项详细信息。
可选地,在上述图6对应的实施例的基础上,本申请实施例提供的远程过程调用的调用管控方法另一个可选实施例中,如图10所示,步骤S601扫描当前服务器进程,若当前服务器进程为远程过程调用服务进程,则向远程过程调用服务进程注入过滤模块,包括:
在步骤S1001中,获取当前服务器进程中的远程过程调用服务组件的加载状态;
在步骤S1002中,若远程过程调用服务组件的加载状态为已加载,则将当前服务器进程作为远程过程调用服务进程,并向远程过程调用服务进程注入过滤模块。
在本实施例中,扫描当前服务器进程时,可以获取到当前服务器进程中的远程过程调用服务组件的加载状态,如果远程过程调用服务组件的加载状态为已加载,则可以将当前服务器进程确定为远程过程调用服务进程,然后,可以向远程过程调用服务进程注入过滤模块,以使得过滤模块对信息调用请求进行管控,能够更好地监测客户端使用不同底层协议发起信息调用请求的调用动作,以避免监测整个网络流量导致的解析成本和加密成本高的情形,从而降低管控成本。
其中,远程过程调用服务组件是系统内置过滤引擎Windows Filtering Platform相关组件RpcRtRemote.dll。其中,RpcRtRemote.dll是仅在远程过程调用服务进程初始化过程中加载的组件,在远程过程调用客户端进程中不会加载。
具体地,由于远程过程调用服务组件是在远程过程调用服务进程初始化过程中加载的组件,因此,在选择过滤目标远程过程调用服务进程时,可以通过判断当前服务器进程中是否已加载RpcRtRemote.dll组件,来确定当前服务器进程是否为一个远程过程调用服务进程,具体可以是通过检测当前服务器进程中RpcRtRemote.dll的加载动作或加载状态,如果程控制服务组件的加载状态为未加载,可以理解为当前服务器进程不是可以提供远程过程调用服务的服务器进程,则无需接管原有过滤模块的功能,反之,如果程控制服务组件的加载状态为已加载,则可以将当前服务器进程确定为提供远程过程调用服务的远程过程调用服务进程,故可以向远程过程调用服务进程注入过滤模块,以接管原有过滤模块的功能,实现对到达远程过程调用组件的信息调用请求进行管控。
需要说明的是,由于系统内置过滤引擎Windows Filtering Platform内通常是通过使用Base Filtering Engine的规则与过滤框架来实现具体规则判断过滤流程的,但是,RpcRtRemote.dll内部实现了调用信息收集功能,在进行规则判断是否需要拦截时具体可以是通过调用外部规则引擎Base Filtering Engine的Fwpuclnt.dll模块中的FwpsClassifyUser0函数并传递所收集的调用信息的,故基于此,本实施例还可以通过接管过滤模块RpcRtRemote.dll内对此框架的函数调用,具体可以是通过hook机制挂钩此函数来获取调用信息,并替换原有的规则判断流程,返回对应的拦截判断结果,这种挂钩方式可以主动获取所需要的其他远程过程调用组件对应的调用信息,不限于调用规则引擎时传递的调用信息。
可选地,在上述图10对应的实施例的基础上,本申请实施例提供的远程过程调用的调用管控方法另一个可选实施例中,如图11所示,步骤S701获取远程过程调用服务进程所对应的原始过滤回调函数,包括:步骤S1101;步骤S702包括:步骤S1102;
在步骤S1101中,调用已加载的远程过程调用服务组件中的指向函数获取原始过滤回调函数;
在步骤S1102中,基于指向函数,将目标过滤函数挂钩至原始过滤回调函数。
在本实施例中,在注入过滤模块后过滤模块主动执行,可以调用已加载的远程过程调用服务组件中的指向函数,然后,可以根据指向函数获取原始过滤回调函数,并可以根据指向函数,将目标过滤函数挂钩至原始过滤回调函数,实现目标过滤函数对原始过滤回调函数的接管,实现对到达远程过程调用组件的信息调用请求进行管控。
具体地,在注入过滤模块后过滤模块主动执行,可以调用已加载的远程过程调用服务组件中的指向函数,并通过指向函数获取原始过滤回调函数,具体可以是通过调用I_RpcExtInitializeExtensionPoint函数获取到远程过程调用服务组件RpcRtRemote.dll中的调用信息的过滤回调函数FwFilter的地址,即获取原始过滤回调函数。其中,I_RpcExtInitializeExtensionPoint函数是动态链接库RpcRtRemote.dll的导出函数,可以由rpcrt4.dll调用。I_RpcExtInitializeExtensionPoint函数用于获取RPC扩展组件的扩展功能函数列表,该函数原型为DWORD I_RpcExtInitializeExtensionPoint(int type,void **function_array)。原始过滤回调函数FwFilter不能通过动态链接库导出函数直接获取,需要先主动调用I_RpcExtInitializeExtensionPoint函数,然后,从返回的function_array回调函数列表中获取FwFilter函数指针,来进一步获取原始过滤回调函数FwFilter。
进一步地,在获取到原始过滤回调函数FwFilter之后,可以根据指向函数,将目标过滤函数挂钩至原始过滤回调函数,具体可以是使用hook机制如内联钩子方式挂钩此原始过滤回调函数到过滤模块的钩子函数NewFwFilter,即目标过滤函数,还可以使用其他挂钩方式,此处不作具体限制,从而实现目标过滤函数对原始过滤回调函数的接管,实现对到达远程过程调用组件的信息调用请求进行管控。
可选地,在上述图10对应的实施例的基础上,本申请实施例提供的远程过程调用的调用管控方法另一个可选实施例中,如图12所示,步骤S1001获取当前服务器进程中的远程过程调用服务组件的加载状态之前,该方法还包括:步骤S1201;步骤S1101包括:步骤S1202;
在步骤S1201中,加载替换扩展模块,以通过替换扩展模块对当前服务器进程中所对应的原始扩展模块进行接管,其中,替换扩展模块是通过对注册表中保存的文件名进行替换得到的;
在步骤S1202中,基于替换扩展模块,获取当前服务器进程中的远程过程调用服务组件的加载状态。
在本实施例中,获取当前服务器进程中的远程过程调用服务组件的加载状态之前,可以加载替换扩展模块,以通过替换扩展模块对当前服务器进程中所对应的原始扩展模块进行接管,使得可以通过替换扩展模块获取当前服务器进程中的远程过程调用服务组件的加载状态。
具体地,由于加载系统内置过滤引擎RpcRtRemote.dll模块的过程中是从注册表中取出要加载的RPC扩展模块路径的,因此,本实施例还可以通过替换注册表中保存的文件名,加载替换的RPC扩展模块,代替系统内置过滤引擎中原有RPC扩展模块,达到接管原有RPC扩展模块目的,使得在加载RpcRtRemote.dll模块时,无需从注册表中取出要加载的RPC扩展模块路径,可以提高RpcRtRemote.dll模块的加载效率,从而可以在一定程度上提高远程过程调用进程的调用效率。
可选地,在上述图6对应的实施例的基础上,本申请实施例提供的远程过程调用的调用管控方法另一个可选实施例中,如图13所示,步骤S601根据过滤模块,对远程过程调用服务进程进行接管,以通过过滤模块对远程过程调用组件进行安全检测,包括:
在步骤S1301中,获取远程过程调用服务进程所对应的安全检查函数;
在步骤S1302中,将过滤模块中的目标过滤函数挂钩至安全检查函数所对应的调用路径上的任意位置,以使得过滤模块接管对远程过程调用组件的安全检测。
在本实施例中,在注入过滤模块之后,可以获取远程过程调用服务进程所对应的安全检查函数,然后,将过滤模块中的目标过滤函数挂钩至安全检查函数所对应的调用路径上的任意位置,使得过滤模块可以接管远程过程调用服务进程,进而可以通过滤模块接管对远程过程调用组件的安全检测。
具体地,由于对系统远程过程调用RPC的过滤模块中的RpcRtRemote.dll的原始过滤回调函数FwFilter的调用和获取,通常是来自于系统远程过程调用RPC功能实现模块rpcrt4.dll中的安全检查函数DoSecurityCallbackAndAccessCheck实现的,因此,本实施例还可以在安全检查函数DoSecurityCallbackAndAccessCheck的调用路径上的任意位置进行挂钩,可以更灵活快速地实现过滤模块对原有过滤模块的接管,进而可以通过滤模块接管对远程过程调用组件的安全检测,从而可以在一定程度上提高远程过程调用进程的调用效率。
可选地,在上述图2对应的实施例的基础上,本申请实施例提供的远程过程调用的调用管控方法另一个可选实施例中,如图14所示,步骤S104若远程客户端通信地址为客户端的非本地地址,则将信息调用请求所对应的调用信息确定为异常调用信息之后,该方法还包括:
在步骤S1401中,根据异常调用信息中的服务接口以及服务接口方法,在服务白名单中进行遍历;
在步骤S1402中,若遍历到异常调用信息中的服务接口属于服务白名单中的安全服务接口,以及服务接口方法属于服务白名单中的安全服务接口方法,则将信息调用请求确定为安全调用请求,并对安全调用请求进行放行。
在本实施例中,在确定异常调用信息之后,可以根据异常调用信息中的服务接口以及服务接口方法,在服务白名单中进行遍历,以判断异常调用信息中的服务接口以及服务接口方法是否都属于服务白名单中的安全服务接口以及安全服务接口方法,如果遍历到异常调用信息中的服务接口属于服务白名单中的安全服务接口,以及服务接口方法属于服务白名单中的安全服务接口方法,可以理解为该异常调用信息中的服务接口与服务白名单中的服务接口相匹配,以及服务接口方法与服务白名单中的服务接口方法相匹配,即该调用信息不存在敏感调用信息,则可以将该异常调用信息对应的信息调用请求确定为安全调用请求,然后,可以对该安全调用请求进行放行,可以通过服务白名单准确捕捉到异常调用信息中是否存在非敏感调用信息,从而准确过滤掉不存在危险的安全调用请求,可以降低误报,并在一定程度上提高拦截恶意调用行为的准确性。
其中,服务白名单是预先收集与横向渗透有关的非敏感系统服务接口以及不存在危险的非敏感服务接口方法的白名单,即安全服务接口以及与安全服务接口相对应的安全服务接口方法。
具体地,如图17所示,在确定异常调用信息之后,可以判断信息调用请求是否调用了危险系统服务接口与服务接口方法,具体可以通过在预设收集到的服务白名单中进行遍历或匹配,如果没有在该服务白名单中遍历或匹配到与该异常调用信息中的服务接口相似或一致的服务接口,或没有在该服务白名单中遍历或匹配到与服务接口方法相似或一致的服务接口方法,可以理解为该异常调用信息中可能存在敏感调用信息,则可以先将该异常调用信息确定为异常调用信息,即该信息调用请求可能存在恶意调用行为,需要进行拦截,可以实现进一步对安全调用请求进行区分和过滤,从而可以在一定程度上提高拦截恶意调用行为的准确性。
进一步地,如图17所示如果在该服务白名单中遍历或匹配到与该异常调用信息中的服务接口相似或一致的服务接口,且在该服务白名单中遍历或匹配到与服务接口方法相似或一致的服务接口方法,可以理解为该异常调用信息中不存在敏感调用信息,则可以将该异常调用信息对应的信息调用请求确定为安全调用请求,即该信息调用请求不存在恶意调用行为,无需进行拦截,然后,可以对该安全调用请求进行放行,可以实现进一步对安全调用请求进行筛选或过滤,从而可以在一定程度上提高拦截恶意调用行为的准确性。
可选地,在上述图14对应的实施例的基础上,本申请实施例提供的远程过程调用的调用管控方法另一个可选实施例中,如图15所示,步骤S1401根据异常调用信息中的服务接口以及服务接口方法,在服务白名单中进行遍历之后,该方法还包括:
在步骤S1501中,若异常调用信息中的服务接口以及服务接口方法不属于服务黑名单,且不属于服务白名单,则将信息调用请求作为待审核调用请求;
在步骤S1502中,将待审核调用请求以及异常调用信息发送至第三方服务器进行调用审核;
在步骤S1503中,接收第三方服务器返回的调用审核结果,并根据调用审核结果对待审核调用请求进行处理。
在本实施例中,在确定异常调用信息之后,可以根据异常调用信息中的服务接口以及服务接口方法,在服务黑名单以及服务白名单中进行遍历,以判断异常调用信息中的服务接口以及服务接口方法是否属于服务黑名单中敏感服务接口或敏感服务接口方法,或属于服务白名单中的安全服务接口以及安全服务接口方法,如果遍历后,异常调用信息中的服务接口以及服务接口方法不属于服务黑名单,且不属于服务白名单,可以理解为该异常调用信息中的服务接口以及服务接口方法是未知服务接口以及未知服务接口方法,即未知该调用信息是否存在敏感调用信息,则可以将该异常调用信息对应的信息调用请求标记为未知调用请求,即待审核调用请求,然后,可以将待审核调用请求以及异常调用信息发送至第三方服务器进行调用审核,使得第三方服务器端的管理对象可以对接收到的待审核调用请求以及异常调用信息进行调用信息的安全审核,以得到相应的调用审核结果并返回至当前服务器进程,进而,根据调用审核结果对待审核调用请求进行处理,能够准确过滤掉不存在危险的安全调用请求,拦截存在危险的危险调用请求,可以降低误报,从而在一定程度上提高拦截恶意调用行为的准确性,以进一步提升主机系统安全性,保护数字资产安全。
其中,第三方服务器具体可以表现为主动防御系统的服务管理平台,用于提供系统管理以及信息审核等服务,第三方服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(contentdelivery network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。服务器与第三方服务器可以通过有线或无线通信方式进行直接或间接地连接,此处不作具体限制。
具体地,如图17所示,在确定异常调用信息之后,可以判断信息调用请求是否调用了危险系统服务接口与服务接口方法,具体可以通过在预设收集到的服务黑名单以及服务白名单中分别进行遍历或匹配,如果没有在该服务白名单中遍历或匹配到与该异常调用信息中的服务接口相似或一致的服务接口,或没有在该服务白名单中遍历或匹配到与服务接口方法相似或一致的服务接口方法,可以理解为该异常调用信息中可能存在敏感调用信息,同时,如果没有在该服务黑名单中遍历或匹配到与该异常调用信息中的服务接口相似或一致的服务接口,且没有在该服务黑名单中遍历或匹配到与服务接口方法相似或一致的服务接口方法,即异常调用信息中的服务接口以及服务接口方法不属于服务黑名单,且不属于服务白名单,可以理解为该异常调用信息中的服务接口以及服务接口方法是未知服务接口以及未知服务接口方法,即未知该调用信息是否存在敏感调用信息,则可以将该异常调用信息对应的信息调用请求标记为未知调用请求,即待审核调用请求。
进一步地,为了能够进一步确认该异常调用信息是否存在敏感调用信息,以更好地对安全调用请求进行区分和过滤,本实施例可以将待审核调用请求以及异常调用信息发送至第三方服务器进行调用审核,使得第三方服务器端的管理对象可以对接收到的待审核调用请求以及异常调用信息进行调用信息的安全审核,例如,可以将服务接口以及服务接口方法与系统服务列表中的服务接口名称、接口方法名称以及函数签名等信息进行安全对比,或对服务接口以及服务接口方法进行安全打分等,还可以是采用其他审核方式,此处不作具体限制,以得到相应的调用审核结果并返回至当前服务器进程,如果接收到的调用审核结果为安全调用,则可以对待审核调用请求进行放行,反之,如果接收到的调用审核结果为危险调用,则可以对待审核调用请求进行拦截。
可选地,在上述图18对应的实施例的基础上,本申请实施例提供的远程过程调用的调用管控方法另一个可选实施例中,步骤S1503接收第三方服务器返回的调用审核结果,并根据调用审核结果对待审核调用请求进行处理,包括:
若第三方服务器发送的调用审核结果为安全调用,则对待审核调用请求进行放行;
若第三方服务器发送的调用审核结果为危险调用,则对待审核调用请求进行拦截。
在本实施例中,在接收到第三方服务器返回的调用审核结果时,如果当前服务器进程接收到的第三方服务器发送的调用审核结果为安全调用,可以理解为该异常调用信息不存在敏感调用信息,该信息调用请求为安全调用请求,则可以对待审核调用请求进行放行,同理,如果当前服务器进程接收到的第三方服务器发送的调用审核结果为危险调用,可以理解为该异常调用信息存在敏感调用信息,该信息调用请求为危险调用请求,则可以对待审核调用请求进行拦截,能够准确过滤掉不存在危险的安全调用请求,拦截存在危险的危险调用请求,可以降低误报,从而在一定程度上提高拦截恶意调用行为的准确性,以进一步提升主机系统安全性,保护数字资产安全。
具体地,在接收到第三方服务器返回的调用审核结果时,如果当前服务器进程接收到的第三方服务器发送的调用审核结果为安全调用,可以理解为该异常调用信息不存在敏感调用信息,该信息调用请求为安全调用请求,不存在恶意调用行为,则可以对待审核调用请求进行放行,同理,如果当前服务器进程接收到的第三方服务器发送的调用审核结果为危险调用,可以理解为该异常调用信息存在敏感调用信息,该信息调用请求为危险调用请求,存在恶意调用行为,则可以对待审核调用请求进行拦截,能够通过第三方服务器发送的调用审核结果进一步准确区分出不存在危险的安全调用请求进行过滤,对存在危险的危险调用请求进行拦截,可以降低误报,从而在一定程度上提高拦截恶意调用行为的准确性。
可选地,在上述图2对应的实施例的基础上,本申请实施例提供的远程过程调用的调用管控方法另一个可选实施例中,如图16所示,步骤S101向远程过程调用服务进程注入过滤模块之后,该方法还包括:
在步骤S1601中,对远程过程调用服务进程中已注册的接口信息进行检测;
在步骤S1602中,若在已注册的接口信息中未检测到远程过程调用服务接口信息,则确定远程过程调用服务进程不具备远程过程调用服务,并卸载过滤模块;
在步骤S1603中,若在已注册的接口信息中检测到远程过程调用服务接口信息,则确定远程过程调用服务进程具备远程过程调用服务,以通过远程过程调用服务使用过滤模块对信息调用请求进行管控。
在本实施例中,在向远程过程调用服务进程注入过滤模块之后,可以对远程过程调用服务进程中已注册的接口信息进行检测,如果在已注册的接口信息中未检测到远程过程调用服务接口信息,则可以确定远程过程调用服务进程不具备远程过程调用服务,故可以卸载已注入的过滤模块,反之,如果在已注册的接口信息中检测到远程过程调用服务接口信息,则可以确定远程过程调用服务进程具备远程过程调用服务,能够进一步判断远程过程调用服务进程是否能够提供远程过程调用服务,如果可以能够提供远程过程调用服务,则可以执行挂钩行为,接管原有过滤模块的功能,从而更好地基于过滤模块监测客户端使用不同底层协议发起信息调用请求的调用动作,以避免监测整个网络流量导致的解析成本和加密成本高的情形,降低管控成本。
具体地,在向远程过程调用服务进程注入过滤模块之后,可以对远程过程调用服务进程中已注册的接口信息进行检测,具体可以是通过调用RpcMgmtInqIfIds函数来获取当前服务器进程内注册的远程过程调用服务进程提供的服务接口信息。其中,RpcMgmtInqIfIds函数用于获取RPC服务端的服务接口信息。
进一步地,如果调用RpcMgmtInqIfIds函数未获取当前服务器进程内注册的远程过程调用服务进程提供的服务接口信息,即在已注册的接口信息中未检测到远程过程调用服务接口信息,可以理解为当前服务器进程不存在RPC服务端,则可以确定远程过程调用服务进程不具备提供远程过程调用服务的能力,无需接管原有过滤模块的功能,故可以卸载已注入的过滤模块。
进一步地,如果调用RpcMgmtInqIfIds函数获取到当前服务器进程内注册的远程过程调用服务进程提供的服务接口信息,即在已注册的接口信息中检测到远程过程调用服务接口信息,可以理解为当前服务器进程存在RPC服务端,则可以确定远程过程调用服务进程具备提供远程过程调用服务的能力,故可以执行挂钩行为,接管原有过滤模块的功能,故可以通过远程过程调用服务使用过滤模块对信息调用请求进行管控。
下面对本申请中的远程过程调用的调用管控装置进行详细描述,请参阅图19,图19为本申请实施例中远程过程调用的调用管控装置的一个实施例示意图,远程过程调用的调用管控装置20包括:
获取单元201,用于当检测到远程过程调用组件接收到信息调用请求时,收集远程过程调用组件所对应的调用信息,其中,调用信息至少包括服务接口以及服务接口所对应的服务接口方法;
获取单元201,用于根据信息调用请求,获取调用请求所对应的传输协议;
确定单元202,用于根据传输协议确定信息调用请求所对应的远程客户端通信地址;
确定单元202,用于若远程客户端通信地址为客户端的非本地地址,则将信息调用请求所对应的调用信息确定为异常调用信息;
处理单元203,用于若异常调用信息中的服务接口以及服务接口方法中的任一项属于服务黑名单中的敏感服务接口或敏感服务接口方法,则将信息调用请求确定为危险调用请求,并对危险调用请求进行拦截。
可选地,在上述图19对应的实施例的基础上,本申请实施例提供的远程过程调用的调用管控装置的另一实施例中,确定单元202具体可以用于:
若传输协议为命名管道传输协议,则根据命名管道传输协议从信息调用请求的请求句柄中查询到远程过程调用组件的链接地址,并将链接地址作为远程客户端通信地址;
若传输协议为非命名管道传输协议,则将非命名管道传输协议上携带的客户端IP地址作为远程客户端通信地址。
可选地,在上述图19对应的实施例的基础上,本申请实施例提供的远程过程调用的调用管控装置的另一实施例中,确定单元202具体可以用于:
当远程客户端通信地址为链接地址时,将远程客户端通信地址与客户端的地址名称或本地IP地址进行对比;
若远程客户端通信地址与客户端的地址名称或本地IP地址中的任一项一致,则将调用信息确定为安全调用信息;
若远程客户端通信地址与客户端的地址名称以及本地IP地址均不一致,则将调用信息确定为异常调用信息。
可选地,在上述图19对应的实施例的基础上,本申请实施例提供的远程过程调用的调用管控装置的另一实施例中,确定单元202具体可以用于:
当远程客户端通信地址为客户端IP地址时,将远程客户端通信地址与客户端的本地IP地址进行对比;
若远程客户端通信地址与客户端的本地IP地址一致,则将调用信息确定为安全调用信息;
若远程客户端通信地址与客户端的本地IP地址不一致,则将调用信息确定为异常调用信息。
可选地,在上述图19对应的实施例的基础上,本申请实施例提供的远程过程调用的调用管控装置的另一实施例中,
处理单元203,还用于根据异常调用信息中的服务接口以及服务接口方法,在服务白名单中进行遍历;
处理单元203,还用于若遍历到异常调用信息中的服务接口属于服务白名单中的安全服务接口,以及服务接口方法属于服务白名单中的安全服务接口方法,则将信息调用请求确定为安全调用请求,并对安全调用请求进行放行。
可选地,在上述图19对应的实施例的基础上,本申请实施例提供的远程过程调用的调用管控装置的另一实施例中,
确定单元202,还用于若异常调用信息中的服务接口以及服务接口方法不属于服务黑名单,且不属于服务白名单,则将信息调用请求作为待审核调用请求;
处理单元203,还用于将待审核调用请求以及异常调用信息发送至第三方服务器进行调用审核;
处理单元203,还用于若第三方服务器发送的调用审核结果为安全调用,则对待审核调用请求进行放行;
处理单元203,还用于若第三方服务器发送的调用审核结果为危险调用,则对待审核调用请求进行拦截。
可选地,在上述图19对应的实施例的基础上,本申请实施例提供的远程过程调用的调用管控装置的另一实施例中,
处理单元203,还用于扫描当前服务器进程,若当前服务器进程为远程过程调用服务进程,则向远程过程调用服务进程注入过滤模块;
获取单元201,还用于获取远程过程调用服务进程所对应的原始过滤回调函数;
处理单元203,还用于根据过滤模块中的目标过滤函数对原始过滤回调函数进行接管,以使得过滤模块对信息调用请求进行检测或过滤。
可选地,在上述图19对应的实施例的基础上,本申请实施例提供的远程过程调用的调用管控装置的另一实施例中,获取单元201具体可以用于:
当信息调用请求到达远程过程调用组件时,将信息调用请求传递至原始过滤回调函数;
从原始过滤回调函数的参数中获取传输协议;
当目标过滤函数接收到原始过滤回调函数传递的信息调用请求时,根据目标过滤函数收集服务接口以及服务接口方法。
可选地,在上述图19对应的实施例的基础上,本申请实施例提供的远程过程调用的调用管控装置的另一实施例中,获取单元201具体可以用于:
根据目标过滤函数获取服务接口以及服务接口所对应的服务接口方法编号;
根据服务接口方法编号与方法定义之间的映射关系,获取服务接口方法。
可选地,在上述图19对应的实施例的基础上,本申请实施例提供的远程过程调用的调用管控装置的另一实施例中,获取单元201具体可以用于:
获取当前服务器进程中的远程过程调用服务组件的加载状态;
若远程过程调用服务组件的加载状态为已加载,则将当前服务器进程作为远程过程调用服务进程,并向远程过程调用服务进程注入过滤模块。
可选地,在上述图19对应的实施例的基础上,本申请实施例提供的远程过程调用的调用管控装置的另一实施例中,获取单元201具体可以用于:
获取已加载的远程过程调用服务组件中的原始过滤回调函数地址,并根据原始过滤回调函数地址获取原始过滤回调函数;
获取单元201具体可以用于:根据原始过滤回调函数地址,将目标过滤函数挂钩至原始过滤回调函数。
可选地,在上述图19对应的实施例的基础上,本申请实施例提供的远程过程调用的调用管控装置的另一实施例中,
处理单元203,还用于对远程过程调用服务进程中已注册的接口信息进行检测;
确定单元202,还用于若在已注册的接口信息中未检测到远程过程调用服务接口信息,则确定远程过程调用服务进程不具备远程过程调用服务,并卸载过滤模块;
确定单元202,还用于若在已注册的接口信息中检测到远程过程调用服务接口信息,则确定远程过程调用服务进程具备远程过程调用服务,以通过远程过程调用服务使用过滤模块对信息调用请求进行管控。
本申请另一方面提供了另一种计算机设备示意图,如图20所示,图20是本申请实施例提供的一种计算机设备结构示意图,该计算机设备300可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)310(例如,一个或一个以上处理器)和存储器320,一个或一个以上存储应用程序331或数据332的存储介质330(例如一个或一个以上海量存储设备)。其中,存储器320和存储介质330可以是短暂存储或持久存储。存储在存储介质330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对计算机设备300中的一系列指令操作。更进一步地,中央处理器310可以设置为与存储介质330通信,在计算机设备300上执行存储介质330中的一系列指令操作。
计算机设备300还可以包括一个或一个以上电源340,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口360,和/或,一个或一个以上操作系统333,例如Windows ServerTM,Mac OS XTM,UnixTM, LinuxTM,FreeBSDTM等等。
上述计算机设备300还用于执行如图2至图16对应的实施例中的步骤。
本申请的另一方面提供了一种计算机可读存储介质,其上存储有计算机程序,当计算机程序被处理器执行时实现如图2至图16所示实施例描述的方法中的步骤。
本申请的另一方面提供了一种包含计算机程序的计算机程序产品,当计算机程序被处理器执行时实现如图2至图16所示实施例描述的方法中的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (19)
1.一种远程过程调用的调用管控方法,其特征在于,包括:
向远程过程调用服务进程注入过滤模块,以通过所述过滤模块对远程过程调用组件进行安全检测;
当检测到所述远程过程调用组件接收到信息调用请求时,收集所述远程过程调用组件所对应的调用信息,其中,所述调用信息至少包括传输协议、服务接口以及所述服务接口所对应的服务接口方法;
根据所述传输协议确定所述信息调用请求所对应的远程客户端通信地址;
若所述远程客户端通信地址为客户端的非本地地址,则将所述信息调用请求所对应的调用信息确定为异常调用信息;
若所述异常调用信息中的所述服务接口以及所述服务接口方法中的任一项属于服务黑名单中的敏感服务接口或敏感服务接口方法,则将所述信息调用请求确定为危险调用请求,并对所述危险调用请求进行拦截。
2.根据权利要求1所述的方法,其特征在于,所述根据所述传输协议确定所述信息调用请求所对应的远程客户端通信地址,包括:
若所述传输协议为命名管道传输协议,则根据所述命名管道传输协议从信息调用请求的请求句柄中查询到所述远程过程调用组件的链接地址,并将所述链接地址作为所述远程客户端通信地址;
若所述传输协议为非命名管道传输协议,则将所述非命名管道传输协议上携带的客户端IP地址作为所述远程客户端通信地址。
3.根据权利要求2所述的方法,其特征在于,所述若所述远程客户端通信地址为客户端的非本地地址,则将所述信息调用请求所对应的调用信息确定为异常调用信息,包括:
当所述远程客户端通信地址为所述链接地址时,将所述远程客户端通信地址与所述客户端的地址名称或本地IP地址进行对比;
若所述远程客户端通信地址与所述客户端的地址名称或本地IP地址中的任一项一致,则将所述调用信息确定为安全调用信息;
若所述远程客户端通信地址与所述客户端的地址名称以及本地IP地址均不一致,则将所述调用信息确定为所述异常调用信息。
4.根据权利要求2所述的方法,其特征在于,所述若所述远程客户端通信地址为客户端的非本地地址,则将所述信息调用请求所对应的调用信息确定为异常调用信息,还包括:
当所述远程客户端通信地址为所述客户端IP地址时,将所述远程客户端通信地址与所述客户端的本地IP地址进行对比;
若所述远程客户端通信地址与所述客户端的本地IP地址一致,则将所述调用信息确定为安全调用信息;
若所述远程客户端通信地址与所述客户端的本地IP地址不一致,则将所述调用信息确定为所述异常调用信息。
5.根据权利要求1所述的方法,其特征在于,所述向远程过程调用服务进程注入过滤模块,以通过所述过滤模块对远程过程调用组件进行安全检测,包括:
扫描当前服务器进程,若所述当前服务器进程为所述远程过程调用服务进程,则向所述远程过程调用服务进程注入过滤模块;
根据所述过滤模块,对所述远程过程调用服务进程进行接管,以通过所述过滤模块对远程过程调用组件进行安全检测。
6.根据权利要求5所述的方法,其特征在于,所述根据所述过滤模块,对所述远程过程调用服务进程进行接管,以通过所述过滤模块对远程过程调用组件进行安全检测,包括:
获取所述远程过程调用服务进程所对应的原始过滤回调函数;
根据所述过滤模块中的目标过滤函数对所述原始过滤回调函数进行接管,以使得所述过滤模块对远程过程调用组件进行安全检测。
7.根据权利要求6所述的方法,其特征在于,所述当检测到远程过程调用组件接收到信息调用请求时,收集所述远程过程调用组件所对应的调用信息,包括:
当所述信息调用请求到达所述远程过程调用组件时,将所述信息调用请求传递至所述原始过滤回调函数;
从所述原始过滤回调函数的参数中获取所述传输协议;
当所述目标过滤函数接收到所述原始过滤回调函数传递的所述信息调用请求时,根据所述目标过滤函数收集所述服务接口以及所述服务接口方法。
8.根据权利要求7所述的方法,其特征在于,所述根据所述目标过滤函数收集所述服务接口以及所述服务接口方法,包括:
根据所述目标过滤函数获取所述服务接口以及所述服务接口所对应的服务接口方法编号;
根据所述服务接口方法编号与方法定义之间的映射关系,获取所述服务接口方法。
9.根据权利要求6所述的方法,其特征在于,所述扫描当前服务器进程,若所述当前服务器进程为远程过程调用服务进程,则向所述远程过程调用服务进程注入过滤模块,包括:
获取所述当前服务器进程中的远程过程调用服务组件的加载状态;
若所述远程过程调用服务组件的加载状态为已加载,则将所述当前服务器进程作为所述远程过程调用服务进程,并向所述远程过程调用服务进程注入过滤模块。
10.根据权利要求9所述的方法,其特征在于,所述获取所述远程过程调用服务进程所对应的原始过滤回调函数,包括:
调用已加载的所述远程过程调用服务组件中的指向函数获取所述原始过滤回调函数;
所述根据所述过滤模块中的目标过滤函数对所述原始过滤回调函数进行接管,包括:
基于所述指向函数,将所述目标过滤函数挂钩至所述原始过滤回调函数。
11.根据权利要求9所述的方法,其特征在于,所述获取所述当前服务器进程中的远程过程调用服务组件的加载状态之前,所述方法还包括:
加载替换扩展模块,以通过所述替换扩展模块对所述当前服务器进程中所对应的原始扩展模块进行接管,其中,所述替换扩展模块是通过对注册表中保存的文件名进行替换得到的;
所述获取所述当前服务器进程中的远程过程调用服务组件的加载状态,包括:
基于所述替换扩展模块,获取所述当前服务器进程中的远程过程调用服务组件的加载状态。
12.根据权利要求5所述的方法,其特征在于,所述根据所述过滤模块,对所述远程过程调用服务进程进行接管,以通过所述过滤模块对远程过程调用组件进行安全检测,包括:
获取所述远程过程调用服务进程所对应的安全检查函数;
将所述过滤模块中的目标过滤函数挂钩至所述安全检查函数所对应的调用路径上的任意位置,以使得所述过滤模块接管对远程过程调用组件的安全检测。
13.根据权利要求1所述的方法,其特征在于,所述若所述远程客户端通信地址为客户端的非本地地址,则将所述信息调用请求所对应的调用信息确定为异常调用信息之后,所述方法还包括:
根据所述异常调用信息中的所述服务接口以及所述服务接口方法,在服务白名单中进行遍历;
若遍历到所述异常调用信息中的所述服务接口属于所述服务白名单中的安全服务接口,以及所述服务接口方法属于所述服务白名单中的安全服务接口方法,则将所述信息调用请求确定为安全调用请求,并对所述安全调用请求进行放行。
14.根据权利要求13所述的方法,其特征在于,所述根据异常调用信息中的服务接口以及服务接口方法,在服务白名单中进行遍历之后,所述方法还包括:
若所述异常调用信息中的所述服务接口以及所述服务接口方法不属于所述服务黑名单,且不属于所述服务白名单,则将所述信息调用请求作为待审核调用请求;
将所述待审核调用请求以及所述异常调用信息发送至第三方服务器进行调用审核;
接收所述第三方服务器返回的调用审核结果,并根据所述调用审核结果对所述待审核调用请求进行处理。
15.根据权利要求14所述的方法,其特征在于,所述接收所述第三方服务器返回的调用审核结果,并根据所述调用审核结果对所述待审核调用请求进行处理,包括:
若所述第三方服务器发送的调用审核结果为安全调用,则对所述待审核调用请求进行放行;
若所述第三方服务器发送的调用审核结果为危险调用,则对所述待审核调用请求进行拦截。
16.根据权利要求1所述的方法,其特征在于,所述向远程过程调用服务进程注入过滤模块之后,所述方法还包括:
对所述远程过程调用服务进程中已注册的接口信息进行检测;
若在所述已注册的接口信息中未检测到远程过程调用服务接口信息,则确定所述远程过程调用服务进程不具备远程过程调用服务,并卸载所述过滤模块;
若在所述已注册的接口信息中检测到所述远程过程调用服务接口信息,则确定所述远程过程调用服务进程具备远程过程调用服务,以通过所述远程过程调用服务使用所述过滤模块对所述信息调用请求进行管控。
17.一种远程过程调用的调用管控装置,其特征在于,包括:
处理单元,用于向远程过程调用服务进程注入过滤模块,以通过所述过滤模块对远程过程调用组件进行安全检测;
获取单元,用于当检测到远程过程调用组件接收到信息调用请求时,收集所述远程过程调用组件所对应的调用信息,其中,所述调用信息至少包括传输协议、服务接口以及所述服务接口所对应的服务接口方法;
确定单元,用于根据所述传输协议确定所述信息调用请求所对应的远程客户端通信地址;
所述确定单元,还用于若所述远程客户端通信地址为客户端的非本地地址,则将所述信息调用请求所对应的调用信息确定为异常调用信息;
所述处理单元,还用于若所述异常调用信息中的所述服务接口以及所述服务接口方法中的任一项属于服务黑名单中的敏感服务接口或敏感服务接口方法,则将所述信息调用请求确定为危险调用请求,并对所述危险调用请求进行拦截。
18.一种计算机设备,包括存储器、处理器以及总线系统,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至16中任一项所述的方法的步骤;
所述总线系统用于连接所述存储器以及所述处理器,以使所述存储器以及所述处理器进行通信。
19.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至16中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210375390.5A CN114466053B (zh) | 2022-04-11 | 2022-04-11 | 远程过程调用的调用管控方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210375390.5A CN114466053B (zh) | 2022-04-11 | 2022-04-11 | 远程过程调用的调用管控方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114466053A CN114466053A (zh) | 2022-05-10 |
CN114466053B true CN114466053B (zh) | 2022-07-08 |
Family
ID=81417707
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210375390.5A Active CN114466053B (zh) | 2022-04-11 | 2022-04-11 | 远程过程调用的调用管控方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114466053B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114722403A (zh) * | 2022-05-19 | 2022-07-08 | 北京华云安信息技术有限公司 | 一种远程执行漏洞挖掘方法和装置 |
CN117494117A (zh) * | 2023-11-17 | 2024-02-02 | 北京天融信网络安全技术有限公司 | 一种远程过程调用的跟踪系统及跟踪方法 |
CN117978428B (zh) * | 2023-12-05 | 2024-08-30 | 北京天融信网络安全技术有限公司 | 用于解析wmi客户端进程的方法、装置、处理器及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101039324A (zh) * | 2007-03-12 | 2007-09-19 | 华为技术有限公司 | 一种网络病毒防护方法、系统及装置 |
WO2009033969A1 (en) * | 2007-09-13 | 2009-03-19 | Thomson Licensing | Method and apparatus for digital data storage |
CN102882875A (zh) * | 2012-09-29 | 2013-01-16 | 北京奇虎科技有限公司 | 主动防御方法及装置 |
CN111131221A (zh) * | 2019-12-19 | 2020-05-08 | 中国平安财产保险股份有限公司 | 接口校验的装置、方法及存储介质 |
CN111367684A (zh) * | 2018-12-26 | 2020-07-03 | 北京天融信网络安全技术有限公司 | 一种过滤远程过程调用的方法和装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7047536B1 (en) * | 2000-12-29 | 2006-05-16 | Nortel Networks Ltd | Method and apparatus for classifying remote procedure call transport traffic |
US7171494B2 (en) * | 2001-01-31 | 2007-01-30 | Hewlett-Packard Development Company, L.P. | Extending a standard-based remote file access protocol and maintaining compatibility with a standard protocol stack |
US8555297B1 (en) * | 2008-09-29 | 2013-10-08 | Emc Corporation | Techniques for performing a remote procedure call using remote procedure call configuration information |
-
2022
- 2022-04-11 CN CN202210375390.5A patent/CN114466053B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101039324A (zh) * | 2007-03-12 | 2007-09-19 | 华为技术有限公司 | 一种网络病毒防护方法、系统及装置 |
WO2009033969A1 (en) * | 2007-09-13 | 2009-03-19 | Thomson Licensing | Method and apparatus for digital data storage |
CN102882875A (zh) * | 2012-09-29 | 2013-01-16 | 北京奇虎科技有限公司 | 主动防御方法及装置 |
CN111367684A (zh) * | 2018-12-26 | 2020-07-03 | 北京天融信网络安全技术有限公司 | 一种过滤远程过程调用的方法和装置 |
CN111131221A (zh) * | 2019-12-19 | 2020-05-08 | 中国平安财产保险股份有限公司 | 接口校验的装置、方法及存储介质 |
Non-Patent Citations (1)
Title |
---|
银行客服系统模块设计与实现;高敏等;《软件导刊》(第02期) * |
Also Published As
Publication number | Publication date |
---|---|
CN114466053A (zh) | 2022-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114466053B (zh) | 远程过程调用的调用管控方法、装置、设备及存储介质 | |
US11469976B2 (en) | System and method for cloud-based control-plane event monitor | |
US20210029156A1 (en) | Security monitoring system for internet of things (iot) device environments | |
CN105991595B (zh) | 网络安全防护方法及装置 | |
CN111737696A (zh) | 一种恶意文件检测的方法、系统、设备及可读存储介质 | |
US12058149B2 (en) | Computer investigation method and system | |
US20140304800A1 (en) | Methods and apparatus for agent-based malware management | |
CA2955066C (en) | Method and system for providing a virtual asset perimeter | |
CN112738071B (zh) | 一种攻击链拓扑的构建方法及装置 | |
WO2015073719A1 (en) | Automated sdk ingestion | |
KR101266037B1 (ko) | 휴대단말에서 악성행위 처리 방법 및 장치 | |
CN103891331A (zh) | 移动风险评估 | |
CN105550593A (zh) | 一种基于局域网的云盘文件监控方法和装置 | |
CN111651754A (zh) | 入侵的检测方法和装置、存储介质、电子装置 | |
US9871810B1 (en) | Using tunable metrics for iterative discovery of groups of alert types identifying complex multipart attacks with different properties | |
Singh et al. | Secure cloud networks for connected & automated vehicles | |
CN113472789A (zh) | 一种攻击检测方法、攻击检测系统、存储介质和电子设备 | |
CN109120626A (zh) | 安全威胁处理方法、系统、安全感知服务器及存储介质 | |
Repetto | Adaptive monitoring, detection, and response for agile digital service chains | |
CN108737421B (zh) | 一种发现网络内潜在威胁的方法、系统、装置及存储介质 | |
CN111092886B (zh) | 一种终端防御方法、系统、设备及计算机可读存储介质 | |
CA3122328A1 (en) | A system for, and a method of creating cybersecurity situational awareness, threat detection and risk detection within the internet-of-things space | |
Joseph et al. | Digital Forensics in Distributed Environment | |
CN114338175B (zh) | 数据收集管理系统及数据收集管理方法 | |
US20240283818A1 (en) | Using cross workloads signals to remediate password spraying attacks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40070357 Country of ref document: HK |