CN112910917B - 网络隔离方法、装置、设备及可读存储介质 - Google Patents
网络隔离方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN112910917B CN112910917B CN202110215299.2A CN202110215299A CN112910917B CN 112910917 B CN112910917 B CN 112910917B CN 202110215299 A CN202110215299 A CN 202110215299A CN 112910917 B CN112910917 B CN 112910917B
- Authority
- CN
- China
- Prior art keywords
- data packet
- network
- path
- network data
- packet
- 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
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Abstract
本申请实施例提出了一种网络隔离方法、装置、设备和存储介质,所述方法包括:在数据链路层获取沙箱环境下的应用程序发往内网的网络数据包;在确定所述网络数据包为安全进程发送的数据包的情况下,对所述网络数据包中的第一路径进行修改,得到具有第二路径的网络数据包;所述第二路径指向预设的安全隧道;基于所述第二路径将具有所述第二路径的网络数据包,通过所述安全隧道发送给安全网关,实现对所述网络数据包的隔离。
Description
技术领域
本申请涉及网络安全技术,尤其涉及一种网络隔离方法、装置、设备及计算机可读存储介质。
背景技术
相关技术中,沙箱隔离技术是在应用层实现沙箱隔离的,协议兼容性较差,并且会受到当前环境路由表的影响,可能导致网络隔离失效引发数据泄露安全问题,即,通过在应用层进行数据隔离,数据仍然可以通过某些应用层协议,或者通过网络层泄漏。同时,对网络包的拦截,也可能引发内外网地址冲突类的兼容问题。
发明内容
本申请实施例期望提供一种网络隔离的方法、装置、电子设备和计算机存储介质。
第一方面,本申请实施例提供了一种网络隔离方法,所述方法包括:
在数据链路层获取沙箱环境下的应用程序发往内网的网络数据包;
在所述网络数据包为安全进程发送的数据包的情况下,对所述网络数据包中的第一路径进行修改,得到具有第二路径的网络数据包;所述第二路径指向预设的安全隧道;
基于所述第二路径将具有所述第二路径的网络数据包,通过所述安全隧道发送给安全网关,实现对所述网络数据包的隔离。
第二方面,本申请实施例提供了一种网络隔离装置,所述装置包括:
第一获取模块,用于在数据链路层获取沙箱环境下的应用程序发往内网的网络数据包;
第一修改模块,用于在所述网络数据包为安全进程发送的数据包的情况下,对所述网络数据包中的第一路径进行修改,得到具有第二路径的网络数据包;所述第二路径指向预设的安全隧道;
第一发送模块,用于基于所述第二路径将具有所述第二路径的网络数据包,通过所述安全隧道发送给安全网关,实现对所述网络数据包的隔离。
第三方面,本申请实施例还提供了一种网络隔离设备,包括:存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述网络隔离方法中的步骤。
第四方面,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任一项所述网络隔离方法中的步骤。
在本申请实施例中,通过在数据链路层获取沙箱环境下的应用程序发往内网的网络数据包;在确定所述网络数据包为安全进程发送的数据包的情况下,对所述网络数据包中的第一路径进行修改,得到具有第二路径的网络数据包;所述第二路径指向预设的安全隧道;基于所述第二路径将具有所述第二路径的网络数据包,通过所述安全隧道发送给安全网关,实现对所述网络数据包的隔离,可以看出,由于该网络隔离方法是在沙箱的链路层实现,没有网络层、传输层、应用层各种协议带来的兼容性问题,也不会导致网络隔离失效引发数据泄露安全问题且独立与***原生网络环境,不会引发内外网冲突的情况。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本申请的实施例,并与说明书一起用于说明本申请的技术方案。
图1为相关技术中开放式***互联(Open System Interconnection,OSI)模型的组成结构示意图;
图2为相关技术中传输控制协议/因特网互联协议(Transmission ControlProtocol/Internet Protocol,TCP/IP)模型的组成结构示意图;
图3为相关技术中的沙箱的组成结构示意图;
图4为相关技术中TCP/IP模型和过滤层框架(Windows Filtering Platform,WFP)驱动、NDIS驱动之间的关系示意图;
图5为相关技术中沙箱网络隔离中数据包的路径示意图;
图6为本申请实施例提供的一种网络隔离方法的实现流程图;
图7为本申请实施例提供的另一种网络隔离方法的实现流程示意图;
图8为本申请实施例提供的又一种网络隔离方法的实现流程示意图;
图9为本申请实施例提供的再一种网络隔离方法的实现流程示意图;
图10为本申请实施例提供的还一种网络隔离方法的实现流程示意图;
图11为本申请实施例提供的实现网络隔离的主场景示意图;
图12为本申请实施例提供的网络包的网络传输路径示意图;
图13为本申请实施例提供的一种网络隔离装置的组成结构示意图;
图14为本申请实施例提供的一种网络隔离设备的组成结构示意图。
具体实施方式
以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所提供的实施例仅仅用以解释本申请,并不用于限定本申请。另外,以下所提供的实施例是用于实施本申请的部分实施例,而非提供实施本申请的全部实施例,在不冲突的情况下,本申请实施例记载的技术方案可以任意组合的方式实施。
需要说明的是,在本申请实施例中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的方法或者装置不仅包括所明确记载的要素,而且还包括没有明确列出的其他要素,或者是还包括为实施方法或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括该要素的方法或者装置中还存在另外的相关要素(例如方法中的步骤或者装置中的单元,例如的单元可以是部分电路、部分处理器、部分程序或软件等等)。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,U和/或W,可以表示:单独存在U,同时存在U和W,单独存在W这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括U、W、V中的至少一种,可以表示包括从U、W和V构成的集合中选择的任意一个或多个元素。
为了方便理解,进行以下名词解释:
安全进程:允许访问内网的进程,数据包通过隧道到达安全网关,由安全网关代理访问。
非安全进程:不允许访问内网的普通进程。
网络隔离:创建一块独立的虚拟的网络环境,安全进程运行在虚拟环境中,仅允许访问虚拟网络环境中的资源。
进程识别:通过进程标记信息,获得进程属于安全进程或者非安全进程。
进程识别号(Process Identification,PID):各进程的身份标识,程序一运行***就会自动分配给进程一个独一无二的PID,操作***里每打开一个程序都会创建一个进程。
网络驱动程序接口规范(Network Driver Interface Specification,NDIS):网络驱动程序接口规范的简称。它横跨传输层、网络层和数据链路层,定义了网卡或网卡驱动程序与上层协议驱动程序之间的通信接口规范,屏蔽了底层物理硬件的不同,使上层的协议驱动程序可以和底层任何型号的网卡通信。
NDISfilter:NDIS过滤驱动,介于NDIS协议驱动和NDIS微端口驱动之间,NDIS协议驱动常见的有TCP/IP协议栈,NDIS微端口驱动常见的有网卡驱动。
WFP:是windows推出的用于TCP/IP协议栈五层各层里面对数据包进行交互操作的基础框架,该框架提供了一系列的应用程序接口(Application Programming Interface,API)用于实现交互目的。
本申请实施例涉及OSI模型以及TCP/IP模型,其中:
TCP/IP模型包含5层框架,如图2所示,分别是应用层201、传输层202、网络层203、数据链路层204和物理层205。
OSI模型包含七层框架,如图1所示,分别是应用层101、表示层102、会话层103、传输层104、网络层105、数据链路层106和物理层107。其中,
应用层101用于为用用程序提供服务;表示层102用于数据格式转化、数据加密;会话层103用于建立、管理和维护端到端的连接;应用层101、表示层102、会话层103三层相当于TCP/IP模型的应用层201,对应的协议包括超文本传输协议(HyperText TransferProtocol,HTTP)、文件传输协议(File Transfer Protocol,FTP)、域名***(Domain NameSystem,DNS)等;
传输层104用于建立、管理和维护端到端的连接,相当于TCP/IP模型的传输层202,对应的协议包括TCP、用户数据包协议(User Datagram Protocol,UDP)协议;
网络层105用于IP选址及路由选择,相当于TCP/IP模型的网络层203,对应的协议包括IP、Internet控制消息协议(Internet Control Message Protocol,ICMP);
数据链路层106,用于提供介质访问和链路管理;物理层107,用于提供物理接口等,数据链路层106相当于TCP/IP模型的数据链路层204,物理层107相当于TCP/IP模型的物理层205,对应的协议包括点对点协议(Point to Point Protocol,PPP)。
相关技术中,可以通过沙箱来实现网络隔离,图3为相关技术中的沙箱的组成结构示意图,如图3所示,所述沙箱300包括网络隔离应用模块301、沙箱服务302和其它应用模块303、网络隔离驱动模块304、进程识别模块305和其它驱动模块306。其中,网络隔离驱动模块304包括WFP驱动3041和NDISfilter驱动3042。网络隔离应用模块301、沙箱服务302和其它应用模块303位于应用空间中;网络隔离驱动模块304、进程识别模块305和其它驱动模块306位于内核空间中。图3中还示出了与沙箱相关的网络结构包括隧道网关307、虚拟网卡308和物理网卡309。
本申请的有些实施例中,为了通过沙箱实现网络隔离,需要用到沙箱中的WFP驱动和NDISfilter驱动,对于windows7以上的操作***,WFP驱动和NDISfilter驱动工作在OSI模型中不同的结构层。图4为相关技术中TCP/IP模型和WFP驱动、NDIS驱动之间的关系示意图,如图4所示,WFP驱动401工作在TCP/IP模型的应用层、传输层和网络层,NDIS驱动工作在TCP/IP模型的数据链路层和物理层,其中,NDIS驱动中的协议驱动层402和NDISfilter层403工作在数据链路层,微端口驱动层404则工作在链路层和物理层之间。协议驱动层402用于平等获取来自各网卡的各种数据包;NDISfilter层403用于拦截数据包;微端口驱动层404用于直接操作物理网卡的驱动,管理物理网从物理网络上收发数据包。需要说明的是,对于其它的操作***,本申请实施例提供的方法也同样适用的,只需要适应性的进行改变即可。
图5为相关技术中沙箱网络隔离中数据包的路径示意图,如图5所示,在需要对数据包进行处理时,应用程序501向操作***的内核申请建立网络连接,将网络数据包发送给TCP/IP协议栈502,通过数据包TCP/IP协议栈502得到包含TCP(UDP)头、IP头以及以太网数据帧头的数据包;然后,判断路由IP指向物理网卡还是指向虚拟网卡;在路由IP指向物理网卡时,将数据包发送给物理网卡503,通过物理网卡503将所述数据包发送出去;在路由IP指向虚拟网卡504时,将数据包发送给虚拟网卡504;然后,数据包返回至应用层,通过应用层的隧道网关程序505实现对虚拟网卡504的读包,并将读取的数据包作为普通数据发送给TCP/IP协议栈502,以对所述数据包进行重组操作,将重组后的数据包通过物理网卡503发送给代理服务器。
在内网对应用程序回包,物理网卡503接收到回包时,会按照发发包时的路径进行回包,将没经过虚拟网卡直接发送的数据包的第一回包,通过物理网卡503返回至TCP/IP协议栈502;TCP/IP协议栈502去除第一回包中的报头,得到对应的第一回包数据,将第一回包数据发送给应用程序501;将经过虚拟网卡发送的数据包的第二回包(从代理服务器的回包)通过TCP/IP协议栈502去除报头,作为普通数据返回至应用层(从代理服务器收包),通过隧道网关程序505将第二回包写入虚拟网卡504,虚拟网卡504将第二回包返回至TCP/IP协议栈502,TCP/IP协议栈502去除第二回包中的报头,得到对应的第二回包数据,将对应的第二回包数据发送给应用程序501。
传统沙箱网络隔离技术中,利用分层服务提供程序Lsp分层服务对数据包进行拦截或放行,以达到网络隔离的效果。例如,利用Lsp分层服务对socks操作函数进行hook,转连接网络包。由于实现在应用层,协议兼容性较差,并且会受到当前环境路由表的影响,可能导致网络隔离失效引发数据泄露安全问题。同时,对网络包的拦截,也可能引发内外网地址冲突类的兼容问题。
基于上述技术问题,本申请实施例提供了一种网络数据隔离的方案,应用场景可以有:
(1)网络隔离,可以保障沙箱中的安全应用对内网资源的网络访问,禁止安全应用访问外网资源,防止沙箱通过网络的方式泄露数据。并且能阻止普通进程访问内网资源,防止内网网络数据泄露。
(2)二层网络(数据链路层)数据包过滤,允许添加二层网络包的监听者,对二层数据包进行分析或者处理,对数据包进行截断、回应或者放行。常见的场景有域名***(Domain Name System,DNS)数据包过滤,可以选择性截断或者回应特定DNS报文数据包,绕开上层***DNS机制,避免相关的兼容性问题。
(3)应用虚拟互联网协议地址,允许在二层(数据链路层)给特定应用网络包映射虚拟IP地址,从而使应用程序拥有独立的虚拟IP地址。
(4)策略路由,相当于windows平台的策略路由,可以以PID,IP,端口,数据包内容作为标记,按照预设的规则,指定数据包的传输路径。
基于上述应用场景,本申请实施例提供了一种通过沙箱实现的网络隔离方法,如图6所示,该流程可以包括:
步骤S601:在数据链路层获取沙箱环境下的应用程序发往内网的网络数据包。
这里,沙箱环境下的应用程序可以是指主机上加载了沙箱中的WFP模块和NDISfilter模块后,主机中的应用程序。
可以理解的是,主机可以是需要访问内网的个人计算机,主机可以是内网中的个人计算机也可以是外网中的计算机;内网可以是一个需要进行隔离保护的局域网。本实施例中并不对个人计算机的类型进行限制。
可以理解的是,网络数据包是包含应用层、传输层、网络层和数据链路层的报头或数据帧头的数据包。例如,网络数据包中包括源IP地址和目的IP地址、源MAC地址和目的MAC地址等信息。当然,网络数据包还可以是添加了PID对应的网络标识的网络数据包,也可以是未添加PID对应的网络标识的网络数据包。
当主机中的应用程序需要访问内网的时候,主机的应用程序会向主机的内核申请建立网络连接,从而将原始数据包从应用层依次向下层经过传输层和网络层传递至数据链路层,并对原始数据在对应层添加相应的报头或数据帧头。
在一些可能的实施方式中,在数据链路层获取沙箱环境下的应用程序发往内网的网络数据包的实现方式,可以是通过主机上加载的沙箱中的NDISfilter模块获取沙箱环境下的应用程序发往内网的网络数据包。
步骤S602:在确定所述网络数据包为安全进程发送的数据包的情况下,对所述网络数据包中的第一路径进程修改,得到具有第二路径的网络数据包;所述第二路径指向预设的安全隧道。
可以理解的是,第一路径是根据网络数据包中的IP地址和MAC地址所确定的原始发包路径。
这里,第二路径可以是预设的安全路径。在一个示例中,第二路径可以是安全进程发送的数据包先经过目标虚拟网卡,然后返回应用层,应用层的隧道网关程序通过目标物理网卡将安全进程发送的数据包通过预设的安全隧道发送给安全网关。目标虚拟网卡可以是主机中多个虚拟网卡中一个预设的虚拟网卡;目标物理网卡可以是主机中多个物理网卡中一个预设的物理网卡。可以理解的是,目标物理网卡是预先根据安全隧道所确定的IP地址确定的固定网卡。
在一些可能的实施方式中,网络数据包可以是添加了PID对应的网络标识的网络数据包,也可以是未添加PID对应的网络标识的网络数据包,可以理解的是,添加了PID对应的网络标识的第一网络数据包可以为安全网络数据包,也可以为非安全网络数据包,需要根据PID对应的网络标识的添加过程来确定。
在一个示例中,对所述网络数据包中的第一路径进程修改的实现方式,可以是通过NDISfilter对网络数据包中的第一路径进行修改。
在一些可能的实施方式中,在确定所述网络数据包为安全进程发送的数据包的情况下,对所述网络数据包中的第一路径进程修改,得到具有第二路径的网络数据包,可以是在确定所述网络数据包中存在PID对应的网络标识的情况下,通过NDISfilter修改网络数据包中的源IP地址和源MAC地址,得到具有第二路径的网络数据包。
步骤S603:基于所述第二路径将具有所述第二路径的网络数据包,通过所述安全隧道发送给安全网关,实现对所述网络数据包的隔离。
在一些可能的实施方式中,基于所述第二路径将具有所述第二路径的网络数据包,通过所述安全隧道发送给安全网关,实现对所述网络数据包的隔离,可以是根据预设的安全路径将所述第二路径的网络数据包先传递至目标虚拟网卡,然后再返回至应用层,应用层的隧道网关程序再通过目标物理网卡将第二路径的网络数据包通过安全隧道发送给安全网关,实现对网络数据包的隔离。
在实际应用中,步骤S601至步骤S603可以利用网络隔离设备中的处理器实现,上述处理器可以为特定用途集成电路(Application Specific Integrated Circuit,ASIC)、数字信号处理器(Digital Signal Processor,DSP)、数字信号处理装置(Digital SignalProcessing Device,DSPD)、可编程逻辑装置(Programmable Logic Device,PLD)、FPGA、中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器中的至少一种。
在本申请实施例中,通过在数据链路层获取沙箱环境下的应用程序发往内网的网络数据包;在确定所述网络数据包为安全进程发送的数据包的情况下,对所述网络数据包中的第一路径进行修改,得到具有第二路径的网络数据包;所述第二路径指向预设的安全隧道;基于所述第二路径将具有所述第二路径的网络数据包,通过所述安全隧道发送给安全网关,实现对所述网络数据包的隔离,可以看出,由于该网络隔离方法是在沙箱的链路层实现,没有网络层、传输层、应用层各种协议带来的兼容性问题,也不会导致网络隔离失效引发数据泄露安全问题且独立与***原生网络环境,不会引发内外网冲突的情况。
图7为本申请实施例提供的另一种网络隔离方法的实现流程示意图,如图7所示,该流程可以包括:
步骤S701:获取对沙箱环境下的应用程序所触发的网络行为。
可以理解的是,网络行为可以是基于用户触发操作,加载沙箱模块的主机所产生的创建网络连接的应用程序。
步骤S702:在数据链路层获取所述应用程序响应于所述网络行为发往内网的网络数据包。
在数据链路层获取所述应用程序响应于所述网络行为发往内网的网络数据包的实现方式,示例性地,可以是沙箱中的NDISfilter模块在数据链路层获取沙箱环境下的应用程序响应于所述网络行为发往内网的网络数据包。
步骤S703:在所述网络数据包为安全进程发送的数据包的情况下,对所述网络数据包中的第一路径进行修改,得到具有第二路径的网络数据包;所述第二路径指向预设的安全隧道。
步骤S704:基于所述第二路径将具有所述第二路径的网络数据包,通过所述安全隧道发送给安全网关,实现对所述网络数据包的隔离。
步骤S705:在所述网络数据包为非安全进程发送的数据包的情况下,丢弃所述网络数据包。
可以理解的是,非安全进程发送的数据包是来自非安全进程的网络数据包。在一些可能的实施方式中,在所述网络数据包为非安全进程发送的数据包的情况下,丢弃所述网络数据包,可以是在所述网络数据包为来自非安全进程的网络数据包的情况下,丢弃网络数据包。
本申请实施例中,在所述网络数据包为非安全进程发送的数据包的情况下,丢弃所述网络数据包,可以使得对于非安全进程发送的数据包不通过第二路径发送,因此,可以实现对非安全进程发送的数据包的隔离。
图8为本申请实施例提供的又一种网络隔离方法的实现流程示意图,如图8所示,该流程可以包括:
步骤S801:在数据链路层获取沙箱环境下的应用程序发往内网的网络数据包。
步骤S802:获取所述网络数据包的网络标识。
步骤S803:根据所述网络数据包的网络标识,确定所述网络数据包是否为安全进程发送的数据包。
这里,对于安全进程发送的网络数据包,网络数据包中包含网络标识,对于非安全进程发送的网络数据包,网络数据包中不包含网络标识。
在一些可能的实施方式中,根据所述网络数据包的网络标识,确定所述网络数据包是否为安全进程发送的数据包,可以是判断网络数据包中是否包含网络标识,将包含网络标识的网络数据包确定为安全进程发送的数据包,将不包含网络标识的网络数据包确定为非安全进程发送的网络数据包。
步骤S804:在所述网络数据包为安全进程发送的数据包的情况下,对所述网络数据包中的第一路径进行修改,得到具有第二路径的网络数据包;所述第二路径指向预设的安全隧道。
步骤S805:基于所述第二路径将具有所述第二路径的网络数据包,通过所述安全隧道发送给安全网关,实现对所述网络数据包的隔离。
步骤S806:在所述网络数据包为非安全进程发送的数据包且所述第一路径指向所述安全隧道的情况下,对所述网络数据包中的所述第一路径进行修改,得到具有第三路径的网络数据包;所述第三路径指向目标物理网卡。
这里,第三路径可以是对非安全进程所预设的路径,强制使得非安全进程按照预设的路径(直接通过目标物理网卡)将具有第三路径的网络数据包发出。
可以理解的是,对于IP路由指向预设的安全隧道的非安全进程发送的数据包,不允许非安全应用发送的数据包走安全隧道,而是通过目标网卡直接发送出去,因此,需要对网络数据包中的路径进行修改,使得修改后的路径指向目标物理网卡。
在一些可能的实施方式中,在所述网络数据包为非安全进程发送的数据包且所述第一路径指向所述安全隧道的情况下,对所述网络数据包中的所述第一路径进行修改,得到具有第三路径的网络数据包,可以是在所述网络数据包为非安全进程发送的数据包且所述第一路径指向预设的安全隧道的情况下,通过NDISfilter将网络数据包中源IP地址和源MAC地址修改为指向目标物理网卡的IP地址和MAC地址,得到具有第三路径的网络数据包。
步骤S807:基于所述第三路径将具有所述第三路径的网络数据包,通过所述目标物理网卡发送给所述内网。
在一些可能的实施方式中,基于所述第三路径将具有所述第三路径的网络数据包,通过所述目标物理网卡发送给所述内网,可以是根据预设的路径将所述第三路径的网络数据包强制传递至目标物理网卡,然后通过目标物理网卡将第三路径的网络数据包发给内网,实现对网络数据包的隔离。
步骤S808:在所述网络数据包为非安全进程发送的数据包且所述第一路径不指向所述安全隧道的情况下,基于所述第一路径将所述网络数据包发送给所述内网。
在一些可能的实施方式中,在所述网络数据包为非安全进程发送的数据包且所述第一路径不指向所述安全隧道的情况下,基于所述第一路径将所述网络数据包发送给所述内网,可以是在所述网络数据包为非安全进程发送的数据包且所述第一路径不指向所述预设的安全隧道的情况下,按照网络数据包的原始路径将网络数据包发送给内网。
本申请实施例中,可以根据网络数据包的网络标识确定网络数据包是否为安全进程发送的数据包,使得指向安全隧道的非安全应用进程发送的数据包不经过安全隧道,而是通过目标网络网卡发送出去,因此,可以是实现对数据包的隔离保护;同时可以使得不指向安全隧道的非安全应用进程发送的数据包按照原始的路径发送出去,实现对数据包的隔离。
图9为本申请实施例提供的再一种网络隔离方法的实现流程示意图,如图9所示,该流程可以包括:
步骤S901:在沙箱环境下的应用程序向操作***内核申请建立网络连接的情况下,获取所述应用程序的进程标识号。
对于获取所述应用程序的进程标识号的实现方式,示例性地,可以是通过沙箱的WFP模块获取应用程序的进程标识号。
步骤S902:根据所述应用程序的进程标识号,确定所述应用程序是否为安全进程。
在一些可能的实施方式中,根据所述应用程序的进程标识号,确定所述应用程序是否为安全进程,可以将应用程序的进程标识号发送给沙箱中的进程识别模块,通过进程识别模块来确定应用程序是否为安全进程。可以理解的是,进程识别模块中存储有进程标识与是否为安全进程的对应关系,因此,可以以进程标识为索引,向沙箱的进程识别模块查询当前进程是否为安全进程,进而确定当前应用程序对应的进程是否为安全进程。
步骤S903:在所述应用程序为安全进程的情况下,基于所述进程标识号对应的网络标识对所述应用程序对应的数据包进行标记,得到所述网络数据包。
这里,由于进程标识号仅涉及应用层和传输层,因此,可以在数据链路层的上层协议栈TCP/IP协议栈可以通过进程标识号生成对应的网络标识,网络标识可以是网络层中与进程标识号对应的标识。
可以理解的是,在应用程序为安全进程的情况下,在还可以在TCP/IP协议栈获取网络包处理规则以及是否加密等信息。
在一些可能的实施方式中,在所述应用程序为安全进程的情况下,基于所述进程标识号对应的网络标识对所述应用程序对应的数据包进行标记,得到所述网络数据包,可以是在所述应用程序为安全进程的情况下,对所述应用程序对应的数据包添加进程标识号对应的网络标识和网络包处理规则。
步骤S904:在所述应用程序为非安全进程的情况下,将所述应用程序对应的数据包确定为所述网络数据包。
可以理解的是,在应用程序为非安全进程的情况下,可以不生成进程标识号对应的网络标识,进而,不对应用程序对应的数据包添加网络标记。
在一些可能的实施方式中,在确定所述应用程序为非安全进程的情况下,将所述应用程序对应的数据包确定为所述网络数据包,可以是在确定所述应用程序为非安全进程的情况下,不对应用程序对应的数据包进行标识,将应用程序对应的数据包确定为所述网络数据包。
步骤S905:在数据链路层获取沙箱环境下的应用程序发往内网的网络数据包。
步骤S906:在确定所述网络数据包为安全进程发送的数据包的情况下,将所述网络数据包中的源互联网协议IP地址修改为目标IP地址和将所述第一网络数据包中的源介质访问控制MAC地址修改为目标MAC地址,得到具有第二路径的网络数据包;所述第二路径指向预设的安全隧道;其中,所述目标IP地址和所述目标MAC地址是根据指向所述安全隧道的目标虚拟网卡所确定的。
可以理解的是,目标IP地址和目标MAC地址可以使得具有第二路径的网络数据包能够经过目标虚拟网卡的IP地址和MAC地址指向安全隧道。在一个示例中,目标IP地址和目标MAC地址可以是目标虚拟网卡的IP地址和目标虚拟网卡的MAC地址。
在一些可能的实施例中,在确定所述网络数据包为安全进程发送的数据包的情况下,将所述网络数据包中的源互联网协议IP地址修改为目标IP地址和将所述第一网络数据包中的源介质访问控制MAC地址修改为目标MAC地址,得到具有第二路径的网络数据包,可以是在所述网络数据包为安全进程发送的数据包的情况下,通过主机的沙箱中的NDISfilter将所述网络数据包中的源互联网协议IP地址修改为目标IP地址和将所述第一网络数据包中的源介质访问控制MAC地址修改为目标MAC地址,得到具有第二路径的网络数据包。
步骤S907:基于所述第二路径将具有所述第二路径的网络数据包,通过所述安全隧道发送给安全网关,实现对所述网络数据包的隔离。
步骤S908:在所述数据链路层获取来自所述内网的响应数据包。
可以理解的是,在内网响应接收到的网络数据包,向所述主机发送响应数据包时,主机的目标物理网卡会接收响应数据包并将响应数据包按照响应数据包中的路径发送。
在一些可能的实施方式中,在所述数据链路层获取来自所述内网的响应数据包,可以是在数据链路层获取路径指向目标虚拟网卡的响应数据包和路径指向目标网卡的响应数据包。
步骤S909:在所述响应数据包中的第三路径指向所述目标虚拟网卡的情况下,对所述第三路径进行修改,得到具有第四路径的响应数据包;所述第四路径与所述第一路径方向相反。
可以理解的是,为了对网络数据包进行回包,需要预先获取网络数据包的源IP地址和源MAC地址,并在NDISfilter中建立包括源IP地址、源MAC地址、目标IP地址和目标MAC地址的IP-MAC表,以使得在所述数据链路层获取到所述内网的响应数据包的情况下,确定响应数据包的最终目的IP地址(对应源IP地址)和最终目的MAC地址(对应源MAC地址)。
在一个示例中,IP-MAC表可以参见表1所示,其中,源IP地址IP地址1对应的目标IP地址为IP地址1’,源MAC地址MAC地址1对应的MAC地址为MAC地址1’;源IP地址IP地址2对应的目标IP地址为IP地址2’,源MAC地址MAC地址2对应的MAC地址为MAC地址2’。
可以理解的是,对于包含目标IP地址为IP地址1’(对应响应数据包的目的IP地址)和目标MAC地址为MAC地址1’(对应响应数据包的目的MAC地址)的响应数据包中,可以确定响应数据包的最终目的IP地址为IP地址1,最终目的MAC地址为MAC地址1。
表1
源IP地址 | 源MAC地址 | 目标IP地址 | 目标MAC地址 |
IP地址1 | MAC地址1 | IP地址1’ | MAC地址1’ |
IP地址2 | MAC地址2 | IP地址2’ | MAC地址2’ |
在一些可能的实施方式中,在所述响应数据包中的第三路径指向所述目标虚拟网卡的情况下,对所述第三路径进行修改,得到具有第四路径的响应数据包,可以是对安全进程的响应数据包中的目的IP地址和目的MAC地址进行修改,得到与所述第一路径方向相反的响应数据包。
步骤S910:基于所述第四路径将具有所述第四路径的响应数据包发回应用层。
在一种可能的实施方式中,基于所述第四路径将具有所述第四路径的响应数据包发回应用层,可以是将具有所述第四路径的响应数据包按照第四路径发回至应用程序。
可以理解的是,在所述响应数据包中的第三路径指向所述物理虚拟网卡的情况下,可以确定响应数据包为普通应用或白名单程序对应的数据包,此时,需要根据预先建立的IP-MAC表来确定源IP地址和源MAC地址,并根据确定的源IP地址和源MAC地址获取回包路径,进行回包。
本申请实施例中,可以根据应用程序的进程标识确定应用程序是否为安全进程,进而获得网络数据包;同时在网络数据包为安全进程发送的数据包的情况下,修改网络数据包中的源IP地址和目标MAC地址,可以得到指向安全隧道的网络数据包;通过修改来自所述内网的响应数据包中的第三路径,通过修改后的第四路径进行回包,可以实现对来自内网的响应数据包的网络隔离。
图10为本申请实施例提供的还一种网络隔离方法的实现流程示意图,如图10所示,该流程可以包括:
步骤S1001:在数据链路层获取沙箱环境下的应用程序发往内网的网络数据包。
步骤S1002:在确定所述网络数据包为安全进程发送的数据包的情况下,将所述网络数据包中的源互联网协议IP地址修改为目标IP地址和将所述第一网络数据包中的源介质访问控制MAC地址修改为目标MAC地址,得到具有第二路径的网络数据包。
步骤S1003:基于所述第二路径将具有所述第二路径的网络数据包,通过所述安全隧道发送给安全网关,实现对所述网络数据包的隔离。
步骤S1004:在所述数据链路层获取来自所述内网的响应数据包;
步骤S1005:在所述响应数据包中的第三路径指向所述目标虚拟网卡的情况下,将所述响应数据包中的所述目标IP地址修改为所述源IP地址和将所述响应数据包中的所述目标MAC地址修改为源MAC地址,得到具有所述第四路径的响应数据包;所述第四路径与所述第一路径方向相反。
可以理解的是,响应数据包中的所述目标IP地址是响应数据包的目的IP地址;所述响应数据包中的所述目标MAC地址是响应数据包的目的MAC地址。
步骤S1006:基于所述第四路径将具有所述第四路径的响应数据包发回应用层。
本申请实施例中,通过在所述响应数据包中的第三路径指向所述目标虚拟网卡的情况下,将所述响应数据包中的所述目标IP地址修改为所述源IP地址和将所述响应数据包中的所述目标MAC地址修改为源MAC地址,得到具有所述第四路径的响应数据包,如此,可以得到与第一路径方向相反的响应数据包。
在本申请实施例中,可以在可获取进程信息的WFP驱动中,根据获取的进程PID识别出安全进程数据包,修改安全进程数据包以***进程信息,并将修改后的安全进程数据包传递至NDISfilter层,并利用NDISfilter完成二层交换机操作。可分为主场景和补充场景,如图11所示,主场景的技术实现主要由过滤1101、标记1102、导流1103和驱动1104四个部分组成,其中,在发生网络请求1100的情况下,可以通过过滤1101确定当前进程是安全进程还是非安全进程,在进程为非安全进程的情况下,移除当前版本,对非安全进程网络连接的管控;对于非安全进程的数据包不含标记,如果目的MAC为虚拟网卡地址,将被NDIS驱动拦截;在当前进程为安全进程的情况下,截断目的地址为黑名单地址或者外网地址的网络连接,关联PID和标记;标记1102通过WFP记录标记,NDIS检测出是否标记;在完成标记后数据包进入导流1103,拦截不包含标记的网络包,NDIS获取2层网络包的解析。其中,驱动1104用于在WFP的传输层过滤点(FWPM_LAYER_OUTBOUND_IPPACKET),通过安全进程PID关联标记,并通过NDIS获取2层网络包的解析。
其中,过滤1101、标记1102和导流1103的工作可以包括:
1、过滤1101
过滤1101可以对数据包进行过滤,能够通过WFP实现,包括:
当应用程序向操作***内核申请建立网络连接(网络请求1100)时,获得所在进程的PID,并通过沙箱中的进程识别模块根据进程的PID确定进程是否为安全进程,如果为安全进程,截断目的地址为黑名单地址或者外网地址的网络连接。
这里,根据进程的PID确定是否为安全进程的方法是:在windows平台,可以在操作***内核中注册回调,监听进程创建/销毁信息。在进程创建时触发回调,可以查询到进程的桌面信息,进程名,进程ID号。本沙箱方案根据进程的桌面信息,将进程区分为安全进程和普通进程,在安全桌面创建的进程,其桌面信息为安全桌面。本沙箱的进程识别模块将方案记录安全进程PID。
2、标记1102
标记1102可以是对数据包进行标记的操作,本实施例中根据WFP的传输层过滤点(FWPM_LAYER_OUTBOUND_IPPACKET)和PID,修改网络数据包内容包括:增加网络标记和网络包处理规则,这里,网络标记映射相应的数据包处理规则;网络标记是根据进程PID所生成的,与PID对应的标记。
其中,在WFP框架的过滤点FWPM_LAYER_OUTBOUND_IPPACKET中,可以捕捉到内核向网卡发送的传输层数据包,发送网络包进程的PID、进程名等信息。首先以PID为索引,向沙箱的进程识别模块查询当前进程是否为安全进程。查询获知当前进程为安全进程时,修改当前数据包,写入网络标识,网络包处理规则,如果需要加密时,对数据包进行加密。
原始传输层数据包:数据包原文
标记后的传输层数据包(不加密):网络标识+网络包处理规则+数据包原文
标记后的传输层数据包(加密):网络标识+网络包处理规则+数据包密文
3、导流1103
导流1103可以是对数据包的路径修改,将数据包导流至预设安全路径的操作,可以通过NDISfilter实现:
当网络数据包到达NDISfilter层时,通过检测修改后的数据包中的网络标记,识别安全进程网络包(有标记为安全进程网络包,没有标记不为安全进程网络包),对安全进程网络数据包设置网络数据包路径至安全网关。
可以理解的是,本申请实施例预先设置了一个安全路径,该安全路径是无论安全应用数据包是否包含指向目标虚拟网卡的路由,都通过修改路径强制让数据包先经过目标虚拟网卡,然后返回应用层,本机的应用层的隧道网关程序再通过目标物理网卡将数据包通过安全隧道发送给安全网关。
为了通过上述预设路径将数据包发送给安全网关,因此,需要将数据包中的源IP地址和源MAC地址修改为目标虚拟网卡对应的IP地址和MAC地址。
同时,当不带标记的网络数据包访问安全网关时,判定为非安全进程意外访问安全网关,丢弃此网络数据包,主要细节包括:
(1)IP地址修改:修改数据包源IP地址,将源IP地址修改为目标IP地址;并根据是否启用网卡硬件校验,选择是重计算数据包校验值。
这里,当启用了网卡硬件校验时,网卡会自动对IP层数据包进行校验值计算;没有启用此功能时,内核程序修改数据包后,需自行计算IP数据包校验值并写入数据包。使用网卡硬件校验可以提供网络性能。
(2)转发-发布流程:
(i)记录当前网络数据包网卡信息,网卡信息包括MAC信息,记录当前网络数据包网卡信息用于进行回包。
(ii)根据预设的规则,获取目标虚拟网卡,修改数据包MAC头部信息(源MAC地址),使用目标虚拟网卡对应的NDISfilter发送修改后的数据包,并截断原数据包。
这里,MAC头部信息包括源MAC地址;可以理解的是,在NDISDfilter驱动加载后,会附加到当前***所有的网卡上,每个NDISfilter驱动实例可以附加在对应的网卡上。
在一个示例中,安全进程数据包需要实现的路径可以是:
安全进程->[转发1]->虚拟网卡(对应虚拟专用网络(Virtual Private Network,VPN代理)->[转发2]->物理网卡。
其中,转发1流程对应的虚拟网卡为应用程序配置;转发2流程对应的物理网卡通过路由表计算或者探测(对应路由表被篡改场景)获得。
(iii)建立MAC表,对目的IP地址和原网卡头部信息、源IP地址,应用信息间建立映射关系。
这里,原网卡头部信息包括源MAC和目的MAC。
(3)转发-回包流程
从NDISfilter驱动中读到接收包,根据MAC表获取原网卡头部信息和源IP地址,根据原卡头部信息和源IP地址重组数据包,使用原网卡的NDISfilter回包。
本申请实施例的补充场景包括:
(i)127.0.0.1本地流量:对连接的远端(本机)和对端进行检测,仅当连接源端和对端都来源于安全应用,或者非安全应用时,才允许建立传输层的连接。这里,可以通过WFP实现,建立传输层的连接(TCP和UDP)。连接的应用层信息由应用层决定,此处无需关心。
(ii)PID无法正确指示流量是否为安全应用流量的场景(多为安全进程通过***API委托***服务发起网络请求场景):在***初始化阶段,对相应的应用程序接口(Application Programming Interface,API)进行hook,可以修改API的原始行为,并修改委托对象为安全进程。通过API hook技术实现,本沙箱采用dll注入。对API进行hook,可以修改API的原始行为。
图12为本申请实施例提供的网络包的网络传输路径示意图,如图12所示,在需要向内网发送网络数据包时,网络包的发送路径包括:应用程序1201向TCP/IP协议栈1202发送网络数据包,通过数据包TCP/IP协议栈1202得到包含TCP(UDP)头、IP头以及以太网数据帧头的数据包,同时,TCP/IP协议栈1202中的网络标记模块1203将通过WFP获取的进程PID信息发送给沙箱中的进程识别模块1204,进程识别模块1204根据接收的进程PID,确定当前进程是否为安全进程,并将结果返回给网络包标记模块1203,网络包标记模块根据结果确定是否对网络包进行标记,得到标记后的网络数据包;然后,判断当前应用的路由IP指向物理网卡还是指向虚拟网卡,在路由IP指向物理网卡时,标记后的网络数据包进入物理网卡节点的NDISfilter驱动1205,物理网卡节点的NDISfilter驱动1205根据标记后的网络数据包判断当前应用是否为安全应用,若否,则将普通应用或白名单程序对应的标记后的网络数据包发送给物理网卡1206,通过物理网卡1206发送普通应用或白名单程序对应的标记后的网络数据包;若是,则将标记后的网络数据包发送给虚拟网卡节点的NDISfilter驱动1207,虚拟网卡节点的NDISfilter驱动1207将安全应用对应的标记后的网络数据包发送给虚拟网卡1208,安全应用程序对应的标记后的网络数据包通过虚拟网卡1208返回至应用层,应用层的隧道网关程序1209对安全应用程序对应的标记后的网络数据包进行读包和封装,并将读取的数据包发送给TCP/IP协议栈1202,以对读取的数据包进行重组操作,将重组后的数据包通过物理网卡1206对外发包,通过完全隧道发送给代理服务器。
在需要接收内网发送的响应网络数据包时,响应数据包的接收路径包括:对于普通应用或白名单程序的响应数据包可以是通过物理网卡1206接收响应数据包,并将收到的响应数据包发送给物理网卡节点的NDISfilter驱动1205,通过物理网卡节点的NDISfilter驱动1205将响应数据包发回给TCP/IP协议栈1202,TCP/IP协议栈1202去除响应数据包中的报头,得到对应的回包数据,并将回包数据发送给应用程序1201;对于安全应用的响应数据包可以是通过物理网卡1206接收响应数据包,并将收到的响应数据包经过TCP/IP协议栈1202去除响应数据包的报头或数据帧头,得到普通报文将普通报文返回给应用层的隧道网关程序1209,隧道网关程序1209解封响应数据包,将响应数据包写入虚拟网卡1208,虚拟网卡1208将响应数据包发送给虚拟网卡节点的NDISfilter驱动1207,NDISfilter驱动1207接收响应数据包,根据NDISfilter驱动1207中记录的IP-MAC表获取回包路径,通过回包路径将响应数据包对应的响应数据发回给应用程序1201。
通过本申请实施例提出的网络隔离方法,可以实现以下效果:
(1)可以实现更全面的网络隔离效果。
相关技术只能作用于应用层网络协议,利用应用层网络数据包特征进行识别和隔离,但数据仍然可以通过某些应用层协议,或者通过网络层泄漏。本申请实施例提供的方案使用数据链路层实现,利用链路层数据包进行处理,有效避免了网络隔离对应用协议兼容不全,或者通过网络层泄漏的情况。
(2)可以保障网络路径的完整性。
相关技术中,当host设备路由表被恶意篡改时,数据包会被导向错误的网络路径,可能无法到达指定网关,导致沙箱环境无法使用网络。本申请实施例提供的方案实现了虚拟的二层网络环境,即使路由表被恶意篡改,数据包仍然能使用正确的网络路径,有效保障沙箱环境网络功能。
(3)沙箱使用本方案对接tap/tun型VPN时,耦合更小,无需对VPN源码进行修改。
(4)现有技术使用转连接技术,必须在源端口和目的端口及地址之间建立1对1映射关系,源端口(目的端口+目的地址),但对于数据报协议(如UDP),一个socket建立后,可能向多个不同的目的地址发送报文,不满足源端口和目的端口一一映射的关系,导致转连接后网络通信失败。
相关技术都使用转连接技术,必须对网络层(IP层)目的地址进行修改,并在数据包到达网关时,对IP目的地址进行还原。还原网络包的代码必须在VPN网关端执行,网络隔离代码和VPN代理将产生较大的耦合,需要一定代码开发工作和联调工作。
图13为本申请实施例提供的一种网络隔离装置的组成结构示意图,如图13所示,该网络隔离装置1300可以包括:
第一获取模块1301,用于在数据链路层获取沙箱环境下的应用程序发往内网的网络数据包;
第一修改模块1302,用于在所述网络数据包为安全进程发送的数据包的情况下,对所述网络数据包中的第一路径进行修改,得到具有第二路径的网络数据包;所述第二路径指向预设的安全隧道;
第一发送模块1303,用于基于所述第二路径将具有所述第二路径的网络数据包,通过所述安全隧道发送给安全网关,实现对所述网络数据包的隔离。
在一种实施方式中,所述网络隔离装置还包括:第二获取模块1304,用于获取对沙箱环境下的应用程序所触发的网络行为;第一获取模块1301,用于在数据链路层获取所述应用程序响应于所述网络行为发往内网的网络数据包。
在一种实施方式中,所述网络隔离装置还包括:第二修改模块1305,用于在所述网络数据包为非安全进程发送的数据包且所述第一路径指向所述安全隧道的情况下,对所述网络数据包中的所述第一路径进行修改,得到具有第三路径的网络数据包;所述第三路径指向目标物理网卡;第二发送模块1306,用于基于所述第三路径将具有所述第三路径的网络数据包,通过所述目标物理网卡发送给所述内网。
在一种实施方式中,所述网络隔离装置还包括:丢弃模块1307,用于在所述网络数据包为非安全进程发送的数据包的情况下,丢弃所述网络数据包。第三发送模块1308,用于在所述网络数据包为非安全进程发送的数据包且所述第一路径不指向所述安全隧道的情况下,基于所述第一路径将所述网络数据包发送给所述内网。
在一种实施方式中,所述网络隔离装置还包括:第一确定模块1309,用于获取所述网络数据包的网络标识;根据所述网络数据包的网络标识,确定所述网络数据包是否为安全进程发送的数据包。
在一种实施方式中,所述网络隔离装置还包括:第二确定模块1310,用于在沙箱环境下的应用程序向操作***内核申请建立网络连接的情况下,获取所述应用程序的进程标识号;根据所述应用程序的进程标识号,确定所述应用程序是否为安全进程;在所述应用程序为安全进程的情况下,基于所述进程标识号对应的网络标识对所述应用程序对应的数据包进行标记,得到所述网络数据包;在所述应用程序为非安全进程的情况下,将所述应用程序对应的数据包确定为所述网络数据包。
在一种实施方式中,所述第一修改模块1302,用于在所述网络数据包为安全进程发送的数据包的情况下,将所述网络数据包中的源互联网协议IP地址修改为目标IP地址和将所述第一网络数据包中的源介质访问控制MAC地址修改为目标MAC地址,得到具有第二路径的网络数据包;其中,所述目标IP地址和所述目标MAC地址是根据指向所述安全隧道的目标虚拟网卡所确定的。
在一种实施方式中,所述网络隔离装置还包括:回包模块1311,用于在所述数据链路层获取来自所述内网的响应数据包;在所述响应数据包中的第三路径指向所述目标虚拟网卡的情况下,对所述第三路径进行修改,得到具有第四路径的响应数据包;所述第四路径与所述第一路径方向相反;基于所述第四路径将具有所述第四路径的响应数据包发回应用层。
在一种实施方式中,所述回包模块1311,用于在所述响应数据包中的第三路径指向所述目标虚拟网卡的情况下,将所述响应数据包中的所述目标IP地址修改为所述源IP地址和将所述响应数据包中的所述目标MAC地址修改为源MAC地址,得到具有所述第四路径的响应数据包。
实际应用中,第一获取模块1301、第一修改模块1302、第一发送模块1303、第二获取模块1304、第二修改模块1305、第二发送模块1306、丢弃模块1307、第三发送模块1308、第一确定模块1309、第二确定模块1310和回包模块1311可以利用网络隔离设备中的处理器实现,上述处理器可以为ASIC、DSP、DSPD、PLD、FPGA、CPU、控制器、微控制器、微处理器中的至少一种。另外,在本实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
一般来讲,本实施例中的一种网络隔离方法对应的计算机程序指令可以被存储在光盘,硬盘,U盘等存储介质上,当存储介质中的与一种网络隔离方法的对应的计算机程序指令被一网络隔离设备读取或被执行时,实现前述实施例的任意一种网络隔离方法。
基于前述实施例相同的技术构思,参见图14,其示出了本申请实施例提供的一种网络隔离设备的组成结构示意图,可以包括:存储器1401和处理器1402;其中,所述存储器1401,用于存储计算机程序和数据;所述处理器1402,用于执行所述存储器中存储的计算机程序,以实现前述实施例的任意一种网络隔离方法。
在实际应用中,上述存储器1401可以是易失性存储器(volatile memory),例如RAM;或者非易失性存储器(non-volatile memory),例如ROM,快闪存储器(flash memory),硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD);或者上述种类的存储器的组合,并向处理器1402提供指令和数据。
上述处理器1402可以为ASIC、DSP、DSPD、PLD、FPGA、CPU、控制器、微控制器、微处理器中的至少一种。在一些实施例中,本申请实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述。
本申请所提供的各方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。本申请所提供的各产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。本申请实施例所提供的各方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的实施方式,上述的实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本申请的保护之内。
Claims (11)
1.一种网络隔离方法,其特征在于,所述方法包括:
在数据链路层获取沙箱环境下的应用程序发往内网的网络数据包;
获取所述网络数据包的网络标识;
根据所述网络数据包的网络标识,确定所述网络数据包是否为安全进程发送的数据包;
在所述网络数据包为安全进程发送的数据包的情况下,在数据链路层对所述网络数据包中的第一路径进行修改,得到具有第二路径的网络数据包;所述第二路径指向预设的安全隧道;
基于所述第二路径将具有所述第二路径的网络数据包,通过所述安全隧道发送给安全网关,实现对所述网络数据包的隔离。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取对沙箱环境下的应用程序所触发的网络行为;
所述在数据链路层获取沙箱环境下的应用程序发往内网的网络数据包,包括:在数据链路层获取所述应用程序响应于所述网络行为发往内网的网络数据包。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述网络数据包为非安全进程发送的数据包且所述第一路径指向所述安全隧道的情况下,对所述网络数据包中的所述第一路径进行修改,得到具有第三路径的网络数据包;所述第三路径指向目标物理网卡;
基于所述第三路径将具有所述第三路径的网络数据包,通过所述目标物理网卡发送给所述内网。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述网络数据包为非安全进程发送的数据包的情况下,丢弃所述网络数据包;或者,
在所述网络数据包为非安全进程发送的数据包且所述第一路径不指向所述安全隧道的情况下,基于所述第一路径将所述网络数据包发送给所述内网。
5.根据权利要求1至4任一项所述的方法,其特征在于,在所述在数据链路层获取沙箱环境下的应用程序发往内网的网络数据包之前,所述方法还包括:
在沙箱环境下的应用程序向操作***内核申请建立网络连接的情况下,获取所述应用程序的进程标识号;
根据所述应用程序的进程标识号,确定所述应用程序是否为安全进程;
在所述应用程序为安全进程的情况下,基于所述进程标识号对应的网络标识对所述应用程序对应的数据包进行标记,得到所述网络数据包;
在所述应用程序为非安全进程的情况下,将所述应用程序对应的数据包确定为所述网络数据包。
6.根据权利要求1至4任一项所述的方法,其特征在于,所述在所述网络数据包为安全进程发送的数据包的情况下,对所述网络数据包中的第一路径进行修改,得到具有第二路径的网络数据包,包括:
在所述网络数据包为安全进程发送的数据包的情况下,将所述网络数据包中的源互联网协议IP地址修改为目标IP地址和将第一网络数据包中的源介质访问控制MAC地址修改为目标MAC地址,得到具有所述第二路径的网络数据包;
其中,所述目标IP地址和所述目标MAC地址是根据指向所述安全隧道的目标虚拟网卡所确定的。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
在所述数据链路层获取来自所述内网的响应数据包;
在所述响应数据包中的第三路径指向所述目标虚拟网卡的情况下,对所述第三路径进行修改,得到具有第四路径的响应数据包;所述第四路径与所述第一路径方向相反;
基于所述第四路径将具有所述第四路径的响应数据包发回应用层。
8.根据权利要求7所述的方法,其特征在于,所述在所述响应数据包中的第三路径指向所述目标虚拟网卡的情况下,对所述第三路径进行修改,得到具有第四路径的响应数据包,包括:
在所述响应数据包中的第三路径指向所述目标虚拟网卡的情况下,将所述响应数据包中的所述目标IP地址修改为所述源IP地址和将所述响应数据包中的所述目标MAC地址修改为源MAC地址,得到具有所述第四路径的响应数据包。
9.一种网络隔离装置,其特征在于,所述装置包括:
第一获取模块,用于在数据链路层获取沙箱环境下的应用程序发往内网的网络数据包;
第一确定模块,用于获取所述网络数据包的网络标识;根据所述网络数据包的网络标识,确定所述网络数据包是否为安全进程发送的数据包;
第一修改模块,用于在所述网络数据包为安全进程发送的数据包的情况下,在数据链路层对所述网络数据包中的第一路径进行修改,得到具有第二路径的网络数据包;所述第二路径指向预设的安全隧道;
第一发送模块,用于基于所述第二路径将具有所述第二路径的网络数据包,通过所述安全隧道发送给安全网关,实现对所述网络数据包的隔离。
10.一种网络隔离的实现设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8任一项所述网络隔离方法中的步骤。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至8任一项所述网络隔离方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110215299.2A CN112910917B (zh) | 2021-02-25 | 2021-02-25 | 网络隔离方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110215299.2A CN112910917B (zh) | 2021-02-25 | 2021-02-25 | 网络隔离方法、装置、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112910917A CN112910917A (zh) | 2021-06-04 |
CN112910917B true CN112910917B (zh) | 2023-04-07 |
Family
ID=76108471
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110215299.2A Active CN112910917B (zh) | 2021-02-25 | 2021-02-25 | 网络隔离方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112910917B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113407969B (zh) * | 2021-07-01 | 2023-04-21 | 北京深演智能科技股份有限公司 | 安全数据处理方法、安全数据处理装置及电子设备 |
CN114301690B (zh) * | 2021-12-29 | 2024-02-23 | 中国电信股份有限公司 | 动态网络隔离方法及装置、存储介质、终端设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108173694A (zh) * | 2017-12-29 | 2018-06-15 | 深信服科技股份有限公司 | 一种数据中心的安全资源池接入方法及*** |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8990920B2 (en) * | 2011-02-11 | 2015-03-24 | Mocana Corporation | Creating a virtual private network (VPN) for a single app on an internet-enabled device or system |
CN103561004B (zh) * | 2013-10-22 | 2016-10-12 | 西安交通大学 | 基于蜜网的协同式主动防御*** |
US10439925B2 (en) * | 2017-12-21 | 2019-10-08 | Akamai Technologies, Inc. | Sandbox environment for testing integration between a content provider origin and a content delivery network |
CN108449339B (zh) * | 2018-03-16 | 2020-07-31 | 南京东科优信网络安全技术研究院有限公司 | 一种基于设备物理指纹特征的有线网络接入安全防护***及方法 |
CN110430177A (zh) * | 2019-07-26 | 2019-11-08 | 北京智游网安科技有限公司 | 一种app网络行为的监控方法、智能终端及存储介质 |
-
2021
- 2021-02-25 CN CN202110215299.2A patent/CN112910917B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108173694A (zh) * | 2017-12-29 | 2018-06-15 | 深信服科技股份有限公司 | 一种数据中心的安全资源池接入方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN112910917A (zh) | 2021-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111066301B (zh) | 用于强制执行统一全局策略的方法、***及存储介质 | |
CN107332812B (zh) | 网络访问控制的实现方法及装置 | |
AU2015317394B2 (en) | Private alias endpoints for isolated virtual networks | |
TWI549452B (zh) | 用於對虛擬私人網路之特定應用程式存取之系統及方法 | |
US8861522B2 (en) | Method for providing an internal server with reduced IP addresses | |
JP5859519B2 (ja) | データパケットの配信管理方法 | |
US8073936B2 (en) | Providing support for responding to location protocol queries within a network node | |
US11269673B2 (en) | Client-defined rules in provider network environments | |
CN112910917B (zh) | 网络隔离方法、装置、设备及可读存储介质 | |
CN105939239B (zh) | 虚拟网卡的数据传输方法及装置 | |
Wendzel et al. | Covert channels and their prevention in building automation protocols: A prototype exemplified using BACnet | |
US9705844B2 (en) | Address management in a connectivity platform | |
US20120317613A1 (en) | Network apparatus based on content name and method for protecting content | |
CN107659484B (zh) | 从vlan网络接入vxlan网络的方法、装置及*** | |
JP4330520B2 (ja) | 通信装置 | |
WO2020073827A1 (zh) | 文档追踪方法、网关设备及服务器 | |
CN112887229B (zh) | 一种会话信息同步方法及装置 | |
CN103095608B (zh) | 一种dns数据包的代理转发方法 | |
US9473451B2 (en) | Methods, systems, and computer readable media for providing mapping information associated with port control protocol (PCP) in a test environment | |
US20100250731A1 (en) | Systems and methods for application identification | |
CN109428884A (zh) | 通信保护装置、控制方法以及程序 | |
CN109151095B (zh) | 用于网络通信的方法和装置 | |
CN109076022A (zh) | 网络地址转换装置、设置请求装置、通信***、通信方法和存储程序的存储介质 | |
US20110231480A1 (en) | Server apparatus, network access method, and computer program | |
US10673893B2 (en) | Isolating a source of an attack that originates from a shared computing environment |
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 |