本申请涉及云计算应用安全技术领域,特别是涉及一种kubernetes集群应用的防护方法和系统。
背景技术:
在相关技术中,在kubernetes集群中,应用可以通过ingress的方式暴露到公网上,从而通过应用的域名进行访问,但应用被暴露到公网上会带来一系列的安全攻击问题。
针对相关技术中,kubernetes集群应用被暴露到公网上带来的安全攻击问题,尚未提出有效的解决方案。
技术实现要素:
本申请实施例提供了一种kubernetes集群应用的防护方法和系统,以至少解决相关技术中,kubernetes集群应用被暴露到公网上带来的安全攻击的问题。
第一方面,本申请实施例提供了一种kubernetes集群应用的防护方法,所述方法包括:
流量监控器接收到包含域名的http请求,对所述http请求中流量数据进行异常检测,得到检测结果;
所述流量监控器判断所述检测结果是否指示异常,若是,所述流量监控器申请waf服务和配置流量的清洗指标,并解析所述域名的cname记录到所述waf上;
所述流量监控器调用所述waf的接口,获取清洗后的流量数据和清洗指标信息;
在所述清洗指标信息指示所述流量的清洗指标趋于正常的情况下,所述流量监控器释放所述waf服务,并解析所述cname记录到kubernetes集群的入口网关ingresscontroller上。
在其中一些实施例中,所述流量监控器解析所述cname记录到所述集群的入口网关ingresscontroller上之后,所述方法包括:所述ingresscontroller将清洗后的http请求的流量转发到所述集群内的应用。
在其中一些实施例中,所述流量监控器解析所述cname记录到所述waf上之后,所述方法包括:所述流量监控器定时调用所述waf的接口,获取清洗后的流量数据和清洗指标信息。
在其中一些实施例中,所述流量监控器接收到所述http请求之前,所述方法包括:客户端接收用户输入的所述域名,向所述流量监控器发送包含所述域名的http请求。
第二方面,本申请实施例提供了一种kubernetes集群应用的防护系统,所述系统包括流量监控器;
所述流量监控器接收到包含域名的http请求,对所述http请求中流量数据进行异常检测,得到检测结果;
所述流量监控器判断所述检测结果是否指示异常,若是,所述流量监控器申请waf服务和配置流量的清洗指标,并解析所述域名的cname记录到所述waf上;
所述流量监控器调用所述waf的接口,获取清洗后的流量数据和清洗指标信息;
在所述清洗指标信息指示所述流量的清洗指标趋于正常的情况下,所述流量监控器释放所述waf服务,并解析所述cname记录到kubernetes集群的入口网关ingresscontroller上。
在其中一些实施例中,所述流量监控器解析所述cname记录到所述集群的入口网关ingresscontroller上之后:所述ingresscontroller将清洗后的http请求的流量转发到所述集群内的应用。
在其中一些实施例中,所述流量监控器解析所述cname记录到所述waf上之后:所述流量监控器定时调用所述waf的接口,获取清洗后的流量数据和清洗指标信息。
在其中一些实施例中,所述流量监控器接收到所述http请求之前:客户端接收用户输入的所述域名,向所述流量监控器发送包含所述域名的http请求。
第三方面,本申请实施例提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述kubernetes集群应用的防护方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现所述kubernetes集群应用的防护方法。
相比于相关技术,本申请实施例提供的kubernetes集群应用的防护方法,通过流量监控器接收到包含域名的http请求,对该http请求中流量数据进行异常检测,得到检测结果;该流量监控器判断该检测结果是否指示异常,若是,该流量监控器申请waf服务和配置流量的清洗指标,并解析该域名的cname记录到该waf上;该流量监控器调用该waf的接口,获取清洗后的流量数据和清洗指标信息;在该清洗指标信息指示该流量的清洗指标趋于正常的情况下,该流量监控器释放该waf服务,并解析该cname记录到kubernetes集群的入口网关ingresscontroller上,解决了kubernetes集群应用被暴露到公网上带来的安全攻击问题,从而达到为集群的应用提供安全防护的效果。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的kubernetes集群应用的防护方法的应用环境示意图;
图2是根据相关技术的访问kubernetes集群应用的流程的示意图;
图3是根据本申请实施例的kubernetes集群应用的防护方法的流程图;
图4是根据本申请实施例的转发清洗后的流量到kubernetes集群应用的流程图;
图5是根据本申请实施例的客户端向流量监控器发送http请求的流程图;
图6是根据本申请实施例的kubernetes集群应用的防护方法的流程的示意图;
图7是根据本申请实施例的kubernetes集群应用的防护系统的结构框图;
图8是根据本申请实施例的电子设备的内部结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
本申请提供的kubernetes集群应用的防护方法,可以应用于如图1所示的应用环境中,图1是根据本申请实施例的kubernetes集群应用的防护方法的应用环境示意图,如图1所示,服务器101与服务器102通过网络进行通信。该服务器101为云服务商的服务器,内部署有web应用防火墙(简称为waf),该服务器102内部署有流量监控器,该流量监控器接收到包含域名的http请求,对该http请求中流量数据进行异常检测,得到检测结果;该流量监控器判断该检测结果是否指示异常,若是,该流量监控器申请waf服务和配置流量的清洗指标,并解析该域名的cname记录到该waf上;该流量监控器调用该waf的接口,获取清洗后的流量数据和清洗指标信息;在该清洗指标信息指示该流量的清洗指标趋于正常的情况下,该流量监控器释放该waf服务,并解析该cname记录到kubernetes集群的入口网关(ingresscontroller)上。其中,waf(web应用防火墙)代表了一类新兴的信息安全技术,用以解决诸如防火墙一类传统设备束手无策的web应用安全问题。其中,服务器101、服务器102可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在相关技术中,图2是根据相关技术的访问kubernetes集群应用的流程的示意图,如图2所示,客户端接收用户输入的所述域名(例如,www.aaa.com),将域名解析到集群统一的出口服务ingresscontroller,该ingresscontroller将流量转发到集群内的应用(例如,应用1),由于应用直接暴露在公网上,容易遭受web的攻击。
本实施例提供了一种kubernetes集群应用的防护方法,图3是根据本申请实施例的kubernetes集群应用的防护方法的流程图,如图3所示,该流程包括如下步骤:
步骤s301,流量监控器接收到包含域名的http请求,对该http请求中流量数据进行异常检测,得到检测结果,例如,使用开源的zabbix作为流量监控器,该zabbix接收到包含域名的http请求,对该http请求中流量数据进行异常检测;
步骤s302,该流量监控器判断该检测结果是否指示异常,若是,该流量监控器申请waf服务和配置流量的清洗指标,并解析该域名的cname记录到该waf上,继续本流程;若否,所述流量监控程序将所述域名的cname记录解析到所述集群的入口网关ingresscontroller,结束本流程;
步骤s303,该流量监控器调用该waf的接口,获取清洗后的流量数据和清洗指标信息,例如,该流量监控器定时去调用该waf的接口,获取清洗后的流量数据和清洗指标信息;
步骤s304,在该清洗指标信息指示该流量的清洗指标趋于正常的情况下,该流量监控器释放该waf服务,并解析该cname记录到kubernetes集群的入口网关ingresscontroller上,例如,waf将流量的清洗指标与预设的正常指标范围进行比较,若流量的清洗指标在所述正常指标范围内,则将该流量的清洗指标趋于正常这一信息反馈在清洗指标信息上,该流量监控器调用该waf的接口,获取清洗后的流量数据和该清洗指标信息,在该清洗指标信息指示该流量的清洗指标趋于正常的情况下,该流量监控器释放该waf服务,并解析该cname记录到kubernetes集群的入口网关ingresscontroller上。
通过上述步骤s301至s304,相对于现有技术中应用直接暴露在公网上,容易遭受web的攻击的问题,本实施例通过设置流量监控器和waf服务,流量监控器接收到包含域名的http请求,对该http请求中流量数据进行异常检测,得到检测结果,并判断该检测结果是否指示异常,若是,该流量监控器申请waf服务和配置流量的清洗指标,并解析该域名的cname记录到该waf上,在waf清洗异常流量的过程中,该流量监控器调用该waf的接口,获取清洗后的流量数据和清洗指标信息,在该清洗指标信息指示该流量的清洗指标趋于正常的情况下,该流量监控器释放该waf服务,并解析该cname记录到kubernetes集群的入口网关ingresscontroller上,解决了kubernetes集群应用被暴露到公网上带来的安全攻击的问题,为集群的应用提供了安全防护。
进一步的,该waf能够防御owasp常见威胁,例如,该常见威胁包括sql注入、xss跨站、webshell上传、后门隔离保护、命令注入、非法http协议请求、常见web服务器漏洞攻击、核心文件非授权访问、路径穿越和扫描防护等;该waf能够进行网站隐身,例如,不对攻击者暴露站点地址、避免其绕过web应用防火墙直接攻击;该waf能够进行0day补丁定期及时更新,例如,防护规则与淘宝同步,及时更新最新漏洞补丁,第一时间全球同步下发最新补丁,对网站进行安全防护;该waf能够设置友好的观察模式,例如,针对网站新上线的业务开启观察模式,对于匹配中防护规则的疑似攻击只告警不阻断,方便统计业务误报状况;该waf能够深度精确防护,例如,支持全解析多种常见http协议数据提交格式,该常见http协议数据提交格式包括任意头部字段、form表单、multipart、json和xml;例如,支持解码常见编码类型,该常见编码类型包括url编码、javascriptunicode编码、hex编码、html实体编码、java序列化编码、php序列化编码、base64编码、utf-7编码和混合嵌套编码;该waf支持预处理机制,例如,该waf能够进行空格压缩、注释删减和特殊字符处理,向上层多种检测引擎提供更为精细、准确的数据源;例如,该waf能够在准确性上,优化引擎解析http协议的能力,支持复杂格式数据环境下的检测能力;例如,该waf能够抽象复杂格式数据中用户可控部分,降低上层检测逻辑的复杂度,避免过多检测数据导致的误报,降低多倍的误报率;例如,该waf能够在全面性上,支持多种形式数据编码的自适应解码,避免利用各种编码形式的绕过;该waf能够进行cc恶意攻击防护,对单一源ip的访问频率进行控制,基于重定向跳转验证,人机识别等,同时,该waf能够针对海量慢速请求攻击,根据统计响应码及url请求分布、异常referer及user-agent特征识别,结合网站精准防护规则,进行综合防护,同时,该waf能够充分利用阿里云大数据安全优势,建立威胁情报与可信访问分析模型,快速识别恶意流量,因此,该waf能够为集群的应用提供高可靠的安全防护。
进一步的,对于按量计费的waf服务,需要向云服务商购买应用防护资源包,才能使用该waf服务,资源包的规格按照每秒查询率(简称为qps)的数量计(例如,资源包规格为2000qps),并根据资源包规格计算配置费用,其中,该qps反映的是http请求waf服务的频率,该应用防护资源包用于抵扣使用waf所产生的费用,由于在申请waf服务前,流量监控器会对http请求中流量数据进行异常检测,只有检测结果为异常的http请求才会触发防御,申请waf服务进行流量清洗,因此能够减少http请求waf服务的频率,从而降低waf服务的使用费用,为kubernetes集群中的应用提供弹性的、按需的安全防护。
在其中一些实施例中,图4是根据本申请实施例的转发清洗后的流量到kubernetes集群应用的流程图,如图4所示,该流量监控器解析该cname记录到该集群的入口网关ingresscontroller上之后,包括以下步骤:
步骤s401,该ingresscontroller将清洗后的http请求的流量转发到该集群内的应用。
通过上述步骤s401,对于异常http请求,该ingresscontroller只将清洗后的http请求的流量转发到该集群内的应用,实现了用户对集群内的应用的访问,并保证了转发到该集群内的应用的http请求均为正常请求,从而避免遭受web攻击,保障应用的安全。
在其中一些实施例中,图5是根据本申请实施例的客户端向流量监控器发送http请求的流程图,如图5所示,该流量监控器接收到该http请求之前,包括以下步骤:
步骤s501,客户端接收用户输入的该域名,向该流量监控器发送包含该域名的http请求。
通过上述步骤s501,用户能够通过域名访问应用。
在其中一些实施例中,图6是根据本申请实施例的kubernetes集群应用的防护方法的流程的示意图,如图6所示,客户端接收用户输入的域名(例如,www.aaa.com),向该流量监控器发送包含该域名的http请求;该流量监控器接收到包含域名的http请求,对该http请求中流量数据进行异常检测,得到检测结果;该流量监控器判断该检测结果是否指示异常,若是,该流量监控器申请waf服务和配置流量的清洗指标,并解析该域名的cname记录到该waf(web防火墙)上;该流量监控器定时调用该waf的接口,获取清洗后的流量数据和清洗指标信息;在该清洗指标信息指示该流量的清洗指标趋于正常的情况下,该流量监控器释放该waf服务,并解析该cname记录到kubernetes集群的入口网关ingresscontroller上;该ingresscontroller将清洗后的http请求的流量转发到该集群内的应用(例如,应用1)。
需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本实施例还提供了一种kubernetes集群应用的防护系统70,该系统用于实现上述实施例,图7是根据本申请实施例的kubernetes集群应用的防护系统的结构框图,如图7所示,该系统包括流量监控器71;
该流量监控器71接收到包含域名的http请求,对该http请求中流量数据进行异常检测,得到检测结果;该流量监控器71判断该检测结果是否指示异常,若是,该流量监控器71申请waf服务和配置流量的清洗指标,并解析该域名的cname记录到该waf上;该流量监控器71调用该waf的接口,获取清洗后的流量数据和清洗指标信息;在该清洗指标信息指示该流量的清洗指标趋于正常的情况下,该流量监控器71释放该waf服务,并解析该cname记录到kubernetes集群的入口网关ingresscontroller上。
在其中一些实施例中,该流量监控器71解析该cname记录到该集群的入口网关ingresscontroller上之后:该ingresscontroller将清洗后的http请求的流量转发到该集群内的应用。
在其中一些实施例中,该流量监控器71解析该cname记录到该waf上之后:该流量监控器71定时调用该waf的接口,获取清洗后的流量数据和清洗指标信息。
在其中一些实施例中,该流量监控器71接收到该http请求之前:客户端接收用户输入的该域名,向该流量监控器71发送包含该域名的http请求。
在一个实施例中,图8是根据本申请实施例的电子设备的内部结构示意图,如图8所示,提供了一种电子设备,该电子设备可以是服务器,其内部结构图可以如图8所示。该电子设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该电子设备的处理器用于提供计算和控制能力。该电子设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该电子设备的数据库用于存储数据。该电子设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种游戏数据推送的方法。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
本领域的技术人员应该明白,以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
1.一种kubernetes集群应用的防护方法,其特征在于,包括:
流量监控器接收到包含域名的http请求,对所述http请求中流量数据进行异常检测,得到检测结果;
所述流量监控器判断所述检测结果是否指示异常,若是,所述流量监控器申请waf服务和配置流量的清洗指标,并解析所述域名的cname记录到所述waf上;
所述流量监控器调用所述waf的接口,获取清洗后的流量数据和清洗指标信息;
在所述清洗指标信息指示所述流量的清洗指标趋于正常的情况下,所述流量监控器释放所述waf服务,并解析所述cname记录到kubernetes集群的入口网关ingresscontroller上。
2.根据权利要求1所述的方法,其特征在于,所述流量监控器解析所述cname记录到所述集群的入口网关ingresscontroller上之后,所述方法包括:所述ingresscontroller将清洗后的http请求的流量转发到所述集群内的应用。
3.根据权利要求1所述的方法,其特征在于,所述流量监控器解析所述cname记录到所述waf上之后,所述方法包括:所述流量监控器定时调用所述waf的接口,获取清洗后的流量数据和清洗指标信息。
4.根据权利要求1所述的方法,其特征在于,所述流量监控器接收到所述http请求之前,所述方法包括:客户端接收用户输入的所述域名,向所述流量监控器发送包含所述域名的http请求。
5.一种kubernetes集群应用的防护系统,其特征在于,所述系统包括流量监控器;
所述流量监控器接收到包含域名的http请求,对所述http请求中流量数据进行异常检测,得到检测结果;
所述流量监控器判断所述检测结果是否指示异常,若是,所述流量监控器申请waf服务和配置流量的清洗指标,并解析所述域名的cname记录到所述waf上;
所述流量监控器调用所述waf的接口,获取清洗后的流量数据和清洗指标信息;
在所述清洗指标信息指示所述流量的清洗指标趋于正常的情况下,所述流量监控器释放所述waf服务,并解析所述cname记录到kubernetes集群的入口网关ingresscontroller上。
6.根据权利要求5所述的系统,其特征在于,所述流量监控器解析所述cname记录到所述集群的入口网关ingresscontroller上之后:所述ingresscontroller将清洗后的http请求的流量转发到所述集群内的应用。
7.根据权利要求5所述的系统,其特征在于,所述流量监控器解析所述cname记录到所述waf上之后:所述流量监控器定时调用所述waf的接口,获取清洗后的流量数据和清洗指标信息。
8.根据权利要求5所述的系统,其特征在于,所述流量监控器接收到所述http请求之前:客户端接收用户输入的所述域名,向所述流量监控器发送包含所述域名的http请求。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至4中任一项所述的kubernetes集群应用的防护方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1至4中任一项所述的kubernetes集群应用的防护方法。
技术总结