一种基于容器的网络安全处理方法和装置转让专利

申请号 : CN202110356295.6

文献号 : CN113098868B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 孙迪科肖峰张亚东郑俊鹏林宇

申请人 : 广州巨时信息科技股份有限公司

摘要 :

本申请公开了一种基于容器的网络安全处理方法和装置,该方法包括:获取物理服务器上运行的容器的标识信息,并获取容器中运行的服务的网络地址信息,其中,物理服务器上运行了一个或多个容器;运行在物理服务器上的防火墙获取到发生网络攻击;根据网络地址信息判断网络攻击的攻击目标是否为运行在容器中的服务;在判断结果为是的情况下,从物理服务器上获取空闲的IP地址和端口;在预定时间内将发送到容器中的服务的数据包转发到空闲的IP地址和端口。通过本申请解决了对于运行在Docker中的服务遭受到的攻击没有更适应的处理方式所导致的问题,提高了运行在Docker中的服务的安全性。

权利要求 :

1.一种基于容器的网络安全处理方法,其特征在于,包括:获取物理服务器上运行的容器的标识信息,并获取所述容器中运行的服务的网络地址信息,其中,所述物理服务器上运行了一个或多个容器;

运行在所述物理服务器上的防火墙获取到发生网络攻击;

根据所述网络地址信息判断所述网络攻击的攻击目标是否为运行在所述容器中的所述服务;

在判断结果为是的情况下,从所述物理服务器上获取空闲的IP地址和端口;

在预定时间内将发送到所述容器中的服务的数据包转发到所述空闲的IP地址和端口。

2.根据权利要求1所述的方法,其特征在于,还包括:统计所述物理服务器上的所有的IP地址和端口;

将所述物理服务器上所有未被使用的IP地址和端口均记录在列表中;

将所述列表保存在所述物理服务器上。

3.根据权利要求2所述的方法,其特征在于,从所述物理服务器上获取所述空闲IP地址和端口包括:

从所述列表上获取空闲的IP地址和端口。

4.根据权利要求2所述的方法,其特征在于,在将所述物理服务器上所有未被使用的IP地址和端口均记录在列表中之前,所述方法还包括:向每个IP地址和端口发送Ping命令;

在预定时长内未收到回应的IP地址和端口标记为未被使用的IP地址和端口。

5.一种基于容器的网络安全处理装置,其特征在于,包括:第一获取模块,用于获取物理服务器上运行的容器的标识信息,并获取所述容器中运行的服务的网络地址信息,其中,所述物理服务器上运行了一个或多个容器;

第二获取模块,用于运行在所述物理服务器上的防火墙获取到发生网络攻击;

判断模块,用于根据所述网络地址信息判断所述网络攻击的攻击目标是否为运行在所述容器中的所述服务;

第三获取模块,用于在判断结果为是的情况下,从所述物理服务器上获取空闲的IP地址和端口;

转发模块,用于在预定时间内将发送到所述容器中的服务的数据包转发到所述空闲的IP地址和端口。

6.根据权利要求5所述的装置,其特征在于,还包括:统计模块,用于统计所述物理服务器上的所有的IP地址和端口;

记录模块,用于将所述物理服务器上所有未被使用的IP地址和端口均记录在列表中;

保存模块,用于将所述列表保存在所述物理服务器上。

说明书 :

一种基于容器的网络安全处理方法和装置

技术领域

[0001] 本申请涉及到网络领域,具体而言,涉及一种基于容器的网络安全处理方法和装置。

背景技术

[0002] 随着技术的发展,出现了容器(Docker)技术,Docker是一种虚拟化技术,构建在LXC(Linux Container)之上的,是一种基于进程容器的轻量级虚拟化解决方案。Docker是
以Docker容器为资源分割和调度的基本单位,封装整个软件运行时环境,让开发者可以打
包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上。容
器完全使用沙箱机制,不依赖于任何语言、框架包括系统,相互之间不会有任何接口。几乎
没有性能开销,可以很容易地在数据中心中运行。
[0003] 现在很多服务都运行在Docker中。现在的网络安全中防范攻击的方式基本都是针对物理虚拟机的,对于运行在Docker中的服务遭受到的攻击没有更适应的处理方式。

发明内容

[0004] 本申请实施例提供了一种基于容器的网络安全处理方法和装置,以至少解决对于运行在Docker中的服务遭受到的攻击没有更适应的处理方式所导致的问题。
[0005] 根据本申请的一个方面,提供了一种基于容器的网络安全处理方法,包括:获取物理服务器上运行的容器的标识信息,并获取所述容器中运行的服务的网络地址信息,其中,
所述物理服务器上运行了一个或多个容器;运行在所述物理服务器上的防火墙获取到发生
网络攻击;根据所述网络地址信息判断所述网络攻击的攻击目标是否为运行在所述容器中
的所述服务;在判断结果为是的情况下,从所述物理服务器上获取空闲的IP地址和端口;在
预定时间内将发送到所述容器中的服务的数据包转发到所述空闲的IP地址和端口。
[0006] 进一步地,还包括:统计所述物理服务器上的所有的IP地址和端口;将所述物理服务器上所有未被使用的IP地址和端口均记录在列表中;将所述列表保存在所述物理服务器
上。
[0007] 进一步地,从所述物理服务器上获取所述空闲IP地址和端口包括:从所述列表上获取空闲的IP地址和端口。
[0008] 进一步地,在将所述物理服务器上所有未被使用的IP地址和端口均记录在列表中之前,所述方法还包括:向每个IP地址和端口发送Ping命令;在预定时长内未收到回应的IP
地址和端口标记为未被使用的IP地址和端口。
[0009] 根据本申请的另一个方面,还提供了一种基于容器的网络安全处理装置,包括:第一获取模块,用于获取物理服务器上运行的容器的标识信息,并获取所述容器中运行的服
务的网络地址信息,其中,所述物理服务器上运行了一个或多个容器;第二获取模块,用于
运行在所述物理服务器上的防火墙获取到发生网络攻击;判断模块,用于根据所述网络地
址信息判断所述网络攻击的攻击目标是否为运行在所述容器中的所述服务;第三获取模
块,用于在判断结果为是的情况下,从所述物理服务器上获取空闲的IP地址和端口;转发模
块,用于在预定时间内将发送到所述容器中的服务的数据包转发到所述空闲的IP地址和端
口。
[0010] 进一步地,还包括:统计模块,用于统计所述物理服务器上的所有的IP地址和端口;记录模块,用于将所述物理服务器上所有未被使用的IP地址和端口均记录在列表中;保
存模块,用于将所述列表保存在所述物理服务器上。
[0011] 进一步地,所述第三获取模块,用于从所述列表上获取空闲的IP地址和端口。
[0012] 进一步地,还包括:发送模块,用于向每个IP地址和端口发送Ping命令;标记模块,用于在预定时长内未收到回应的IP地址和端口标记为未被使用的IP地址和端口。
[0013] 根据本申请的另一个方面,还提供了一种存储器,用于存储软件,所述软件用于执行上述的方法。
[0014] 根据本申请的另一个方面,还提供了一种一种处理器,用于存储软件,所述软件用于执行上述的方法。
[0015] 在本申请实施例中,采用了获取物理服务器上运行的容器的标识信息,并获取所述容器中运行的服务的网络地址信息,其中,所述物理服务器上运行了一个或多个容器;运
行在所述物理服务器上的防火墙获取到发生网络攻击;根据所述网络地址信息判断所述网
络攻击的攻击目标是否为运行在所述容器中的所述服务;在判断结果为是的情况下,从所
述物理服务器上获取空闲的IP地址和端口;在预定时间内将发送到所述容器中的服务的数
据包转发到所述空闲的IP地址和端口。通过本申请解决了对于运行在Docker中的服务遭受
到的攻击没有更适应的处理方式所导致的问题,提高了运行在Docker中的服务的安全性。

附图说明

[0016] 构成本申请的一部分的附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0017] 图1是根据本申请实施例的一种基于容器的网络安全处理方法的流程图。

具体实施方式

[0018] 需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
[0019] 需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不
同于此处的顺序执行所示出或描述的步骤。
[0020] 在本实施例中,提供了一种基于容器的网络安全处理方法,图1是根据本申请实施例的一种基于容器的网络安全处理方法的流程图,如图1所示,该流程包括如下步骤:
[0021] 步骤S102,获取物理服务器上运行的容器的标识信息,并获取所述容器中运行的服务的网络地址信息,其中,所述物理服务器上运行了一个或多个容器;
[0022] 作为一个可选地可以增加的实施方式,可以在所述物理服务器上为每个容器分配硬件资源,其中包括内存的使用、CPU的占用、网络带宽的占用。
[0023] 步骤S104,运行在所述物理服务器上的防火墙获取到发生网络攻击;
[0024] 判断攻击的方式有很多:
[0025] 例如:从因特网接收报文,并判断所述报文的长度是否大于阈值;如果所述报文的长度大于阈值,则将所述长度大于阈值的报文镜像到从处理芯片;根据镜像到所述从处理
芯片的所述长度大于阈值的报文的数量和频率判断是否受到攻击。
[0026] 又例如:检测是否有流量穿越防火墙;若检测到有流量穿越防火墙,则将所述流量导入虚拟机仿真环境;通过监测所述虚拟机仿真环境产生的变化,确定防火墙所在的主机
是否受到网络攻击。
[0027] 又例如,所述物理服务器上设置了一个专门的容器,该容器内运行有判断是否为攻击行为的程序,所述物理服务器上接收到报文均会转发到该容器,该专门的容器对接收
到报文进行判断,在判断不为网络攻击的情况下,根据报文的目的地址,将报文转发到对应
的容器。该专门的容器还设置有驻留内存的进程,该进程用于与其他容器沟通,该进程按照
预定周期发送心跳信号,所述心跳信号用于确定其他容器内的服务是否正常运行。
[0028] 如果发送心跳信号给第二容器之后,预定时间内未收到响应,则所述专门的容器将之前预定时间段内转发给所述第二容器的数据包保存在所述物理服务器上。所述物理服
务器判断这些数据包是否存在攻击行为。
[0029] 在所述物理服务器的处理器有多核的情况下,所述专门的容器可以单独运行在一个核上,其他容器可以共享其他核。
[0030] 在所述物理服务器的内存中设置缓存,该缓存用于在所述专门的容器资源被耗尽的情况下,缓存接收到的报文。如果缓存区已满,判断缓存区的报文是否均为到预定目标容
器的报文,如果是,则执行步骤S108和步骤S110。
[0031] 步骤S106,根据所述网络地址信息判断所述网络攻击的攻击目标是否为运行在所述容器中的所述服务;
[0032] 步骤S108,在判断结果为是的情况下,从所述物理服务器上获取空闲的IP地址和端口;
[0033] 在获取空闲的IP地址和端口之前,可以计算此次网络攻击的报文发送到所述容器之后,所述容器的资源是否支持处理所有报文,如果支持,则将报文发送至所述容器。如果
不支持,则从所述物理服务器上获取空闲的IP地址和端口。
[0034] 步骤S110,在预定时间内将发送到所述容器中的服务的数据包转发到所述空闲的IP地址和端口。
[0035] 作为一个可选的可以增加的实施方式,可以通过驻留在所述物理服务器中的一个进程,将转发到空闲IP地址和端口的数据包或者报文进行保存。保存下来的数据包被用来
进行虚拟攻击。例如,可以在另一台物理服务器中设置一个与受到攻击的容器相同的第一
容器,将保存下来的数据包按照接收时的频率向所述另一台物理服务器中设置的所述第一
容器发送。在发送数据包之后,获取所述第一容器内的服务运行的情况下,如果所述服务运
行出现异常,则将异常日志发送给管理员。如果所述第一容器内的服务运行正常,则将此次
数据包打包成一个集合,并为该集合打上标签,该标签用于指示此次打包的数据包为非网
络攻击包。打包好的数据以及标签可以在将来用于机器学习的训练。
[0036] 通过上述步骤解决了对于运行在Docker中的服务遭受到的攻击没有更适应的处理方式所导致的问题,提高了运行在Docker中的服务的安全性。
[0037] 优选地,还包括:统计所述物理服务器上的所有的IP地址和端口;将所述物理服务器上所有未被使用的IP地址和端口均记录在列表中;将所述列表保存在所述物理服务器
上。
[0038] 优选地,从所述物理服务器上获取所述空闲IP地址和端口包括:从所述列表上获取空闲的IP地址和端口。
[0039] 优选地,在将所述物理服务器上所有未被使用的IP地址和端口均记录在列表中之前,所述方法还包括:向每个IP地址和端口发送Ping命令;在预定时长内未收到回应的IP地
址和端口标记为未被使用的IP地址和端口。
[0040] 在本实施例中,提供一种电子装置,包括存储器和处理器,存储器中存储有计算机程序,处理器被设置为运行计算机程序以执行以上实施例中的方法。
[0041] 该程序也可以理解为一种装置,在本实施例中,提供了一种基于容器的网络安全处理装置,包括:第一获取模块,用于获取物理服务器上运行的容器的标识信息,并获取所
述容器中运行的服务的网络地址信息,其中,所述物理服务器上运行了一个或多个容器;第
二获取模块,用于运行在所述物理服务器上的防火墙获取到发生网络攻击;判断模块,用于
根据所述网络地址信息判断所述网络攻击的攻击目标是否为运行在所述容器中的所述服
务;第三获取模块,用于在判断结果为是的情况下,从所述物理服务器上获取空闲的IP地址
和端口;转发模块,用于在预定时间内将发送到所述容器中的服务的数据包转发到所述空
闲的IP地址和端口。
[0042] 该装置中的模块与上述实施例中的方法步骤相对应,已经进行过说明的,在此不再赘述。
[0043] 优选地,还包括:统计模块,用于统计所述物理服务器上的所有的IP地址和端口;记录模块,用于将所述物理服务器上所有未被使用的IP地址和端口均记录在列表中;保存
模块,用于将所述列表保存在所述物理服务器上。
[0044] 优选地,所述第三获取模块,用于从所述列表上获取空闲的IP地址和端口。
[0045] 优选地,还包括:发送模块,用于向每个IP地址和端口发送Ping命令;标记模块,用于在预定时长内未收到回应的IP地址和端口标记为未被使用的IP地址和端口。
[0046] 这些计算机程序也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他
可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方
框或多个方框中指定的功能的步骤,对应与不同的步骤可以通过不同的模块来实现。
[0047] 上述程序可以运行在处理器中,或者也可以存储在存储器中(或称为计算机可读介质),计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或
技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计
算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态
随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可
编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD‑ROM)、数
字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或
任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机
可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0048] 以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、
改进等,均应包含在本申请的权利要求范围之内。