一种内网主机及云内引流方法、装置与流程

文档序号:23143918发布日期:2020-12-01 13:23阅读:242来源:国知局
一种内网主机及云内引流方法、装置与流程

本发明涉及计算机技术领域,特别涉及一种内网主机及云内引流方法、装置。



背景技术:

当前,在检测网络流量中是否存在网络攻击行为,通常通过在核心层的交换机上安装镜像端口的方式,将通过该交换机的流量引流到防火墙或探针等流量分析平台。但由于在内网环境中的部分通信流量的传输不通过核心层交换机,所以使用流量镜像的方式无法将网络中的所有通信流量引流到流量分析平台,减小了流量检测的范围,从而降低了内网之间通信的安全性。因此,如何将所有通信流量引流到流量分析平台是目前急需解决的问题。



技术实现要素:

有鉴于此,本发明的目的在于提供一种内网主机及云内引流方法、装置,能够将主机的东西向流量和南北向流量引流到流量检测平台,扩大了流量检测的范围。其具体方案如下:

第一方面,本申请公开了一种云内引流装置,所述云内引流装置应用于内网主机,包括:

原始套接字调用模块,用于确定待调用的包含协议族类型、套接字类型和报文协议类型的socket函数,所述套接字类型为链路层原始套接字;然后通过调用所述socket函数,创建链路层原始套接字;

通信流量获取模块,用于通过预设的克隆函数将通过报文收发函数接收和发送的与所述报文协议类型对应的链路层报文拷贝至所述链路层原始套接字,以得到所述内网主机的包含东西向流量和南北向流量的通信流量;

流量发送模块,用于将所述通信流量发送至流量检测平台,以便所述流量检测平台检测所述通信流量中的攻击流量。

可选的,所述云内引流装置,还包括:

地址获取模块,用于获取所述流量检测平台的服务器地址;

规则确定模块,用于基于所述服务器地址确定bpf过滤规则,以便所述通信流量获取模块利用所述bpf过滤规则对所述通信流量中的目的地址为所述服务器地址的流量数据进行过滤,以得到过滤后的通信流量。

可选的,所述通信流量获取模块,包括:

第一获取单元,用于获取由所述内网主机通过二层交换机与其他内网主机进行通信的过程中接收和发送的流量,以得到第一类东西向流量;

第二获取单元,用于获取由所述内网主机通过二层交换机和三层交换机与其他内网主机进行通信的过程中接收和发送的流量,以得到第二类东西向流量;

第三获取单元,用于获取由所述内网主机通过二层交换机和三层交换机与外网进行通信的过程中接收和发送的流量,以得到所述内网主机的南北向流量。

可选的,所述流量发送模块,包括:

第一发送单元,用于将所述通信流量依次通过二层交换机和三层交换机,发送至预先与所述三层交换机建立通信连接的流量检测平台,以便所述流量检测平台检测所述通信流量中的攻击流量。

可选的,所述流量发送模块,包括:

第二发送单元,用于将所述通信流量直接通过路由器发送至预先与所述路由器建立通信连接的流量检测平台,以便所述流量检测平台检测所述通信流量中的攻击流量。

可选的,所述云内引流装置,还包括:

原始套接字关闭模块,用于关闭所述链路层原始套接字,以控制所述通信流量获取模块停止通过所述链路层原始套接字获取所述内网主机的通信流量。

可选的,所述流量发送模块,还包括:

压缩单元,用于在将所述通信流量发送至所述流量检测平台之前,对所述通信流量进行加密压缩处理,得到压缩后通信流量。

可选的,所述流量发送模块,还包括:

第一压缩触发单元,用于确定所述数据包流量对应的数据包长度,若所述数据包长度大于所述链路层原始套接字对应的缓存单元中的剩余内存,则向所述压缩单元发送第一压缩指令,以便所述压缩单元在接收到所述第一压缩指令后对所述通信流量进行加密压缩处理。

可选的,所述流量发送模块,还包括:

第二压缩触发单元,用于根据预设时长向所述压缩单元发送第二压缩指令,以便所述压缩单元在接收到所述第二压缩指令后对所述通信流量进行加密压缩处理。

第二方面,本申请公开了一种云内引流方法,应用于安装有云内引流装置的内网主机,包括:

确定待调用的包含协议族类型、套接字类型和报文协议类型的socket函数,所述套接字类型为链路层原始套接字;然后通过调用所述socket函数,创建链路层原始套接字;

通过预设的克隆函数将通过报文收发函数接收和发送的与所述报文协议类型对应的链路层报文拷贝至所述链路层原始套接字,以得到所述内网主机的包含东西向流量和南北向流量的通信流量;

将所述通信流量发送至流量检测平台,以便所述流量检测平台检测所述通信流量中的攻击流量。

第三方面,本申请公开了一种内网主机,包括:

存储器,用于保存计算机程序;

处理器,用于执行所述计算机程序,以实现前述的云内引流方法。

可见,本申请在内网主机中安装了云内引流装置,通过该内网主机中的云内引流装置,调用预先确定的包含协议族类型、套接字类型和报文协议类型的socket函数,以创建链路层原始套接字;然后通过预设的克隆函数将通过报文收发函数接收与发送的与报文协议类型对应的链路层报文拷贝至链路层原始套接字,通过上述过程能够获取到经过内网主机的所有链路层报文,由此可以得到内网主机的包含南北向流量和东西向流量的通信流量,接着将所述通信流量发送至流量检测平台,以便所述流量检测平台检测所述通信流量中的攻击流量。本申请中,通过将上述基于链路层原始套接字来收集链路层报文的云内引流装置安装于内网主机内,使得可以通过云内引流装置获取经过内网主机的所有通信流量,由此一来,可以扩大流量检测的范围,避免了流量不完整的问题,进而提高了内网之间通信安全检测的能力。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请提供的一种云内引流装置结构示意图;

图2为本申请提供的一种具体的云内引流装置结构示意图;

图3为本申请提供的一种内网通信结构示意图;

图4为本申请提供的一种云内引流方法流程图;

图5为本申请提供的一种具体的云内引流方法流程图;

图6为本申请提供的一种内网主机结构图。

具体实施方式

现有技术中,通过在核心层的交换机上安装镜像端口的方式,将通过交换机的通信流量引流到流量分析平台,减小了流量检测的范围。为了避免上述问题,本申请公开了一种云内引流装置,可以将内网主机的东西向流量和南北向流量引流到流量分析平台。

本申请实施例公开了一种云内引流装置,参见图1所示,该云内引流装置包括:

原始套接字调用模块11,用于确定待调用的包含协议族类型、套接字类型和报文协议类型的socket函数,所述套接字类型为链路层原始套接字;然后通过调用所述socket函数,创建链路层原始套接字。

本实施例中,预先确定出待调用的socket函数,该socket函数中包含协议族类型、套接字类型和报文协议类型这三个参数。

需要指出的是,在用于创建套接字的socket函数中,协议族类型具体可以包括ipv4互联网协议族(即pf_inet)、ipv6互联网协议族(即pf_inet6)、本地通信的unix协议族(即pf_local)和底层套接字的协议族(即pf_packet)等,套接字类型可以包括字节流套接字(即sock_stream)、数据报套接字(即sock_dgram)和原始套接字(即sock_raw)等,报文协议类型包括eth_p_all(表示用于接收本机收到的所有二层报文)、eth_p_ip(表示用于接收本机收到的所有ip报文)、eth_p_arp(表示用于接收本机收到的所有arp报文)、eth_p_rarp(表示用于接收本机收到的所有rarp报文)等。可以理解的是,套接字中实际采用的最终协议信息是通过socket函数的第三个参数传递的,也即是通过报文协议类型这个参数进行传递的,而套接字的协议族范围是由socket函数的第一个参数进行规定的,也即是由协议族类型这个参数来进行规定的。可以理解的是,对于一个socket函数来说,在指定的协议族范围内是通过第一个参数来决定第三个参数的。

本实施例中,所采用的套接字类型为链路层原始套接字,为了创建链路层原始套接字,相应的socket函数具体可以是:

socket(pf_packet,sock_raw,htons(eth_p_all));

本实施例通过调用上述socket函数,可以创建相应的链路层原始套接字,通过该链路层原始套接字可以获取到经过内网主机的所有链路层报文,从而得到内网主机对应的东西向流量和南北向流量。

其中,上述东西向流量是指在内网环境中节点之间相互通信的流量,上述南北向流量是指内网中的节点与公网之间通信的流量。其中,内网一般是指小范围内的计算机互联网络,例如公司、学校、家庭或行政部门,外网一般是指连接不同地区计算机通信的远程网,并与因特网连接;在实际应用中,从地理范围划分,终端可划分为内网终端和外网终端,如位于企业或单位内部进行业务访问或网络访问的终端为内网终端,从企业或单位外部进行业务访问或网络访问的终端为外网终端。其中,内网主机可以是包含windows操作系统或linux操作系统的电脑等终端设备。

通信流量获取模块12,用于通过预设的克隆函数将通过报文收发函数接收和发送的与所述报文协议类型对应的链路层报文拷贝至所述链路层原始套接字,以得到所述内网主机的包含东西向流量和南北向流量的通信流量。

本实施例中,通过预设的克隆函数将通过报文收发函数接收和发送的与上述报文协议类型对应的链路层报文拷贝至上述链路层原始套接字,即拷贝至与上述链路层原始套接字对应的缓冲区,以得到所述内网主机的包含东西向流量和南北向流量的通信流量。其中,上述报文收发函数可以为skb_clone函数,上述报文收发函数包括报文接收函数(即netif_receive_skb函数)和报文发送函数(即dev_hard_start_xmit函数);可以理解的是,在上述报文收发函数根据上述socket函数中的套接字类型和报文协议类型收发到对应的链路层报文后,可以利用上述克隆函数通过抓包的方式将上述链路层报文拷贝至上述链路层原始套接字对应的缓冲区。可以理解的是,上述链路层原始套接字作为linux平台上的一种特殊的套接字,基于调用的链路层原始套接字对内网主机的数据包流量进行抓包,可以获取包含以太网头的完整以太网帧,即包含源mac地址和目的mac地址的以太网帧,从而得到相应的链路层报文。

流量发送模块13,用于将所述通信流量发送至流量检测平台,以便所述流量检测平台检测所述通信流量中的攻击流量。

本实施例中,上述流量检测平台可以为云工作负载保护平台(即cloudworkloadprotectionplatform,cwpp),在上述通信流量获取模块12获取到上述通信流量后,将上述通信流量发送至云工作负载保护平台实现与cwpp管理端的交互,以便云工作负载保护平台可以通过检测上述通信流量判断是否存在攻击行为,从而达到收集信息、下发策略等安全防护效果。

本实施例中,所述云内引流装置,还可以包括:原始套接字关闭模块,用于关闭所述链路层原始套接字,以控制所述通信流量获取模块停止通过所述链路层原始套接字获取所述内网主机的通信流量。可以理解的是,通过关闭所述链路层原始套接字,可以控制上述通信流量获取模块停止通过上述链路层原始套接字获取上述内网主机的通信流量,同时可以避免句柄的泄露。

可见,本申请在内网主机中安装了云内引流装置,通过该内网主机中的云内引流装置,调用预先确定的包含协议族类型、套接字类型和报文协议类型的socket函数,以创建链路层原始套接字;然后通过预设的克隆函数将通过报文收发函数接收与发送的与报文协议类型对应的链路层报文拷贝至链路层原始套接字,通过上述过程能够获取到经过内网主机的所有链路层报文,由此可以得到内网主机的包含南北向流量和东西向流量的通信流量,接着将所述通信流量发送至流量检测平台,以便所述流量检测平台检测所述通信流量中的攻击流量。本申请中,通过将上述基于链路层原始套接字来收集链路层报文的云内引流装置安装于内网主机内,使得可以通过云内引流装置获取经过内网主机的所有通信流量,由此一来,可以扩大流量检测的范围,避免了流量不完整的问题,进而提高了内网之间通信安全检测的能力。

本申请实施例公开了一种具体的云内引流装置,参见图2所示,该云内引流装置具体可以包括:

原始套接字调用模块11,用于确定待调用的包含协议族类型、套接字类型和报文协议类型的socket函数,所述套接字类型为链路层原始套接字;然后通过调用所述socket函数,创建链路层原始套接字。

通信流量获取模块12,用于通过预设的克隆函数将通过报文收发函数接收和发送的与所述报文协议类型对应的链路层报文拷贝至所述链路层原始套接字,以得到所述内网主机的包含东西向流量和南北向流量的通信流量。

本实施例中,所述通信流量获取模块12,具体可以包括:

第一获取单元121,用于获取由所述内网主机通过二层交换机与其他内网主机进行通信的过程中接收和发送的流量,以得到第一类东西向流量;

第二获取单元122,用于获取由所述内网主机通过二层交换机和三层交换机与其他内网主机进行通信的过程中接收和发送的流量,以得到第二类东西向流量;

第三获取单元123,用于获取由所述内网主机通过二层交换机和三层交换机与外网进行通信的过程中接收和发送的流量,以得到所述内网主机的南北向流量。

其中,上述二层交换机可以包括接入交换机和/或汇聚交换机,上述三层交换机为核心交换机。可以理解的是,上述第一获取单元121可以获取由上述内网主机通过接入交换机与其他内网主机进行通信的过程中接收和发送的流量,还可以获取由上述内网主机通过接入交换机和汇聚交换机与其他内网主机进行通信的过程中接收和发送的流量,以得到上述第一类东西向流量;上述第二获取单元122,可以获取由上述内网主机依次通过接入交换机、汇聚交换机和核心交换机与其他内网主机进行通信的过程中接收和发送的流量,以得到上述第二类东西向流量;上述第三获取单元123,可以获取由上述内网主机通过接入交换机、汇聚交换机和核心交换机与外网进行通信的过程中接收和发送的流量,以得到上述内网主机的南北向流量

参见图3所示,当前主流的网络架构为3层架构,即接入、汇聚、核心三层,该方案在写字楼场景、园区、数据中心场景非常常见;核心交换机为所有流量的最终承受者和汇聚者;汇聚层交换机为多台接入层交换机的汇聚点,作用是将接入节点统一出口,同样也做转发及选路;接入层交换机为网络中直接面向用户连接或访问网络的交换机。相关技术中,通过在核心交换机中安装镜像接口,将通过核心交换机的通信流量发送至流量分析平台,以便分析通信流量中是否存在攻击流量。但是,这种现有方式只能够检测到南北向流量以及部分的东西向流量,即内网与外网的通信流量,例如图3中,主机5到外网的通信流量;以及部分东西向流量,即内网之间的通信流量,例如图5中,主机1到主机6的通信流量;由此可以看出,大部分的东西向流量不能被引流至流量分析平台,进而不能进行流量检测,降低了针对内网通信安全的检测能力;例如,一个主机因插入携带病毒的u盘,该病毒有横向移动的能力,通过流量镜像方案只能检测到那些经过核心交换机的异常流量,在接入层、汇聚层发生的网络攻击,通过该方式就无法进行检测。

为此,本实施例将云内引流功能应用在每个内网主机的linuxagent端中,得到每个内网主机的云内引流装置(agent),然后通过云内引流装置来获取经过内网主机的东西向流量和南北向流量。具体的,如图3所示,主机3中的云内引流装置agent3通过本地的第一获取单元,获取主机3通过接入交换机2与主机4进行通信的通信流量;主机2中的云内引流装置agent2通过本地的第一获取单元,获取主机2通过接入交换机1、汇聚交换机1和接入交换机2与主机4进行通信的通信流量;主机1中的云内引流装置agent1通过本地的第二获取单元,获取主机1通过接入交换机1、汇聚交换机1、核心交换机、汇聚交换机2和接入交换机3与主机6进行通信的通信流量;主机5中的云内引流装置agent5通过本地的第三获取单元,获取主机5通过接入交换机3、汇聚交换机2和核心主机与外网进行通信的通信流量。

流量发送模块13,用于将所述通信流量发送至流量检测平台,以便所述流量检测平台检测所述通信流量中的攻击流量。

在一种具体实施方式中,所述流量发送模块13,可以包括:第一发送单元131,用于将所述通信流量依次通过二层交换机和三层交换机,发送至预先与所述三层交换机建立通信连接的流量检测平台,以便所述流量检测平台检测所述通信流量中的攻击流量。可以理解的是,在上述通信流量获取模块12获取到内网主机的通信流量后,可以由上述第一发送单元131将上述通信流量依次通过接入交换机、汇聚交换机和核心交换机,发送至预先与上述核心交换机建立通信连接的流量检测平台。例如图3所示,主机3中的云内引流装置agent3通过本地的第一发送单元,将通信流量依次通过接入交换机2、汇聚交换机1和核心交换机,发送至预先与核心交换机建立通信连接的cwpp-服务器,以便所述cwpp-服务器检测所述通信流量中的攻击流量。

在一种具体实施方式中,所述流量发送模块13,可以包括:第二发送单元132,用于将所述通信流量直接通过路由器发送至预先与所述路由器建立通信连接的流量检测平台,以便所述流量检测平台检测所述通信流量中的攻击流量。可以理解的是,在上述通信流量获取模块12获取到内网主机的通信流量后,可以由上述第二发送单元132将上述通信流量直接通过预先与内网主机建立通信连接的路由器发送至预先与上述路由器建立通信连接的流量检测平台,以便所述流量检测平台检测所述通信流量中的攻击流量。

本实施例中,所述流量发送模块13,具体还可以包括:压缩单元133,用于在将所述通信流量发送至所述流量检测平台之前,对所述通信流量进行加密压缩处理,得到压缩后通信流量。可以理解的是,可以通过上述压缩单元133对获取的内网主机的通信流量进行加密压缩处理,以得到压缩后流量。然后,可以通过上述第一发送单元131或所述第二发送单元132将所述压缩后流量通过tcp协议发送至所述流量检测平台。由此一来,通过对上述通信流量进行压缩可以减少传输数据的长度,进而在传输过程中节约内网的带宽。本实施例中,上述压缩单元133具体可以基于libzip、lz4、gzip、brotli或zip进行上述加密压缩处理。

在一种具体实施方式中,所述流量发送模块13,还可以包括:第一压缩触发单元,用于确定所述数据包流量对应的数据包长度,若所述数据包长度大于所述链路层原始套接字对应的缓存单元中的剩余内存,则向所述压缩单元发送第一压缩指令,以便所述压缩单元在接收到所述第一压缩指令后对所述通信流量进行加密压缩处理。可以理解的是,通过确定上述第一获取单元121、第二获取单元122或第三获取单元123获取到的数据包流量对应的数据包长度,判断上述数据包长度是否大于上述缓存单元中的剩余内存,若大于,则向上述压缩单元133发送第一压缩指令,以便压缩单元133在接收到上述第一压缩指令后对上述通信流量进行加密压缩处理,以得到上述压缩后流量。

在另一种具体实施方式中,所述流量发送模块13,还可以包括:第二压缩触发单元,用于根据预设时长向所述压缩单元133发送第二压缩指令,以便所述压缩单元133在接收到所述第二压缩指令后对所述通信流量进行加密压缩处理。可以理解的是,用户可以根据当前内网之间的通信情况设置通信流量的发送间隔时长,由上述第二压缩触发单元根据预设时长向上述压缩单元133发送第二压缩指令,以便上述压缩单元133在接收到上述第二压缩指令后对上述通信流浪进行加密压缩得到压缩后流量,再由上述第一发送单元131或第二发送单元132将上述压缩后流量通过tcp协议发送至上述流量检测平台。由此一来,通过根据预设时长向流量检测平台发送通信流量,可以避免获取的通信流量长时间存放于上述缓存单元。

地址获取模块14,用于获取所述流量检测平台的服务器地址。

规则确定模块15,用于基于所述服务器地址确定bpf(即berkeleypacketfilter,伯克利包过滤)过滤规则,以便所述通信流量获取模块利用所述bpf过滤规则对所述通信流量中的目的地址为所述服务器地址的流量数据进行过滤,以得到过滤后的通信流量。

本实施例中,可以采用云工作负载保护平台作为上述流量检测平台,在上述地址获取模块14获取到上述云工作负载保护平台的管理平台(即mgr,manager)服务器地址后,上述规则确定模块15可以基于上述服务器地址确定相应的bpf过滤规则,以便上述通信流量获取模块12基于所述链路层原始套接字和所述bpf过滤规则获取所述内网主机的所述通信流量;可以理解的是,基于获取的云工作负载保护平台的服务器地址,可以确定相应的bpf过滤规则,在通过上述通信流量获取模块12获取内网主机的通信流量时,可以基于bpf过滤规则并利用bpf过滤器过滤掉上述通信流量中包含cwpp服务端地址的数据包,即只获取除了目的地址为cwpp服务端地址的数据包之外的通信流量;可以理解的是,上述内网主机在与内网其他主机或外网进行通信的过程中会产生多个通信流量,而本实施例中,通过上述云内引流装置向上述流量检测平台发送的通信数据也属于上述内网主机的通信流量,因此在获取上述内网主机的通信流量时需要过滤掉发送至流量检测平台的通信数据,由此一来,可以避免重复获取相同的流量。

由上可见,本实施例中,基于链路层原始套接字和bpf过滤规则获取内网主机的通信流量,并根据缓存单元中的内存和/或预设时长对上述通信流量进行压缩处理,然后发送至流量检测平台。由于利用根据流量检测平台的服务器地址确定的bpf过滤规则在获取通信流量时可以避免重复获取相同的流量,提高了云内引流的效率;并且通过对通信流量进行压缩得到压缩后流量,并将压缩后流量发送至流量检测平台,可以减少传输数据的长度,进而在传输过程中节约内网的带宽,提高了云内引流的效率。

本实施例中,通过在每个内网主机中安装云内引流装置,并基于链路层原始套接字和bpf过滤规则获取主机的包含东西向流量和南北向流量的通信流量,然后通过对通信流量进行压缩,并通过路由可达方式将压缩后的通信流量发送至云工作负载保护平台,以便云工作负载保护平台检测通信流量中的攻击流量,从而达到收集信息、下发策略等安全防护效果。需要说明的是,本实施例不对上述云工作负载保护平台的安装位置进行限制,通信流量路由可达即可,即通过路由器可以到达。其中,本实施例中,上述云内引流装置可以安装于物理机的操作系统内,也可以安装在虚拟机的操作系统内。在linux主机安装了云内引流装置后,在主机上发生的任何网络行为,其通信流量可以全部抓取到,并把通信流量上报给云工作负载保护平台之后,由云工作负载保护平台对上报的通信流量,进行通信流量深度分析,检测其中存在的安全问题,例如:rdp爆破、ssh爆破、永恒之蓝攻击等。

进一步的,本申请实施例公开了一种内网主机,包括前述实施例公开的云内引流装置。其中,关于上述云内引流装置的具体构造和功能可以参考前述实施例中公开的相应内容,在此不再进行赘述。

进一步的,本申请实施例公开了一种云内引流方法,应用于安装有云内引流装置的内网主机,参见图4所示,该云内引流方法可以包括以下步骤:

步骤s11:确定待调用的包含协议族类型、套接字类型和报文协议类型的socket函数,所述套接字类型为链路层原始套接字;然后通过调用所述socket函数,创建链路层原始套接字。

步骤s12:通过预设的克隆函数将通过报文收发函数接收和发送的与所述报文协议类型对应的链路层报文拷贝至所述链路层原始套接字,以得到所述内网主机的包含东西向流量和南北向流量的通信流量。

步骤s13:将所述通信流量发送至流量检测平台,以便所述流量检测平台检测所述通信流量中的攻击流量。

可见,在本申请应用在内网主机的云内引流方法中,先调用预先确定的包含协议族类型、套接字类型和报文协议类型的socket函数,以创建链路层原始套接字;然后通过预设的克隆函数将通过报文收发函数接收与发送的与报文协议类型对应的链路层报文拷贝至链路层原始套接字,通过上述过程能够获取到经过内网主机的所有链路层报文,由此可以得到内网主机的包含南北向流量和东西向流量的通信流量,接着将所述通信流量发送至流量检测平台,以便所述流量检测平台检测所述通信流量中的攻击流量。本申请中,通过将上述基于链路层原始套接字来收集链路层报文的云内引流装置安装于内网主机内,使得可以通过云内引流装置获取经过内网主机的所有通信流量,由此一来,可以扩大流量检测的范围,避免了流量不完整的问题,进而提高了内网之间通信安全检测的能力。

在一种具体实施例中,上述方法还包括:获取上述云工作负载保护平台的服务器地址,并基于上述服务器地址确定bpf过滤规则,以便上述通信流量获取模块基于上述链路层原始套接字和上述bpf过滤规则获取上述内网主机的通信流量。

在一种具体实施例中,所述通过预设的克隆函数将通过报文收发函数接收和发送的与所述报文协议类型对应的链路层报文拷贝至所述链路层原始套接字,以得到所述内网主机的包含东西向流量和南北向流量的通信流量,包括:获取由所述内网主机通过二层交换机与其他内网主机进行通信的过程中接收和发送的流量,以得到第一类东西向流量;获取由所述内网主机通过三层交换机与其他内网主机进行通信的过程中接收和发送的流量,以得到第二类东西向流量;获取由所述内网主机通过二层交换机和三层交换机与外网进行通信的过程中接收和发送的流量,以得到所述内网主机的南北向流量。

在一种具体实施例中,所述将所述通信流量发送至云工作负载保护平台,以便所述云工作负载保护平台检测所述通信流量中的攻击流量,包括:将所述通信流量依次通过二层交换机和三层交换机,发送至预先与所述三层交换机建立通信连接的流量检测平台,以便所述流量检测平台检测所述通信流量中的攻击流量。或将所述通信流量直接通过路由器发送至预先与所述路由器建立通信连接的流量检测平台,以便所述流量检测平台检测所述通信流量中的攻击流量。

在一种具体实施例中,所述将所述通信流量发送至云工作负载保护平台,以便所述云工作负载保护平台检测所述通信流量中的攻击流量,还包括:对所述通信流量进行加密压缩处理,得到压缩后流量,并将上述压缩后流量发送至上述云工作负载保护平台,以便上述云工作负载保护平台通过识别上述压缩后流量中的内容判断上述通信流量中是否存在攻击流量。

在一种具体实施例中,所述将所述通信流量发送至云工作负载保护平台,以便所述云工作负载保护平台检测所述通信流量中的攻击流量,还包括:确定上述数据包流量对应的数据包长度,若上述数据包长度大于上述缓存区中的剩余内存,则对上述通信流量进行加密压缩处理,并将上述压缩后流量发送至云工作负载保护平台。

在一种具体实施例中,所述将所述通信流量发送至云工作负载保护平台,以便所述云工作负载保护平台检测所述通信流量中的攻击流量,还包括:根据预设时长对上述通信流量进行加密压缩处理,并将上述压缩后流量发送至云工作负载保护平台。

由上可见,本实施例中,通过在内网主机中安装云内引流装置,可以获取内网主机中包含东西向流量和南北向流量的通信流量,并将所述通信流量发送至云工作负载保护平台,以便所述云工作负载保护平台检测所述通信流量中的攻击流量。由于云内引流装置安装于内网主机内,所以可以通过云内引流装置获取经过内网主机的所有通信流量,由此一来,可以扩大流量检测的范围,避免了流量不完整的问题,进而提高了内网之间通信安全检测的能力。

进一步的,如图5所示,首先可以调用链路层原始套接字,然后获取云工作负载保护平台的服务器地址并基于上述服务器地址设置bpf过滤规则,并且设置通信流量发送时间间隔,然后基于上述链路层原始套接字和bpf过滤规则对内网主机的通信流量进行循环抓包,具体的,调用收包接口,死循环收取数据包,并判断收到的数据包长度,将上述数据包写入缓存区,然后判断上述缓存区中的剩余内存是否大于上述数据包长度,如果不大于,则压缩缓存区中的数据包并上报至云工作负载保护平台;同时,根据设置的通信流量发送时间间隔,判断是否满足发送时间间隔,如果满足则压缩缓存区中数据包并上报至云工作负载保护平台;并且,用户可以通过关闭上述链路层原始套接字结束对内网主机的通信流量的获取,同时避免句柄泄露。由此一来,基于链路层原始套接字和bpf过滤规则获取内网主机的通信流量,并根据缓存区中的内存和/或预设发送时间间隔对上述通信流量进行压缩处理,然后发送至云工作负载保护平台。由于利用根据云工作负载保护平台的服务器地址确定的bpf过滤规则在获取通信流量时可以避免重复获取相同的流量,提高了云内引流的效率;并且通过对通信流量进行压缩得到压缩后流量,并将压缩后流量发送至云工作负载保护平台,可以减少传输数据的长度,进而在传输过程中节约内网的带宽,提高了云内引流的效率。

进一步的,本申请实施例还公开了一种内网主机,参见图6所示,图中的内容不能被认为是对本申请的使用范围的任何限制。

图6为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的云内引流方法中的相关步骤。

本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20调用与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。

另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统221、计算机程序222及包括通信流量在内的数据223等,存储方式可以是短暂存储或者永久存储。

其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中海量数据223的运算与处理,其可以是windowsserver、netware、unix、linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的云内引流方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。数据223可以包括电子设备20获取到的通信流量。

进一步的,本申请实施例还公开了一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现前述任一实施例公开的云内引流方法步骤。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上对本发明所提供的一种内网主机及云内引流方法、装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1