发明内容
有鉴于此,本申请提供一种网络隔离方法、装置、电子设备及存储介质,以在提供适用于虚拟化网络环境和物理网络环境的网络隔离方法的基础上,降低人工成本、提高网络隔离效率及网络隔离的全面性。技术方案如下:
一种网络隔离方法,包括:
监听并挂起主机发起的网络访问请求,获取所述网络请求的数据包信息;所述数据包信息包括网络五元组和目标信息,所述目标信息不同于所述网络五元组;
确定服务器响应对网络环境策略图的构建操作生成的所述网络环境的至少一条策略信息,所述策略信息包括条件信息和动作信息;
检测所述至少一条策略信息中是否存在条件信息被所述数据包信息命中的目标策略信息;
如果所述至少一条策略信息中存在条件信息被所述数据包信息命中的目标策略信息,根据所述目标策略信息的动作信息控制所述网络访问请求的流转状态。
优选的,所述监听并挂起主机发起的网络访问请求,获取所述网络请求的数据包信息,包括:
利用响应主机进程发起操作在所述进程内存中植入的hook模块,监听所述进程发起的网络访问请求,挂起所述网络访问请求,并获取所述网络访问请求的数据包信息;
或者,
根据在主机操作系统内核中植入的hook模块,监听所述主机的进程发起的网络访问请求,挂起所述网络访问请求,并获取所述网络访问请求的数据包信息。
优选的,所述服务器响应对网络环境策略图的构建操作生成所述网络环境的至少一条策略信息,包括:
所述服务器响应用户利用策略图构建组件提供的元件执行策略图构建操作所构建的策略图,所述策略图与网络环境的业务需求有关;
根据所述策略图表征的访问关系生成所述网络环境的原始策略信息;所述访问关系包括网络区域之间的访问关系、网络区域中各主机之间的访问关系、主机和进程之间的访问关系,以及进程账户和资源之间的访问关系中的任意一项或多项;
对所述网络环境的原始策略信息进行解析得到满足访问控制策略语法规则的所述网络环境的至少一条策略信息。
优选的,还包括:
监控所述网络环境的网络环境变化信息和主机功能变化信息;
基于所述网络环境变化信息和主机功能变化信息更新所述网络环境的至少一条策略信息。
优选的,所述确定所述至少一条策略信息中是否存在条件信息被所述数据包信息命中的目标策略信息,包括:
确定所述至少一条策略信息中是否存在条件信息与所述数据包信息相同的策略信息;
如果所述至少一条策略信息中存在条件信息与所述数据包信息相同的策略信息,将所述至少一条策略信息中条件信息与所述数据包信息相同的策略信息确定为目标策略信息;
如果所述至少一条策略信息中不存在条件信息与所述数据包信息相同的策略信息,确定所述至少一条策略信息中不存在条件信息被所述数据包信息命中的目标策略信息。
优选的,所述根据所述目标策略信息的动作信息控制所述网络访问请求的流转状态,包括:
获取所述目标策略信息中的动作信息,所述动作信息指示阻断网络访问请求/允许网络访问请求;
将所述动作信息返回至所述hook模块,由所述hook模块根据所述动作信息控制所述网络访问请求的流转状态。
优选的,所述目标信息指示发起所述网络访问请求的进程、发起所述进程的进程账户、所述进程所属应用和所述主机中的任意一项或多项。
一种网络隔离装置,包括:
数据包信息获取单元,用于监听并挂起主机发起的网络访问请求,获取所述网络请求的数据包信息;所述数据包信息包括网络五元组和目标信息,所述目标信息不同于所述网络五元组;
策略信息确定单元,用于确定服务器响应对网络环境策略图的构建操作生成的所述网络环境的至少一条策略信息,所述策略信息包括条件信息和动作信息;
目标策略信息检测单元,用于检测所述至少一条策略信息中是否存在条件信息被所述数据包信息命中的目标策略信息;
流转控制单元,用于如果所述至少一条策略信息中存在条件信息被所述数据包信息命中的目标策略信息,根据所述目标策略信息的动作信息控制所述网络访问请求的流转状态。
一种电子设备,包括:处理器以及存储器,所述处理器以及存储器通过通信总线相连;其中,所述处理器,用于调用并执行所述存储器中存储的程序;所述存储器,用于存储程序,所述程序用于实现所述网络隔离方法。
一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令用于执行所述网络隔离方法。
本申请实施例提供的一种网络隔离方法、装置、电子设备及存储介质,由用于实现网络隔离功能的客户端和用于为客户端提供技术支持的服务器实现网络隔离功能,网络环境中的主机上安装客户端,客户端可以监听其所属主机发起的网络访问请求,获取该网络访问请求中的数据包信息,进而基于至少一条策略信息对数据包信息进行判断以确定网络访问请求的流转状态。
本申请提供的网络隔离方法不区分虚拟化网络环境和物理网络环境,即既适用于虚拟化网络环境又适用于物理网络环境;而且本申请数据包信息不仅包括网络五元组还包括不同于网络五元组的目标信息,提高了用于进行网络隔离判断的数据的全面性,相应提高了网络隔离的全面性;进一步,本申请中策略信息(访问控制策略)是由服务器响应用户构建的网络环境策略图自动生成的,不需要用户详细了解掌握访问控制策略语法规则,并且策略信息不需要配置在网络交换设备,策略信息的存储空间不受限,因此,有效降低了人工成本、提高了策略生成效率及网络隔离效率。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例:
下面结合对本申请实施例提供的一种网络隔离方法进行详细介绍,为了便于对本申请实施例提供的一种网络隔离方法的理解,现先对需要本申请文件中涉及到的技术术语进行详细说明。
Hook技术:翻译为钩子函数,是操作系统提供的技术,当被调用函数或模块被hook时,钩子程序会先捕获到此消息,获得执行控制权,从而改变程序执行流程,达到预期效果。
Netfilter:Netfilter是Linux操作系统为网络数据包过滤提供的一套框架。
IPTables:Linux防火墙服务。
WFP:全称为Windows Filtering Platform,是Windows操作系统为网络数据包过滤提供的一套框架。
WFAS:全称为Windows Firewall with Advanced Security,Windows防火墙服务。
ACL:全称为Access Control List,访问控制列表。
SDN:全称为Software Defined Network,软件定义网络。
SDS:全称为Software Defined Security,软件定义安全。
五元组:指TCP/IP协议栈:源IP地址、目的IP地址、目的端口号、源端口号、传输协议类型。
“南北向”流量:进出外网的流量,此流量通常会过边界的物理防火墙。
“东西向”流量:内部网络环境中主机之间的访问流量,此流量通常只过二层交换设备,通常不过物理防火墙。
本申请实施例提供的一种网络隔离方法,依赖于本申请实施例提供的用于实现网络隔离功能的客户端(可以称为微隔离客户端)和用于为客户端提供技术支持的服务器(微隔离服务器)实现网络隔离功能。该网络隔离方法应用于自适应微隔离系统,该自适应微隔离系统由网络环境中的加入自适应微隔离系统的主机和微隔离服务器构成,加入自适应微隔离系统的主机上安装有微隔离客户端。
自适应微隔离系统支持用户自定义功能安全区域,可根据不同功能区域、不同功能主机、不同功能应用进程制定ACL(Access Control List,访问控制列表),ACL中包括一条或多条访问控制策略。自适应微隔离系统中的每台主机部署微隔离客户端Agent,通过微隔离服务器控制下发ACL,提供更细粒度的ACL,能够识别和阻断用户和进程的隔离策略,同时能实时监控网络环境的变化,自动化更新调整ACL,最终达到精细化控制网络访问的目的。
图1为本申请实施例提供的一种自适应微隔离系统示意图。
如图1所示,自适应微隔离系统如图1所示,自适应微隔离系统的原理是采用hook技术注入到主机的系统调用中,通过在主机的网络调用栈的适当位置插入hook模块,从而达到控制进程的网络访问的目的。
下面分别从微隔离客户端和微隔离服务器的角度分别对本申请实施例提供的一种网络隔离方法进行详细说明。
微隔离服务器提供自适应微隔离系统控制中心,自适应微隔离系统控制中心主要由策略管理、策略编排和策略监控三大核心功能模块组成,其中,策略管理包括安全域管理、账户管理、主机管理和应用管理。
策略管理负责实现安全域的管理划分、账户管理、主机功能类型划分、应用程序管理。微隔离服务器侧的用户通过策略管理模块可以对网络环境进行安全域的管理划分、主机功能类型的划分、应用程序的管理、以及进程账户管理,进而生成用于进行网络访问流量控制的至少一条策略信息。本申请实施例中的至少一条策略信息可以认为是生成的ACL,至少一条策略信息中的每条策略信息可以认为是ACL中的一条访问控制策略。
策略编排采用SDS的概念对ACL实现可编程能力。
策略监控通过微隔离客户端采集的网络环境变化信息和主机功能变化信息调整ACL。
网络环境中加入自适应微隔离系统的主机(服务器、虚机、容器等)都需要安装微隔离客户端agent,微隔离客户端以独立的客户端形态常驻系统进程,即微隔离客户端提供一个常驻进程。微隔离客户端agent包含两部分功能:
第一,常驻进程负责网络访问请求数据包信息的采集并上报给微隔离系统控制中心,以及,响应微隔离系统控制中心下达的指令进行相应的操作;并根据不同操作系统类型采用不同的hook技术在操作系统中植入hook模块。
参见图1,数据包信息policy Info可以指示Host(主机)、Accounts(进程账户)、Applications(应用)、Processes(进程)、Network5Tuple(五元组)。以上仅仅是本申请实施例提供的数据包信息的优选内容,有关数据包信息的具体内容,发明人可根据自己的需求进行设置,在此不做限定。
以图1为例,Linux系统采用用户态hook技术,Windows系统采用内核态hook技术,基于成熟的技术可以保障服务的稳定性和可扩展性。
以上仅仅是本申请实施例提供的不同操作系统类型采用不同hook技术的优选方式,有关操作系统类型采用的hook技术的具体方式,发明人可根据自己的需求进行设置,在此不做限定。比如,Linux系统采用内核态hook技术,Windows系统采用用户态hook技术;Linux系统采用内核态hook技术,Windows系统采用内核态hook技术等等。
第二,hook模块:Linux hook模块被加载到操作系统运行的进程内存中(Linuxhook模块参见图1中加载在Linux的Process1中的libHook.so和加载在Linux的ProcessX中的libHook.so),Windows hook模块被加载到操作系统内核中(Windows hook模块参见图1中的hook.sys),hook模块保持和常驻进程通信。Hook模块通过监听和拦截自适应微隔离系统的网络访问请求,从而达到对自适应微隔离系统中主机的网络访问控制的能力。
基于上述对本申请实施例提供的自适应微隔离系统的介绍,现分别从微隔离服务器和微隔离客户端两个角度分别对本申请实施例提供的一种网络隔离方法进行详细说明。
微隔离服务器提供一种策略信息生成方法,基于该策略信息生成方法可以生成ACL,ACL包括基于策略信息生成方法所生成的至少一条策略信息。具体的,图2为本申请实施例提供的一种策略信息生成方法流程图。
如图2所示,该方法包括:
S201、响应用户利用策略图构建组件提供的元件执行策略图构建操作所构建的策略图,策略图与网络环境的业务需求有关;
本申请实施例中,微隔离服务器提供策略图构建组件,该策略图构建组件提供至少一个元件,用户可以根据业务需求在策略图构建组件上进行构图操作以生成网络环境的策略图。网络环境的策略图中包括网络环境中用于加入自适应微隔离系统的各个主机。
其中,至少一个元件包括表征主机的元件、表征进程的元件、表征访问关系的元件等。以上仅仅是本申请实施例提供的至少一个元件的优选内容,有关至少一个元件的具体内容,发明人可根据自己的需求进行设置,在此不做限定。
本申请实施例中,业务需求可以涉及网络区域划分需求(比如,安全区域划分需求)、主机功能划分需求、不同功能应用进程的需求等。
以上仅仅本申请实施例提供的业务需求的优选内容,有关业务需求的具体内容,发明人可根据自己的需求进行设置,在此不做限定。
微隔离服务器提供的策略图构建组件提供用于构建策略图的至少一个元件,用户可以利用网络环境的业务需求选取至少一个元件中的一个或多个元件执行策略图构建操作,以在策略图构建组件上构建网络环境的策略图。
S202、根据策略图表征的访问关系生成网络环境的原始策略信息;
用户构建的网络环境的策略图表征网络环境的访问关系,访问关系包括网络区域之间的访问关系、网络区域中各主机之间的访问关系、主机和进程之间的访问关系,以及进程账户和资源之间的访问关系中的任意一项或多项;其中,资源包括主机和/或进程。
本申请实施例提供的策略图构建组件还可以自动对用户构建的网络环境的策略图进行分析以自动生成适用于该网络环境的原始策略信息。网络环境的原始策略信息指示网络环境的策略图表征的访问关系。
S203、对网络环境的原始策略信息进行解析得到满足访问控制策略语法规则的网络环境的至少一条策略信息。
作为本申请实施例的一种优选实施方式,网络环境的原始策略信息可以是根据用户构建的策略图表征的访问关系自动生成的。
作为本申请实施例的另一种优选实施方式,网络环境的原始策略信息也可以是由工作人员人工编写的。
需要说明的是,网络环境的原始策略信息并不是网络环境的ACL,工作人员不需要依赖于对访问控制策略语法规则(即,ACL语法规则)的详细了解便可实现对原始策略信息的编写,提高了策略信息编写效率、降低了策略信息编写门槛及人工成本。
本申请实施例提供的一种策略信息生成方法,在确定网络环境的原始策略信息后,可以对所述网络环境的原始策略信息进行解析得到满足ACL语法规则的所述网络环境的至少一条策略信息。
本申请在确定网络环境的原始策略信息后,可以自动将原始策略信息解析成满足ACL语法规则的策略信息,即,将原始策略信息解析成ACL,实现对ACL的可编程能力,ACL能够被自适应微隔离系统识别,以实现网络隔离功能。
并且,本申请实施例中一条原始策略信息可以被解析成一条或多条策略信息,基于此,不仅可以降低原始策略信息的编写工作量,而且不需要依赖于工作人员对ACL语法规则的详细了解,降低了策略信息的生成成本。有关一条原始策略信息可以被解析成一条或多条策略信息的相关内容在图3中有描述,在此不做赘述。
进一步的,本申请实施例提供的一种策略信息生成方法,还可以由安装在主机上的微隔离客户端实现对网络环境变化信息和主机功能变化信息的采集,由微隔离客户端将采集到的网络环境变化信息和主机功能变化信息上传到自适应微隔离系统控制中心,由自适应微隔离系统控制中心根据网络环境变化信息和主机功能变化信息自动对当前网络环境的至少一条策略信息进行更新,即对当前网络环境的ACL进行更新得到更新后的ACL。
更进一步的,微隔离服务器还可以将更新后的ACL下发到网络环境中加入到自适应微隔离系统的主机,以便于主机对其本地存储的ACL进行更新,保证其本地存储的ACL为最新的ACL,且实现访问策略的及时更新,保证主机和微隔离服务器中ACL的一致性。
本申请实施例中,网络环境变化信息包含主机中涉及到的网络相关的变化,比如,主机名变化、IP地址变化、应用路径变化等等。主机功能变化信息包括主机上的软件、账户等信息的变化。以上仅仅是本申请实施例提供的网络环境变化信息和主机功能变化信息的优选内容,有关网络环境变化信息的主机功能变化信息的具体内容,发明人可根据自己的需求进行设置,在此不做限定。
图3为本申请实施例提供的一种策略图示意图,下面结合图3对本申请实施例提供的策略信息生成方法进行详细说明:
1、参见图3根据用户对业务的需求将网络环境划分了四个网络区域:在线A系统安全域、在线B系统安全域、离线数据安全域和基础服务安全域。
2、图3中安全域之间的访问控制用粗实线表示,箭头表示访问方向,未设置阻断标记的粗实线表示两个域之间默认网络互通,设置阻断标记的粗实线表示两个域之间默认隔离。阻断标记可以为“X”,图3中的安全域访问原始策略信息为,原始策略信息中箭头方向表示访问方向:
{在线A系统安全域}->{离线数据安全域}{基础服务安全域}:Accept
{在线B系统安全域}->{离线数据安全域}{基础服务安全域}:Accept
{离线数据安全域}->{基础服务安全域}:Accept
{离线数据安全域}->{在线A系统安全域}{在线B系统安全域}:Deny
未定义的域之间采用默认访问规则(默认规则为Deny),可以在自适应微隔离控制中心进行配置。
3、参见图3进程之间的访问控制用细实线表示,箭头表示访问方向,阻断标记表示阻断,域内的主机之间默认规则为Accept。以图3中的离线数据安全域的主机的原始策略信息为例进行说明,图3中离线数据安全域的主机的原始策略信息为:
{Host6}<->{Host7}{Host8}:Accept
{Host7}<->{Host8}:Accept
4、自适应微隔离系统支持混部主机(为了降低成本和提高主机资源利用率,很多高性能主机会多业务混部、在离线混部等。),通过配置应用和进程级的访问控制,解决混部机器的网络访问控制。示意图的中混部主机的原始策略信息为:
{Host2}<->{Host3.ProcessA}:Accept
{Host2}->{Host3.ProcessB}:Deny
{Host4}<->{Host3.ProcessA}:Deny
{Host4}<->{Host3.ProcessB}:Accept
5、自适应微隔离系统支持基于用户身份的访问控制,利用此特性可以配置某个特权用户进程访问特定的资源,而不受限于域和主机的访问控制。如图3中的Host0.Account0.Process0的原始策略信息为:
{Host0.Account0.Process0}->{在线A系统安全域}{在线B系统安全域}{离线数据安全域}{基础服务安全域}:Accept
需要说明的是,Accept表征允许网络访问请求,即放行网络访问请求;Deny表征阻断网络访问请求,即拦截网络访问请求。
6、对网络环境的原始策略信息进行解析得到满足ACL语法规则的网络环境的至少一条策略信息。
本申请实施例中,原始策略信息中“:”符号之前的信息为原始策略信息中的条件信息,“:”符号之后的信息为原始策略信息中的动作信息。
比如,原始策略信息{Host7}<->{Host8}:Accept的条件信息为{Host7}<->{Host8},原始策略信息{Host7}<->{Host8}:Accept的动作信息为Accept。
并且,如果以原始策略信息{Host6}<->{Host7}{Host8}:Accept为例,该原始策略信息至少能够被解析成两条策略信息,一条策略信息与{Host6}<->{Host7}:Accept相关,另一条策略信息与{Host6}<->{Host8}:Accept相关。
即,在对原始策略信息{Host6}<->{Host7}{Host8}:Accept进行解析以得到满足ACL语法规则的策略信息时,可以先将原始策略信息{Host6}<->{Host7}{Host8}:Accept拆分成两条原始策略信息,其中,一条原始策略信息为{Host6}<->{Host7}:Accept,另一条原始策略信息为{Host6}<->{Host8}:Accept;进而在将{Host6}<->{Host7}:Accept解析成满足ACL语法规则的策略信息,以及将{Host6}<->{Host8}:Accept解析成满足ACL语法规则的策略信息。
其中,原始策略信息的条件信息与原始策略信息被解析成的策略信息的条件信息有关,原始策略信息的动作信息与原始策略信息被解析成的策略信息的动作信息有关。
以上策略规划管理、策略的编排都是在自适应微隔离系统控制中心上进行的,并且通过控制通道将策略更新到每个自适应微隔离系统的每个主机上,达到控制网络访问的效果。
本申请实施例,微隔离客户端基于在微隔离服务器生成的至少一条策略信息可以实现对网络访问请求的访问控制,即实现对网络环境的网络隔离控制。下面结合图4-5对本申请实施例提供的一种网络隔离方法进行详细说明。其中,图4为本申请实施例提供的一种网络隔离方法流程图,图5为本申请实施例提供的一种网络隔离方法示意图。
如图4所示,该方法包括:
S401、监听并挂起主机发起的网络访问请求,获取网络请求的数据包信息;数据包信息包括网络五元组和目标信息,目标信息不同于网络五元组;
参见图5,Windows主机采用内核hook技术在主机操作系统内核植入hook模块,具体使用方案是基于操作系统的TDI/WFP框架开发内核过滤驱动,为了能够监控和拦截系统的全部网络访问控制,需要注册WFP提供的四层layer(Data Layer、ALE Layer、TransportLayer、IP Layer),每个层代表一个检查点,可以通过程序插入拦截过滤逻辑阻断或者篡改数据包,其中:Data Layer表示数据层,此层看到的数据包为应用层数据,可在此层修改数据包体。ALE Layer表示为应用层加强层(Application Layer Enforcement Layer),此层看到的数据包还只是应用层数据,可在此层修改数据包体。Transport层表示传输层,此层看到的数据包的格式带有传输层(UDP/TCP)头部信息,此层可以修改UDP/TCP头部信息。IP层表示为网络层,此层看到的数据包的格式带有IP头部信息,此层可以修改IP头部信息。
Windows主机中的进程使用socket和其他主机建立网络连接并进行通信,发起网络访问请求,调用WinSock模块进入内核协议栈,内核协议栈在对网络访问请求进行网络封包过程中,会回调在Windows系统内核植入的hook模块,执行hook模块的代码逻辑,hook模块将网络访问请求挂起,并获取当前网络访问请求的数据包信息发送到ACL Rules Cache中。
Linux主机采用用户态hook技术在进程内存植入hook模块,具体使用方案是基于操作系统提供的preload技术。通过Linux系统应用进程加载动态库的时机,将hook模块插入到libc.so模块之前,使用被植入的hook模块替换改写C标准库提供的socket函数,socket函数例如connect函数、accept函数、accept4函数、sendto函数、recvform函数等。为了解决动态调用等方式绕过hook点,还需要拦截dlopen和dlsym函数。
Linux主机中进程使用C标准接口和其他主机建立网络连接并进行通信,发起网络访问请求时,首先会进入到libHook.so模块提供的hook模块中,执行hook模块中的代码逻辑,hook模块将当前网络访问请求挂起,并获取当前网络访问请求的数据包信息发送到ACLRules Cache中。
在本申请实施例中,优选的,网络访问请求的数据包信息包括网络五元组和目标信息。目标信息指示发起网络访问请求的进程、发起进程的进程账户、进程所属应用和主机中的任意一项或多项。
以上仅仅是本申请实施例提供的数据包信息的优选内容,有关数据包信息的具体内容,发明人可根据自己的需求进行设置,在此不做限定。
S402、确定服务器响应对网络环境策略图的构建操作生成的网络环境的至少一条策略信息,策略信息包括条件信息和动作信息;
在本申请实施例中,ACL Rules Cache中存储有微隔离服务器生成的网络环境的至少一条策略信息,策略信息包括条件信息和动作信息。
ACL Rules Cache可以为微隔离服务器中的缓存,也可以为网络环境中加入自适应微隔离系统的主机中的缓存。
S403、检测至少一条策略信息中是否存在条件信息被数据包信息命中的目标策略信息;如果至少一条策略信息中存在条件信息被数据包信息命中的目标策略信息,执行步骤S404;
本申请实施例中,若ACL Rules Cache为微隔离服务器中的缓存,则说明hook模块将数据包信息上传到微隔离服务器,进而由微隔离服务器将数据包信息发送到ACL RulesCache,相应的,由微隔离服务器检测其存储的至少一条策略信息中是否存在条件信息命中数据包信息的目标策略信息,如果存在,将目标策略信息的动作信息返回至常驻进程。
本申请实施例中,若ACL Rules Cache为微隔离客户端中的缓存,则说明hook模块将数据包信息上传到常驻进程,进而由常驻进程将数据包信息发送到微隔离客户端的ACLRules Cache,相应的,由微隔离客户端的常驻进程检测微隔离客户端本地存储的至少一条策略信息中是否存在条件信息命中数据包信息的目标策略信息,如果存在,确定目标策略信息的动作信息。
需要说明的是,如果至少一条策略信息中存在条件信息与数据包信息相同的策略信息,则确定至少一条策略信息中条件信息与数据包信息相同的策略信息为目标策略信息;如果至少一条策略信息中不存在条件信息与数据包信息相同的策略信息,则确定至少一条策略信息中不存在条件信息命中数据包信息的目标策略信息。
S404、根据目标策略信息的动作信息控制网络访问请求的流转状态。
在本申请实施例中,常驻进程根据目标策略信息的动作信息控制网络访问请求的流转状态。具体的,常驻进程将目标策略信息的动作信息返回至hook模块,由hook模块根据动作信息控制网络访问请求的流转状态。
动作信息指示Deny(阻断网络访问请求)/Accept(允许网络访问请求);若目标策略信息的动作信息指示阻断网络访问请求,则hook模块阻断网络访问请求,即hook模块拦截网络访问请求;若目标策略信息的动作信息指示允许网络访问请求,则hook模块放行网络访问请求,即允许网络访问请求进行网络访问。
需要说明的是,操作系统提供的Hook技术种类较多,从大类上分为:用户态Hook技术和内核态Hook技术,技术越底层,被绕过的风险越小。本发明方案中,Linux系统采用的是用户态hook技术,Windows系统采用的是内核态hook技术。Linux系统采用的用户态hook技术可以被内核态hook技术替代,例如,基于Linux内核的Netfilter框架进行技术扩展,同样能达到进程级别的微隔离技术方案。同理,Windows系统采用的内核态hook技术也可以被用户态的hook技术替代,实现难度较小,容易被绕过。
本申请提供一种适用于物理网络环境和虚拟化网络环境的自适应微隔离系统,其核心技术是基于系统的Hook技术实现网络隔离功能;支持基于用户、应用程序、进程的ACL(Access Control List:访问控制列表),并且支持网络ACL可编程能力。本申请解决了传统的网络环境结构无法有效隔离和防护主机的东西向攻击流量问题,无法基于用户身份和进程做更细粒度的网络防护,无法根据网络环境的变化自动调整ACL的问题。
并且,自适应微隔离系统中的主机与物理位置无关,支持弹性扩展;ACL中策略信息条目依赖当前主机内存大小限制,支持十万级以上ACL;而且,通过集中式云控动态下发ACL规则,配置不容易出错;同时系统的自适应技术能根据网络环境变化和主机功能变化信息而自动调整ACL。
图6为本申请实施例提供的一种网络隔离装置的结构示意图。
如图6所示,该装置包括:
数据包信息获取单元61,用于监听并挂起主机发起的网络访问请求,获取网络请求的数据包信息;数据包信息包括网络五元组和目标信息,目标信息不同于网络五元组;
策略信息确定单元62,用于确定服务器响应对网络环境策略图的构建操作生成的网络环境的至少一条策略信息,策略信息包括条件信息和动作信息;
目标策略信息检测单元63,用于检测至少一条策略信息中是否存在条件信息被数据包信息命中的目标策略信息;
流转控制单元64,用于如果至少一条策略信息中存在条件信息被数据包信息命中的目标策略信息,根据目标策略信息的动作信息控制网络访问请求的流转状态。
在本申请实施例中,优选的,数据包信息获取单元,具体用于:
利用响应主机进程发起操作在进程内存中植入的hook模块,监听进程发起的网络访问请求,挂起网络访问请求,并获取网络访问请求的数据包信息;或者,
根据在主机操作系统内核中植入的hook模块,监听主机的进程发起的网络访问请求,挂起网络访问请求,并获取网络访问请求的数据包信息。
进一步的,本申请实施例提供的一种网络隔离装置还包括策略信息生成单元,该策略信息生成单元包括:
策略图构建单元,用于响应用户利用策略图构建组件提供的元件执行策略图构建操作所构建的策略图,策略图与网络环境的业务需求有关;
原始策略信息生成单元,用于根据策略图表征的访问关系生成网络环境的原始策略信息;访问关系包括网络区域之间的访问关系、网络区域中各主机之间的访问关系、主机和进程之间的访问关系,以及进程账户和资源之间的访问关系中的任意一项或多项;
策略信息生成子单元,用于对网络环境的原始策略信息进行解析得到满足访问控制策略语法规则的网络环境的至少一条策略信息。
进一步的,本申请实施例提供的一种网络隔离装置还包括策略信息更新单元,该策略信息更新单元包括:
信息监控单元,用于监控网络环境的网络环境变化信息和主机功能变化信息;
策略信息更新子单元,用于基于网络环境变化信息和主机功能变化信息更新网络环境的至少一条策略信息。
在本申请实施例中,优选的,目标策略信息检测单元,包括:
第一确定单元,用于确定至少一条策略信息中是否存在条件信息与数据包信息相同的策略信息;
第二确定单元,用于如果至少一条策略信息中存在条件信息与数据包信息相同的策略信息,将至少一条策略信息中条件信息与数据包信息相同的策略信息确定为目标策略信息;
第三确定单元,用于如果至少一条策略信息中不存在条件信息与数据包信息相同的策略信息,确定至少一条策略信息中不存在条件信息被数据包信息命中的目标策略信息。
在本申请实施例中,优选的,流转控制单元包括:
动作信息获取单元,用于获取目标策略信息中的动作信息,动作信息指示阻断网络访问请求/允许网络访问请求;
流转控制子单元,用于将动作信息返回至hook模块,由hook模块根据动作信息控制网络访问请求的流转状态。
在本申请实施例中,优选的,目标信息指示发起网络访问请求的进程、发起进程的进程账户、进程所属应用和主机中的任意一项或多项。
图7为本申请实施例提供的一种网络隔离方法所使用的电子设备的硬件结构框图。本申请实施例中,电子设备可以为主机。
如图7所示该电子设备可以包括:处理器701、存储器702、通信接口703、输入单元704和显示器705和通信总线706。
存储器702中用于存放一个或者一个以上程序,程序可以包括程序代码,程序代码包括计算机操作指令,在本发明实施例中,该存储器中至少存储有用于实现以下功能的程序:
监听并挂起主机发起的网络访问请求,获取网络请求的数据包信息;数据包信息包括网络五元组和目标信息,目标信息不同于网络五元组;
确定服务器响应对网络环境策略图的构建操作生成的网络环境的至少一条策略信息,策略信息包括条件信息和动作信息;
检测至少一条策略信息中是否存在条件信息被数据包信息命中的目标策略信息;
如果至少一条策略信息中存在条件信息被数据包信息命中的目标策略信息,根据目标策略信息的动作信息控制网络访问请求的流转状态。
即,该存储器中存储的程序用于实现上述实施例提供的网络隔离方法。
可选的,程序的细化功能和扩展功能可参照下文描述。
处理模块701、存储器702、通信接口703、输入单元704、显示器705、均通过通信总线706完成相互间的通信。
在本发明实施例中,该处理器701,可以为中央处理器(Central ProcessingUnit,CPU),特定应用集成电路(application-specific integrated circuit,ASIC),数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件等。
该处理器可以调用并执行存储器702中存储的程序。
该通信接口703可以为通信模块的接口,如GSM模块的接口。
本发明还可以包括输入单元704,该输入单元可以包括感应触摸显示面板上的触摸事件的触摸感应单元、键盘等等。
该显示器705包括显示面板,如触摸显示面板等。在一种可能的情况中,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-EmittingDiode,OLED)等形式来配置显示面板。
当然,图7所示的电子设备结构并不构成对本发明实施例中电子设备的限定,在实际应用中终端可以包括比图7所示的更多或更少的部件,或者组合某些部件。
进一步的,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机可执行指令,该计算机可执行指令用于执行上述网络隔离方法。
可选的,计算机可执行指令的细化功能和扩展功能可参照上文描述。
本申请实施例提供的一种网络隔离方法、装置、电子设备及存储介质,由用于实现网络隔离功能的客户端和用于为客户端提供技术支持的服务器实现网络隔离功能,网络环境中的主机上安装客户端,客户端可以监听其所属主机发起的网络访问请求,获取该网络访问请求中的数据包信息,进而基于至少一条策略信息对数据包信息进行判断以确定网络访问请求的流转状态。
本申请提供的网络隔离方法不区分虚拟化网络环境和物理网络环境,即既适用于虚拟化网络环境又适用于物理网络环境;而且本申请数据包信息不仅包括网络五元组还包括不同于网络五元组的目标信息,提高了用于进行网络隔离判断的数据的全面性,相应提高了网络隔离的全面性;进一步,本申请中策略信息(访问控制策略)是由服务器响应用户构建的网络环境策略图自动生成的,不需要用户详细了解掌握访问控制策略语法规则,并且策略信息不需要配置在网络交换设备,策略信息的存储空间不受限,因此,有效降低了人工成本、提高了策略生成效率及网络隔离效率。
以上对本发明所提供的一种网络隔离方法、装置、电子设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备所固有的要素,或者是还包括为这些过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。