CN102710663B - 获取云服务的方法及装置 - Google Patents

获取云服务的方法及装置 Download PDF

Info

Publication number
CN102710663B
CN102710663B CN201210212629.3A CN201210212629A CN102710663B CN 102710663 B CN102710663 B CN 102710663B CN 201210212629 A CN201210212629 A CN 201210212629A CN 102710663 B CN102710663 B CN 102710663B
Authority
CN
China
Prior art keywords
request
layer
network
network equipment
bag
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.)
Expired - Fee Related
Application number
CN201210212629.3A
Other languages
English (en)
Other versions
CN102710663A (zh
Inventor
王宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Qizhi Business Consulting Co ltd
Beijing Qihoo Technology Co Ltd
360 Digital Security Technology Group Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201210212629.3A priority Critical patent/CN102710663B/zh
Publication of CN102710663A publication Critical patent/CN102710663A/zh
Application granted granted Critical
Publication of CN102710663B publication Critical patent/CN102710663B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了获取云服务的方法及装置,其中,所述方法包括:接收调用者进程发出的获取云服务的请求;根据所述请求中携带的参数以及预先获知的网络设备的原始处理地址,构建I/O请求包并建立所述I/O请求包的传输路径;按照建立起的传输路径将所述I/O请求包发送到所述网络设备的原始处理地址,以便所述网络设备将获取云服务的请求发送到云端服务器,并根据所述确定出的传输路径将云端服务器返回的应答信息回传给所述调用者进程。通过本发明,能够在安全领域应用云技术时,增强与恶意程序攻防的对抗能力。

Description

获取云服务的方法及装置
技术领域
本发明涉及计算机技术领域,特别是涉及获取云服务的方法及装置。
背景技术
随着“云技术”越来越多的应用在计算机、互联网领域,信息安全也朝着云端化的方向高速发展。较传统查杀引擎而言,云查杀、云防御等技术方案已渐显其优越性。例如,通过云查杀技术,如果客户端需要对某可执行文件的安全性进行判断,可以直接将该可执行文件的唯一性标识(例如文件的MD5等等)上传到云端,由云端对文件进行识别判断,并将结果返回给客户端,客户端直接接收云端的反馈结果,即可得到对应文件是否安全,等等。
另一方面,由于Windows等操作***通常会借助分层的设计思想来解决复杂的问题,这一做法带来了可移植性、可扩展性等优点,不过,由于在设计理论上存在着安全性缺陷(例如缺乏完整性校验机制等),因此也意味着***存在大量的被篡改可能。在进行云查杀、云防御的过程中,需要网络通信的支持,而网络通信的分层式结构就决定了其链路上存在多个层,每个层对其上层提供接口,对下层进行调用,用户态的网络连接请求会从最上层开始,经过链路上各层逐层进行处理,直到到达网络设备,并最终由网络设备通过TCP/IP等网络协议将网络连接请求发送到云端服务器,当云端服务器进行了相应的处理并返回信息之后,网络设备再以原路返回的形式,将云端服务器返回的信息回传给客户端程序。但是,由于操作***并不会对网络连接链路的完整性进行校验,这也就意味着,第三方可以任意地向链路中加入一些层,或者已有的层的逻辑进行修改等等,而这种加入层或者修改层逻辑的操作,都使得网络连接链路存在被篡改的风险。
正是由于上述特点的存在,使得木马、病毒、驱动级Rootkit有了可乘之机,“阻断云”、“欺骗云”、“篡改云的返回结果”等必将成为今后“云攻防”的发展趋势。例如,一些包含有病毒或者木马等恶意内容的文件为了避免被安全软件检测到,可以通过安装网络过滤驱动等方式,直接把安全软件客户端的网络禁掉,这样客户端就无法将检测该文件安全等级的请求发送到云端。或者还可以篡改云的返回结果,比如某一个文件的查询请求(主要是查询文件的安全等级),如果该文件确实为木马文件,则可以将云返回的结果“这是一个木马程序,需要立即清除”篡改为“这是一个安全的***文件,请放行”,等等。
总之,在依赖云的信息安全领域,“网络连接失败”、“查询结果不可信”等攻击手段对于云安全服务而言是致命的,这意味着安全基石的动摇,查杀体系的瓦解,因此,迫切需要本领域技术人员解决的技术问题就在于,在安全领域应用云技术时,如何增强与恶意程序攻防的对抗能力。
发明内容
本发明提供了获取云服务的方法及装置,能够在安全领域应用云技术时,增强与恶意程序攻防的对抗能力。
本发明提供了如下方案:
一种获取云服务的方法,包括:
接收调用者进程发出的获取云服务的请求;
根据所述请求中携带的参数以及预先获知的网络设备的原始处理地址,构建I/O请求包并建立所述I/O请求包的传输路径;
按照建立起的传输路径将所述I/O请求包发送到所述网络设备的原始处理地址,以便所述网络设备将获取云服务的请求发送到云端服务器,并根据所述确定出的传输路径将云端服务器返回的应答信息回传给所述调用者进程。
可选的,所述建立所述I/O请求包的传输路径包括:
建立将所述I/O请求包发送到网络设备的原始处理地址的传输路径;
所述按照建立起的传输路径将所述I/O请求包发送到所述网络设备的原始处理地址包括:
将所述I/O请求包发送到网络设备的原始处理地址。
可选的,所述请求中携带的参数包括需要流经的层的标识信息,所述建立所述I/O请求包的传输路径包括:
基于所述需要流经的层的标识以及所述网络设备的原始处理地址,建立所述I/O请求包的传输路径;
所述按照建立起的传输路径将所述I/O请求包发送到所述网络设备的原始处理地址包括:
依次调用所述需要流经的层的接口对所述I/O请求包进行处理,并将处理后的I/O请求包发送到网络设备的原始处理地址,由所述网络设备对经由所述需要流经的层处理后的I/O请求包进行处理。
可选的,所述需要流经的层为非自闭的层,所述非自闭的层为穿透之后会造成***功能性缺失的层。
可选的,还包括:
在初始化过程中,获取当前***网络通信链上包括的各个层的唯一性标识信息;
将各个层的唯一性标识信息与预置的白名单中保存的非自闭的层的唯一性标识信息进行比对,将出现在所述白名单中的层标记为当前***网络通信链上存在的非自闭的层,以便调用者进程者在发起获取云服务的请求时,根据该标记的信息确定所述需要流经的层。
可选的,还包括:
基于当前的调用者进程发起网络连接请求;
如果当前的调用者进程不能连接到网络,则基于预先指定的进程进发起网络连接请求;
如果所述预先指定的进程能够连接到网络,则触发执行所述根据所述请求中携带的参数以及预先获知的网络设备的原始处理地址,构建I/O请求包并建立所述I/O请求包的传输路径的步骤。
可选的,还包括:
如果所述当前的调用者进程不能连接到网络,且所述指定的进程能够连接到网络,则向所述当前调用者进程发出异常提示信息。
可选的,所述基于指定的进程进行连接到网络的测试包括:
切换到所述指定的进程进行连接到网络的测试;
或者,
在所述指定的进程中***远程线程,通过该线程进行连接到网络的测试。
可选的,所述预先指定的进程为不同于当前调用者进程的第三方进程。
一种获取云服务的装置,包括:
请求接收单元,用于接收调用者进程发出的获取云服务的请求;
请求包及路径构建单元,用于根据所述请求中携带的参数以及预先获知的网络设备的原始处理地址,构建I/O请求包并建立所述I/O请求包的传输路径;
发送单元,用于按照建立起的传输路径将所述I/O请求包发送到所述网络设备的原始处理地址,以便所述网络设备将获取云服务的请求发送到云端服务器,并根据所述确定出的传输路径将云端服务器返回的应答信息回传给所述调用者进程。
可选的,所述请求包及路径构建单元包括:
第一路径建立子单元,用于建立将所述I/O请求包发送到网络设备的原始处理地址的传输路径;
所述发送单元包括:
第一发送子单元,用于将所述I/O请求包发送到网络设备的原始处理地址。
可选的,所述请求中携带的参数包括需要流经的层的标识信息,所述请求包及路径构建单元包括:
第二路径建立子单元,用于基于所述需要流经的层的标识以及所述网络设备的原始处理地址,建立所述I/O请求包的传输路径;
所述发送单元包括:
第二发送子单元,用于依次调用所述需要流经的层的接口对所述I/O请求包进行处理,并将处理后的I/O请求包发送到网络设备的原始处理地址,由所述网络设备对经由所述需要流经的层处理后的I/O请求包进行处理。
可选的,所述需要流经的层为非自闭的层,所述非自闭的层为穿透之后会造成***功能性缺失的层。
可选的,还包括:
层标识获取单元,用于在初始化过程中,获取当前***网络通信链上包括的各个层的唯一性标识信息;
标记单元,用于将各个层的唯一性标识信息与预置的白名单中保存的非自闭的层的唯一性标识信息进行比对,将出现在所述白名单中的层标记为当前***网络通信链上存在的非自闭的层,以便调用者进程者在发起获取云服务的请求时,根据该标记的信息确定所述需要流经的层。
可选的,还包括:
第一连网请求单元,用于基于当前的调用者进程发起网络连接请求;
第二连网请求单元,用于如果当前的调用者进程不能连接到网络,则基于预先指定的进程发起网络连接请求;
触发单元,用于如果所述预先指定的进程能够连接到网络,则触发执行所述根据所述请求中携带的参数以及预先获知的网络设备的原始处理地址,构建I/O请求包并建立所述I/O请求包的传输路径的步骤。
可选的,还包括:
提示单元,用于如果所述当前的调用者进程不能连接到网络,且所述指定的进程能够连接到网络,则向所述当前调用者进程发出异常提示信息。
可选的,所述第二连网请求单元包括:
进程切换子单元,用于切换到所述指定的进程进行连接到网络的测试;
或者,
线程***子单元,用于在所述指定的进程中***远程线程,通过该线程进行连接到网络的测试。
可选的,所述预先指定的进程为不同于当前调用者进程的第三方进程。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
通过本发明,能够为获取云服务的请求建立起一条可信的传输路径,使得传统的网络通信链路被旁路,这样,对于原有的一些可能会进程网络劫持操作的第三方网络过滤驱动而言,由于I/O请求包及云服务器的处理结果都不会流经这些层,因此,就避免了遭受这些驱动的攻击,进而使得调用者能够成功获取到云服务,增强与恶意程序攻防的对抗能力。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的方法的流程图;
图2是本发明实施例提供的方法中的一示意图;
图3是本发明实施例提供的装置的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例中,为了能够在安全领域应用云技术时,增强安全软件与恶意程序攻防的对抗能力,主要采用的方式是:假设操作***中原有的网络通信链路是不安全的,因此,在获取云服务的请求到来时,可以另外建立一条新的、可信的链路,通过该新建的链路去连接网络,并获取云服务器的数据。也就是说,获取云服务的请求不再经过原有网络通信链路上内核态的各个层,而是直接通过一条可信的通道到达网络设备的原始处理地址,相当于在获取云服务的过程中,将网络通信原有的链路作为旁路,形象地讲,可以将这个过程称为“网络穿透”。具体的,为了实现“网络穿透”功能,可以提供一套专用于网络穿透的程序,这套程序可以包括用户态接口(例如DLL(Dynamic LinkLibrary,动态链接库))以及内核态驱动程序。其中,在用户态部分,可以为调用者提供一套完整的网络操作调用库(或称函数或接口,是某个***对外提供的功能接口或服务的统称),该调用库中的函数与操作***中定义的API函数完全兼容。在内核态驱动程序,相当于提供了一个网络穿透驱动程序,调用者通过调用在用户态定义的网络操作调用库,用户态的请求会发送到该网络穿透驱动程序,由该网络穿透驱动程序执行后续的处理。其中,可以通过一些控制码定义用户态和内核态驱动通信时的统一标识。通信的输入、输出缓冲区可以采用METHOD_BUFFERED方式传输。通信结构兼容32位、64位以及32位兼容模式。
在具体实现时,可以加载上述提供的一套网络操作调用库,这样,调用者在发起获取云服务的请求时,就可以调用网络穿透程序中提供的网络操作接口,相应的,网络穿透程序的内核态驱动程序就可以接收到调用者发出的获取云服务的请求。接下来,网络穿透程序的内核态驱动程序就可以执行网络穿透的操作。具体的,参见图1,通过网络穿透程序获取云服务的方法可以包括以下步骤:
S101:接收调用者进程发出的获取云服务的请求;
调用者可以是安全软件等,其发出的获取云服务的请求,可以是指云查杀请求、云防御请求等等。其中,调用者进程可以通过调用前文所述的网络穿透程序提供的相关的网络操作接口来发起请求,进而就可以将该请求发送到网络穿透程序的内核态驱动程序,为便于描述,将该网络穿透程序的内核态驱动程序称为网络穿透驱动程序。因此,该步骤S101以及后续步骤的执行主体都可以是该运行在操作***内核中的网络穿透驱动程序。
S102:根据所述请求中携带的参数以及预先获知的网络设备的原始处理地址,构建I/O请求包并建立所述I/O请求包的传输路径;
一般情况下,请求中携带的参数可以包括需要连接的云服务器的地址、连接的超时时间、连接的端口号等等,网络穿透驱动程序可以根据这些信息构建I/O请求包。其中,在Windows操作***家族中,一般都是通过发送IRP(I/ORequest Packet,I/O请求包)来进行与驱动程序的通讯。用来封装IRP的数据结构不仅仅用来描述一个I/O操作的请求本身的内容,还要用来维护这一请求在一系列驱动程序中传递的过程中的相关状态信息。也就是说IRP可以被定义为:是I/O***为了处理一个I/O请求而用来存储必要信息的地方。当一个线程调用一个I/O服务的时候,I/O管理器构造IRP,用于在I/O***处理此请求的过程中代表此请求。因此,在网络穿透的内核态中,同样需要构造一个I/O请求包,在该I/O请求包中可以填充需要流经的层以及网络设备的原始处理地址。填充需要流经的层以及网络设备的原始处理地址时,就相当于为I/O请求包建立一条传输路径,通过该路径将I/O请求包传输到网络设备的原始处理地址处。
需要说明的是,在传统的实现方式中,背景技术中提到的网络通信链路上的各个层就构成了该传输路径上的各个节点,也即,在构建了I/O请求包之后,会依此调用通信链路上的各个层对这个I/O请求包进行处理,最终发送到网络设备的原始处理地址处,再由网络设备将调用者的请求发送到对应的云服务器。云服务器在处理完调用者的请求之后,会返回处理结果,处理结果首先到达网络设备,该网络设备又会逐层调用通信链路上的各个层,直到云服务器的处理结果被发送到调用者位置。一般情况下,就是在I/O请求包以及云服务器的处理结果在流经通信链路上的各个层的过程中,容易受到恶意程序的劫持。
而在本发明实施例中,在网络穿透驱动程序接收到调用者的获取云服务请求之后,是重新建立了一条传输路径,从而使得传统方式中路径上的各个层(其中可能包括用于进行网络劫持的第三方网络过滤驱动)被旁路,这样,无论是I/O请求包被发送到网络设备原始处理地址,还是将云服务器返回的处理结果发送到调用者,都可以通过该路径来完成,这样,就可以避免受到第三方网络过滤驱动的攻击,使得调用者能够成功获取到云服务。
在一般情况下,本发明实施例重新创建的传输路径可以是直接将I/O请求包发送到网络设备的原始处理地址(该地址可以是在对网络穿透程序进行初始化时获取到的),这样,云服务器返回的处理结果也会直接从网络设备发送给网络穿透驱动程序,并最终返回给调用者进程。也就是说,可以将网络通信调用链路上的全部第三方网络过滤驱动都穿透。
但在实际应用中,如果直接将全部的第三方网络过滤驱动都穿透,可能会出现一些问题。本发明人在实现本发明的过程中发现,网络穿透执行的前提一般是:被穿透的层是“自闭的”,也即穿透这些层时不会对***造成功能性的缺失。例如某些层就是第三方程序为了监听***状态而加入的驱动,则穿透这种层时,并不会出错。但是在实际应用中,有些层却不是“自闭的”,例如,假设被穿透的目标是“网络认证过滤驱动”,而该驱动的作用是:针对当前用户的机器,如果想要连网,则一定要先进行认证、审计等,如果直接将这种驱动穿透,则相当于当前用户的机器没有经常认证、审计就连接到了网络,这显然是不合理的。可见,对于网络通信链路上存在的非自闭的层,不应该穿透。
为此,在本发明实施例中,还可以实现分层的网络穿透,也即,在调用者发起获取云服务的请求时,可以指定哪些层是不需要穿透的,也即哪些层是需要流经的,这样,在建立I/O请求包的传输路径时,就可以将这些需要流经的层加入到传输路径中来,使得I/O请求包经过这些层的处理之后,再到达网络设备的原始处理地址处。相应的,当云端返回应答信息之后,也会分别流经这些层,最终再到达调用者。例如,如果不需要穿透的层是“网络认证过滤驱动”,则当I/O请求包到达该层时,需要先由该层中的驱动程序对用户机器进行认证、审计操作,如果没有通过认证,则可能会停止I/O请求包的转发,只有在认证、审计都通过之后,才会转发到网络设备的原始地址,等等。
具体实现时,网络穿透程序的用户态部分还可以导出SetWorkingMode例程,这个例程可让调用者指定穿透强度,也即调用者在需要对获取云服务时,可以通过SetWorkingMode例程指定需要穿透哪些层,或者不需要穿透哪些层,以便实现有选择性的分层网络穿透。
其中,不同的用户环境中,根据用户安装的程序的不同,网络通信链路上包含的层会有所不同,因此,为了让调用者能够区分出需要对哪些层进行穿透哪些层不进行穿透,在具体实现时,可以在对网络穿透程序进行初始化时,获取到网络通信链路上存在哪些层,同时可以以预先获知的白名单(可以根据经验进行设置,其中保存了哪些层属于非自闭的层)等方式,标识出这些层中是否存在非自闭的层,如果存在,具体哪个或哪些层属于这类非自闭的层,等等。将这些信息提供给调用者,这样,调用者在需要获取云服务时,就可以根据网络穿透程序提供的上述信息来指定穿透强度。其中,由于每个层对应的一般都是驱动程序,而驱动程序从本质上讲也是文件,一般也具有自己的文件名或者MD5值等能够唯一标识该层的一些信息,因此,在白名单中保存非自闭的层时,可以用这些唯一性标识信息来代表这类的层。相应的,在查询网络通信链路上存在哪些层时,同样可以去获取网络通信链路上的各个层的唯一性标识信息,然后与白名单中记载的信息进行比对,将匹配成功的结果取出,标记为当前用户环境中存在的非自闭的层即可。当然,如果用户安装了新的驱动程序等,则可能会导致网络通信链路的变化,因此,网络穿透程序在初始化之后,还可以对网络通信链路进行监控,如果发生变化,例如增加了新的层时,同样可以获取到该层的唯一性标识信息,然后与白名单中的信息进行比对,如果匹配成功,则可以对网络通信链路中包含的非自闭层的信息进行更新。
调用者在获取云服务的请求中携带穿透强度信息时,可以有多种实现方式。例如,可以在原有的获取云服务的请求格式基础上扩展出几个字段,用于携带不需要穿透的层。这样,调用者在发起某次获取云服务的请求时,在根据网络穿透程序提供的网络通信链路上各层的信息,确定出不需要穿透的层之后,就可以直接在扩展的字段中***不需要穿透的层的标识,这样,网络穿透程序在接收到调用者的获取云服务的请求之后,就可以从请求对应的字段中提取出不需要穿透的层的标识。当然,在实际应用中,如果在某链路上,不需要穿透的层的数目大于需要穿透的层的数目,则还可以在请求中携带需要穿透的层的标识,网络穿透程序在接收到获取云服务的请求,解析出对应字段上的层标识之后,可以将网络通信链路上除了解析出的这些层之外的层作为不需要穿透的层。当然,无论在请求中携带的是需要穿透的层还是不需要穿透的层,都需要预先在网络穿透程序与调用者之间进行协商,以便网络穿透程序能够正确地解析出调用者的意图。
或者,在另一种实现方式下,还可以在获取到网络通信链路中包含哪些非自闭的层之后,预先对各种可能出现的穿透强度进行穷举,分别给出一个穿透强度级别标识。也就是说,每一个穿透强度级别标识对应着一组不需要穿透的层,网络穿透程序可以将定义好的各个穿透强度级别标识及其对应的不需要穿透的层信息提供给调用者。这样,调用者在发起一次文件操作请求时,可以首先确定好不需要穿透哪些层,然后可以找到对应的穿透强度级别标识,在文件操作请求中携带该标识即可。可见,在这种方式下,即使不需要穿透的层有多个,也不需要分别携带上各个层的标识,只需要携带一个穿透强度级别标识即可。
例如,网络通信链路上包括A、B、C、D、E这几个网络过滤驱动,其中A、C、E都是非自闭的层,此时可以预先定义八个穿透强度级别。其中,假设第一个穿透强度级别的标识为“穿透强度一”,其对应的穿透强度可以为:A、C、E这几层都不需要穿透;第二个穿透强度级别的标识为“穿透强度二”,其对应的穿透强度可以为:A、C这两层不需要穿透;假设第三个穿透强度级别的标识为“穿透强度三”,其对应的穿透强度可以为:C、E这两层不需要穿透;第四个穿透强度级别的标识为“穿透强度四”,其对应的穿透强度可以为:A、E这两层不需要穿透;第五个穿透强度级别的标识为“穿透强度五”,其对应的穿透强度可以为:A层不需要穿透;第六个穿透强度级别的标识为“穿透强度六”,其对应的穿透强度可以为:C层不需要穿透;第七个穿透强度级别的标识为“穿透强度七”,其对应的穿透强度可以为:E层不需要穿透;第八个穿透强度级别的标识为“穿透强度八”,其对应的穿透强度可以为:所有的层都需要穿透。如果某调用者在发起某次获取云服务的请求时,需要对A、C这两层不进行穿透,则可以在获取云服务的请求中携带“穿透强度二”这一穿透强度级别标识;网络穿透程序在接收到获取云服务的请求之后,根据预先定义的级别标识与各个不需要穿透的层之间的对应关系,即可获知不需要穿透的层有哪些。当然,在实际应用中,每个穿透强度标识也可以与一组需要穿透的层的标识相对应,这样,网络穿透程序在接收到获取云服务的请求时,就可以首先根据请求中携带的穿透强度标识确定出需要穿透的层,然后从链路包含的所有层中除去这些需要穿透的层,就得到不需要穿透的层。
需要说明的是,虽然新建立的网络通信链路上仍然可能会包含有一些第三方网络过滤驱动,但是,这种不需要穿透的层(也即I/O请求包需要流经的层)是由网络穿透程序据预先建立的白名单选择出来的,白名单中的信息可以看作是经过验证的、可信的、安全的过滤驱动,因此,不会由于没有穿透这种过滤驱动,而遭受网络劫持。
S103:按照建立起的传输路径将所述I/O请求包发送到所述网络设备的原始处理地址,以便所述网络设备将获取云服务的请求包发送到云端服务器,并根据所述确定出的传输路径将云端服务器返回的应答信息回传给所述调用者进程。
如果S102中建立起的传输路径上不包含第三方网络过滤驱动,则该I/O请求包就会直接被发送到网络设备的原始处理地址处;如果S102中建立起的传输路径上还包含有需要流经的第三方网络过滤驱动,则I/O请求包就会首先被发送到这种需要流经的第三方网络过滤驱动进行处理,然后到达网络设备的原始处理地址处。到达网络设备的原始处理地址处之后,就可以通过TCP/IP等网络协议将获取云服务的请求发送到云服务器,由云服务器对请求进行处理,并返回处理结果。云服务器返回的处理结果会按照原来传输的路径返回到调用者进程。也就是说,云服务器返回的处理结果在到达网络设备之后,也会按照本发明实施例在步骤S102中建立起的路径进行传送,因此,同样可以避开第三方网络过滤驱动的攻击。
总之,在本发明实施例中,能够为获取云服务的请求建立起一条可信的传输路径,使得网络通信链路上一些可能会进程网络劫持操作的第三方网络过滤驱动被旁路,进而使得调用者能够成功获取到云服务,增强与恶意程序攻防的对抗能力。
在前述实施例中,网络穿透驱动程序在接收到调用者的获取云服务的请求之后,就直接进行网络穿透,以使得调用者成功获取到云服务。而在实际应用中,还可能存在以下情况:有一些恶意程序为了更好地隐藏自己,会使一些特殊的手段——让安全软件的进程连接不了网络,而其他的所有进程都可以连网(即有区别的断网)。这个时候,用户往往很难感知,也即用户感觉到的是自己上网是正常的,下载、浏览网页等都没问题,还能登陆即时通信软件,那么安全软件应该也是正常的(能正确扫描),但实际上安全软件可能已经无法连接到网络了,也即,用户的机器已经无法得到安全软件的保护了。
针对上述特点可知,通过检测当前的进程以及其他的进程是否能够连接到网络,一般能够判断出是否存在专门针对当前调用者进程(例如安全软件的进程)的攻击,如果存在,则可以通过网络穿透的方式向云服务器发送获取云服务的请求,否则,则可以通过传统的方式来发送。具体在判断***中是否存在专门针对当前调用者进程的攻击时,可以采用以下方式来进行:在接收到当前调用者进程获取云服务的请求时,首先以当前调用者进程的身份发起连网请求,判断是否连网成功,如果成功,则可以采用传统的方式向来获取云服务;如果不成功,则基于指定的进程来进行连网尝试,如果连网成功,则证明***中可能存在专门针对当前调用者进程的攻击,因此,可以采用网络穿透的方式来为当前调用者获取云服务。
其中,在基于指定的进程进行连网尝试时,该指定的进程可以是不同于当前调用者进程的任意第三方进程,在具体实现时,该第三方进程可以是任意选择的,例如可以是explore.exe,等等;并且可以一个也可以是多个,具体实现时,可以由当前调用者在发起请求时指定。或者,还可以根据一定的策略进行选择,例如首先枚举***存在哪些进程,然后进行随机挑选出一定数目的进程(例如2-3个),挑选过程往往还有些策略,比如即时通信工具、操作***自带的网页浏览器等“网络密集使用的进程”会被优先选择;其他的网页浏览器、svchost等会被次先选择。其中,svchost是一个属于Windows操作***的***程序,是从动态链接库中运行的服务的通用主机进程。
具体在基于指定的进程来进程连网测试时,可以有多种实现方式。例如,其中一种方式可以是,直接从当前调用者进程切换到该指定的进程,在该指定进程中发起连网请求;或者,也可以不必进行进程的切换,而是直接在指定进程中***一个线程,该线程发起连网请求,也就相当于是以该指定进程的身份发起的连网请求。需要说明的是,无论是切换进程还是向进程中***远程线程,都需要执行者有较高的权限,而在本发明实施例中,该执行者可以是前文所述的网络穿透驱动程序,由于该驱动本身是运行在***内核层的程序,因此具有***远程线程这种权限,能够执行切换进程或者向进程中***远程线程的操作。
另外,在具体实现时,如果出现当前调用者进程无法连接到网络而其他进程却能够连接到网络的情况,还可以向当前调用者进程发出提示信息(例如“你已经被断网!你的生存环境很恶劣,有木马在有针对性地攻击你”等等),当前调用者进程还可以据此提示进行一些相应的处理等操作。
为了更好地理解本发明实施例提供的获取云服务的方法,下面以网络连接过程为例,并结合图2,进行详细地介绍。
步骤一:调用者进程(如安全软件进程)发起connect网络连接请求;
步骤二:应用层接口(如BapiConnect例程)判断***平台构建结构参数,发送控制码BAPI_NETWORK_CONNECT至内核并异步返回,本次调用的超时时间可由调用者进程指定;其中,***平台的构建结构参数可以包括32位、64位或32位兼容模式等。
步骤三:BapiConnect例程的内核部分接收用户态请求,校验输入参数,捕获用户态地址到内核内存空间;
步骤四:可选步骤:使用当前调用者进程的身份进行连网尝试,如果不能成功,则切换到指定的进程空间,或给指定进程***远程线程,以实现以指定进程的身份进行连网尝试,如果成功,则可以向当前调用者进程发出提示信息,并进入步骤五。
步骤五:BapiConnect例程的内核部分构建并填充I/O请求数据包,并将I/O请求数据包发送至网络设备的原始处理地址处,此时,网络通信调用链路上的第三方网络过滤驱动(其他安全软件、驱动级恶意程序)被旁路。
步骤六:内核异步调用返回用户态信息以及调用结果。如果调用失败,用户态接口可以设置相应的错误码,这样,调用者进程可以通过相应的例程(如GetLastError)得到详细的错误信息。
同时,从图2中可以看出,本发明实施例相当于在操作***用户态的网络API(Application Programming Interface,应用程序编程接口)接口层提供了一套网络操作调用库,在操作***内核态的TDI(Transport DriverInterface,传输层驱动程序接口)客户端层,进行操作***平台的判断、参数校验以及构建I/O请求包等操作,并且,在可选的情况下,还可以进行改变调用者身份的连网测试等;接下来,对于操作***内核态的TDI层及其过滤驱动,通过网络穿透驱动程序执行穿透,使得这些层被旁路,构建的I/O请求包通过另一条可靠的链路发送到网络设备的原始处理地址处,然后由网络设备将调用者的请求经过NDIS(Network Driver Interface Specification,网络驱动程序接口规范)层及其下层结构以及网卡等物理设备发送到云服务器。
需要说明的是,对于本发明实施例中所述的分层穿透的情形,图2中并未示出,但可以理解的是,所谓的分层穿透就相当于图2中的过滤驱动1至过滤驱动N中的某一层或者某几个层存在不需要被穿透的可能,此时,I/O请求包需要在流经部分网络过滤驱动之后,到达网络设备原始处理地址。
与本发明实施例提供的获取云服务的方法相对应,本发明实施例还提供了一种获取云服务的装置,参见图3,该装置包括:
请求接收单元301,用于接收调用者进程发出的获取云服务的请求;
请求包及路径构建单元302,用于根据所述请求中携带的参数以及预先获知的网络设备的原始处理地址,构建I/O请求包并建立所述I/O请求包的传输路径;
发送单元303,用于按照建立起的传输路径将所述I/O请求包发送到所述网络设备的原始处理地址,以便所述网络设备将获取云服务的请求发送到云端服务器,并根据所述确定出的传输路径将云端服务器返回的应答信息回传给所述调用者进程。
具体实现时,请求包及路径构建单元302可以包括:
第一路径建立子单元,用于建立将所述I/O请求包发送到网络设备的原始处理地址的传输路径;
此时,发送单元303具体可以包括:
第一发送子单元,用于将所述I/O请求包发送到网络设备的原始处理地址。
或者,在另一种实现方式下,也可以实现分层的网络穿透,此时,所述获取云服务的请求中携带的参数还可以包括需要流经的层的标识信息,此时,请求包及路径构建单元302具体可以包括:
第二路径建立子单元,用于基于所述需要流经的层的标识以及所述网络设备的原始处理地址,建立所述I/O请求包的传输路径;
相应的,发送单元303可以包括:
第二发送子单元,用于依次调用所述需要流经的层的接口对所述I/O请求包进行处理,并将处理后的I/O请求包发送到网络设备的原始处理地址,由所述网络设备对经由所述需要流经的层处理后的I/O请求包进行处理。
其中,所述需要流经的层为非自闭的层,所述非自闭的层为穿透之后会造成***功能性缺失的层。
具体实现时,该装置还可以包括:
层标识获取单元,用于在初始化过程中,获取当前***网络通信链上包括的各个层的唯一性标识信息;
标记单元,用于将各个层的唯一性标识信息与预置的白名单中保存的非自闭的层的唯一性标识信息进行比对,将出现在所述白名单中的层标记为当前***网络通信链上存在的非自闭的层,以便调用者进程者在发起获取云服务的请求时,根据该标记的信息确定所述需要流经的层。
在实际应用中,为了更好地应对专门针对安全软件等调用者进程的攻击,该装置还可以包括:
第一连网请求单元,用于基于当前的调用者进程发起网络连接请求;
第二连网请求单元,用于如果当前的调用者进程不能连接到网络,则基于预先指定的进程发起网络连接请求;
触发单元,用于如果所述预先指定的进程能够连接到网络,则触发执行所述根据所述请求中携带的参数以及预先获知的网络设备的原始处理地址,构建I/O请求包并建立所述I/O请求包的传输路径的步骤。
此时,该装置还可以包括:
提示单元,用于如果所述当前的调用者进程不能连接到网络,且所述指定的进程能够连接到网络,则向所述当前调用者进程发出异常提示信息。
其中,所述第二连网请求单元具体可以包括:
进程切换子单元,用于切换到所述指定的进程进行连接到网络的测试;
或者,
线程***子单元,用于在所述指定的进程中***远程线程,通过该线程进行连接到网络的测试。
在本发明实施例提供的上述获取云服务的装置中,能够为获取云服务的请求建立起一条可信的传输路径,使得传统的网络通信链路被旁路,这样,对于原有的一些可能会进程网络劫持操作的第三方网络过滤驱动而言,由于I/O请求包及云服务器的处理结果都不会流经这些层,因此,就避免了遭受这些驱动的攻击,进而使得调用者能够成功获取到云服务,增强与恶意程序攻防的对抗能力。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置或***实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及***实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上对本发明所提供的获取云服务的方法及装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

Claims (12)

1.一种获取云服务的方法,其特征在于,包括:
接收调用者进程发出的获取云服务的请求,所述请求中携带有需要流经的层的标识信息,所述需要流经的层为非自闭的层,所述非自闭的层为穿透之后会造成***功能性缺失的层;
根据所述标识信息以及预先获知的网络设备的原始处理地址,构建I/O请求包,并且,基于所述需要流经的层的标识以及所述网络设备的原始处理地址,建立所述I/O请求包的传输路径;
依次调用所述需要流经的层的接口对所述I/O请求包进行处理,并将处理后的I/O请求包发送到网络设备的原始处理地址,由所述网络设备对经由所述需要流经的层处理后的I/O请求包进行处理,以便所述网络设备将获取云服务的请求发送到云端服务器,并根据所述确定出的传输路径将云端服务器返回的应答信息回传给所述调用者进程;
所述方法还包括:在初始化过程中,获取当前***网络通信链上包括的各个层的唯一性标识信息;将各个层的唯一性标识信息与预置的白名单中保存的非自闭的层的唯一性标识信息进行比对,将出现在所述白名单中的层标记为当前***网络通信链上存在的非自闭的层,以便调用者进程者在发起获取云服务的请求时,根据该标记的信息确定所述需要流经的层。
2.根据权利要求1所述的方法,其特征在于,所述建立所述I/O请求包的传输路径包括:
建立将所述I/O请求包发送到网络设备的原始处理地址的传输路径;
所述按照建立起的传输路径将所述I/O请求包发送到所述网络设备的原始处理地址包括:
将所述I/O请求包发送到网络设备的原始处理地址。
3.根据权利要求1所述的方法,其特征在于,还包括:
基于当前的调用者进程发起网络连接请求;
如果当前的调用者进程不能连接到网络,则基于预先指定的进程进发起网络连接请求;
如果所述预先指定的进程能够连接到网络,则触发执行所述根据所述请求中携带的参数以及预先获知的网络设备的原始处理地址,构建I/O请求包并建立所述I/O请求包的传输路径的步骤。
4.根据权利要求3所述的方法,其特征在于,还包括:
如果所述当前的调用者进程不能连接到网络,且所述指定的进程能够连接到网络,则向所述当前调用者进程发出异常提示信息。
5.根据权利要求3所述的方法,其特征在于,所述基于指定的进程进行连接到网络的测试包括:
切换到所述指定的进程进行连接到网络的测试;
或者,
在所述指定的进程中***远程线程,通过该线程进行连接到网络的测试。
6.根据权利要求3至5任一项所述的方法,其特征在于,所述预先指定的进程为不同于当前调用者进程的第三方进程。
7.一种获取云服务的装置,其特征在于,包括:
请求接收单元,用于接收调用者进程发出的获取云服务的请求,所述请求中携带有需要流经的层的标识信息,所述需要流经的层为非自闭的层,所述非自闭的层为穿透之后会造成***功能性缺失的层;
请求包及路径构建单元,用于根据所述请求中携带的参数以及预先获知的网络设备的原始处理地址,构建I/O请求包并建立所述I/O请求包的传输路径;
发送单元,用于按照建立起的传输路径将所述I/O请求包发送到所述网络设备的原始处理地址,以便所述网络设备将获取云服务的请求发送到云端服务器,并根据所述确定出的传输路径将云端服务器返回的应答信息回传给所述调用者进程;
所述请求中携带的参数包括需要流经的层的标识信息,所述请求包及路径构建单元包括:
第二路径建立子单元,用于基于所述需要流经的层的标识以及所述网络设备的原始处理地址,建立所述I/O请求包的传输路径;
所述发送单元包括:
第二发送子单元,用于依次调用所述需要流经的层的接口对所述I/O请求包进行处理,并将处理后的I/O请求包发送到网络设备的原始处理地址,由所述网络设备对经由所述需要流经的层处理后的I/O请求包进行处理;
所述装置还包括:
层标识获取单元,用于在初始化过程中,获取当前***网络通信链上包括的各个层的唯一性标识信息;
标记单元,用于将各个层的唯一性标识信息与预置的白名单中保存的非自闭的层的唯一性标识信息进行比对,将出现在所述白名单中的层标记为当前***网络通信链上存在的非自闭的层,以便调用者进程者在发起获取云服务的请求时,根据该标记的信息确定所述需要流经的层。
8.根据权利要求7所述的装置,其特征在于,所述请求包及路径构建单元包括:
第一路径建立子单元,用于建立将所述I/O请求包发送到网络设备的原始处理地址的传输路径;
所述发送单元包括:
第一发送子单元,用于将所述I/O请求包发送到网络设备的原始处理地址。
9.根据权利要求7所述的装置,其特征在于,还包括:
第一连网请求单元,用于基于当前的调用者进程发起网络连接请求;
第二连网请求单元,用于如果当前的调用者进程不能连接到网络,则基于预先指定的进程发起网络连接请求;
触发单元,用于如果所述预先指定的进程能够连接到网络,则触发执行所述根据所述请求中携带的参数以及预先获知的网络设备的原始处理地址,构建I/O请求包并建立所述I/O请求包的传输路径的步骤。
10.根据权利要求9所述的装置,其特征在于,还包括:
提示单元,用于如果所述当前的调用者进程不能连接到网络,且所述指定的进程能够连接到网络,则向所述当前调用者进程发出异常提示信息。
11.根据权利要求9所述的装置,其特征在于,所述第二连网请求单元包括:
进程切换子单元,用于切换到所述指定的进程进行连接到网络的测试;
或者,
线程***子单元,用于在所述指定的进程中***远程线程,通过该线程进行连接到网络的测试。
12.根据权利要求9至11任一项所述的装置,其特征在于,所述预先指定的进程为不同于当前调用者进程的第三方进程。
CN201210212629.3A 2012-06-21 2012-06-21 获取云服务的方法及装置 Expired - Fee Related CN102710663B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210212629.3A CN102710663B (zh) 2012-06-21 2012-06-21 获取云服务的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210212629.3A CN102710663B (zh) 2012-06-21 2012-06-21 获取云服务的方法及装置

Publications (2)

Publication Number Publication Date
CN102710663A CN102710663A (zh) 2012-10-03
CN102710663B true CN102710663B (zh) 2015-01-07

Family

ID=46903216

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210212629.3A Expired - Fee Related CN102710663B (zh) 2012-06-21 2012-06-21 获取云服务的方法及装置

Country Status (1)

Country Link
CN (1) CN102710663B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103795677B (zh) * 2012-10-23 2015-03-04 腾讯科技(深圳)有限公司 确保安全软件客户端连接云端可靠性的方法和客户端
CN102984146A (zh) * 2012-11-23 2013-03-20 江苏乐买到网络科技有限公司 用于云计算的数据管理方法
CN102984002B (zh) * 2012-11-27 2015-05-06 华为技术有限公司 一种处理i/o超时的方法和装置
CN104219316B (zh) * 2014-09-12 2018-03-23 微梦创科网络科技(中国)有限公司 一种分布式***中的调用请求处理方法及装置
CN106936659B (zh) * 2015-12-30 2020-02-14 华为技术有限公司 一种公有云的拨测方法和装置
CN108366074B (zh) * 2018-03-08 2021-02-05 北京明朝万达科技股份有限公司 一种网络数据包防劫持方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1156762C (zh) * 2001-12-04 2004-07-07 上海复旦光华信息科技股份有限公司 旁路式拒绝服务攻击的侦测与缓解的方法
CN101695038A (zh) * 2009-10-27 2010-04-14 联想网御科技(北京)有限公司 检测ssl加密数据安全性的方法及装置
CN102209073B (zh) * 2011-05-20 2014-12-24 深圳市超视科技有限公司 基于物联网的Linux运营级综合安防管理平台

Also Published As

Publication number Publication date
CN102710663A (zh) 2012-10-03

Similar Documents

Publication Publication Date Title
CN102710663B (zh) 获取云服务的方法及装置
US7293281B1 (en) Method and system for verifying a client request
EP3139548B1 (en) High assurance segregated gateway interconnecting different domains
US20090217353A1 (en) Method, system and device for network access control supporting quarantine mode
CN104270472B (zh) 一种远程服务调用方法、装置及***
CN104539584B (zh) 浏览器防注入方法、浏览器客户端和装置
CN109766700A (zh) 访问文件的控制方法及装置、存储介质、电子装置
CN106778243B (zh) 基于虚拟机的内核漏洞检测文件保护方法及装置
EP2916511B1 (en) High assurance security gateway interconnecting different domains
US8548998B2 (en) Methods and systems for securing and protecting repositories and directories
CN103618719B (zh) 云服务身份认证方法及设备
CN101141303A (zh) 一种网络管理***中的客户端升级方法、服务器、客户端
CN106778244B (zh) 基于虚拟机的内核漏洞检测进程保护方法及装置
CN113138836B (zh) 一种使用基于Docker容器的防逃逸***的防逃逸方法
CN106778242B (zh) 基于虚拟机的内核漏洞检测方法及装置
CN105631334A (zh) 应用的安全检测处理方法和***
KR102002517B1 (ko) 전자식 제어기 보안 기능 설정 방법 및 시스템
CN104852919A (zh) 实现门户Portal认证的方法及装置
CN113360475B (zh) 基于内网终端的数据运维方法、装置、设备及存储介质
CN103646081B (zh) 一种在网页中进行登录的方法和装置
CN109660504A (zh) 用于控制对企业网络的访问的***和方法
CN109587175A (zh) 一种非法外联处理方法及***
CN107566329A (zh) 一种访问控制方法及装置
CN105704154B (zh) 一种基于RESTful的服务处理方法、装置及***
CN112398857A (zh) 防火墙测试方法、装置、计算机设备和存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
ASS Succession or assignment of patent right

Owner name: BEIJING QIHU TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: QIZHI SOFTWARE (BEIJING) CO., LTD.

Effective date: 20121017

Owner name: QIZHI SOFTWARE (BEIJING) CO., LTD.

Effective date: 20121017

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 100016 CHAOYANG, BEIJING TO: 100088 XICHENG, BEIJING

TA01 Transfer of patent application right

Effective date of registration: 20121017

Address after: 100088 Beijing city Xicheng District xinjiekouwai Street 28, block D room 112 (Desheng Park)

Applicant after: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Applicant after: Qizhi software (Beijing) Co.,Ltd.

Address before: The 4 layer 100016 unit of Beijing city Chaoyang District Jiuxianqiao Road No. 14 Building C

Applicant before: Qizhi software (Beijing) Co.,Ltd.

C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee after: Beijing Qizhi Business Consulting Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee before: Qizhi software (Beijing) Co.,Ltd.

TR01 Transfer of patent right

Effective date of registration: 20220330

Address after: 100016 1773, 15 / F, 17 / F, building 3, No.10, Jiuxianqiao Road, Chaoyang District, Beijing

Patentee after: Sanliu0 Digital Security Technology Group Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee before: Beijing Qizhi Business Consulting Co.,Ltd.

TR01 Transfer of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150107