一种基于xdp技术的数据库防火墙实现方法及系统
技术领域
1.本发明涉及安全技术领域,具体而言,涉及一种基于xdp技术的数据库防火墙实现方法及系统。
背景技术:2.信息安全领域中,数据库防火墙系统对数据库访问行为进行监视、危险操作阻断、操作权限管控、可疑行为审计等处理,是保障数据库操作安全的重要机制和系统。
3.随着大量企业接入互联网,经常出现一些大型的企业内部数据库的用户数据大量外泄等等诸如此类的严重的数据被窃取的事件发生,仅依靠数据账号和密码的管理早已难以适应数据库的安全防护,一旦账号被窃取,外部黑客窃取数据库中数据如入无人之境。目前为了防范这种如探囊取物般的数据窃取行为,人们设计出了数据库防火墙。但面对数据量如此庞大的时代,数据库防火墙的性能显然不足以满足人们的需求,且目前仅通过数据库防火墙的简单拦截也无法保证数据访问的安全。
4.xdp(express data path)是基于ebpf实现的高性能,可编程的数据平面技术;
5.现有的数据库防火墙根据截获数据包的位置可分为基于用户空间的数据库防火墙和基于内核空间的数据库防火墙。
6.基于用户空间防火墙:效率不高,容易成为性能瓶颈;
7.基于内核空间防火墙:典型是使用dpdk技术,但是有如下问题:
8.1:需要使用intel专用的代码库和许可;
9.2:只能使用intel架构的cpu;
10.3:需要分配大页内存。
技术实现要素:11.本发明的目的在于提供一种基于xdp技术的数据库防火墙实现方法,其能够通过使用linux操作系统的xdp机制,实现一种快速,高效,稳定的数据库防火墙系统。
12.本发明的另一目的在于提供一种基于xdp技术的数据库防火墙实现系统,其能够运行一种基于xdp技术的数据库防火墙实现方法。
13.本发明的实施例是这样实现的:
14.第一方面,本技术实施例提供一种基于xdp技术的数据库防火墙实现方法,其包括通过web页面配置数据库用户以及数据库表和字段的防火墙规则;配置好的内容通过数据库防火墙程序转换为具体map规则并加载到内核map中;网络驱动接收网卡的数据包流量。数据包由xdp的ebpf程序处理;ebpf通用协议解析模块解析出ip数据包和tcp数据包,然后把负载内容交给数据库协议解析模块;数据库解析模块解析出对应的数据库用户,访问的数据库,表以及字段;将源ip、源端口、目的ip、目的端口、数据库用户、模式名、表、列名作为key,查找对应的map,获取对应的动作;根据获取的动作进行对应的操作。
15.在本发明的一些实施例中,上述还包括:访问控制平面负责创建ebpf的program、
map,并注入xdp处理流程中。
16.在本发明的一些实施例中,上述ebpf包括:ebpf程序负责处理报文匹配等处理逻辑。
17.在本发明的一些实施例中,上述map包括:map存放数据库访问控制规则。
18.在本发明的一些实施例中,上述ebpf程序包括:解析常规的源ip、源端口、目的ip、目的端口、协议号、tcp;解析具体的数据库协议,根据解析的结果从对应的map中查找动作,并执行相应的动作。
19.在本发明的一些实施例中,上述数据库防火墙程序还包括:连接数据库、接收用户数据库安全配置及把安全配置写入map表中。
20.第二方面,本技术实施例提供一种基于xdp技术的数据库防火墙实现系统,其包括xdp数据库防火墙策略配置模块,用于通过web页面配置数据库用户以及数据库表和字段的防火墙规则,配置好的内容通过数据库防火墙程序转换为具体map规则并加载到内核map中,网络驱动接收网卡的数据包流量;
21.数据包处理模块,用于数据包由xdp的ebpf程序处理,ebpf通用协议解析模块解析出ip数据包和tcp数据包,然后把负载内容交给数据库协议解析模块,数据库解析模块解析出对应的数据库用户,访问的数据库,表以及字段,将源ip、源端口、目的ip、目的端口、数据库用户、模式名、表、列名作为key,查找对应的map,获取对应的动作,根据获取的动作进行对应的操作。
22.在本发明的一些实施例中,上述包括:用于存储计算机指令的至少一个存储器;与上述存储器通讯的至少一个处理器,其中当上述至少一个处理器执行上述计算机指令时,上述至少一个处理器使上述系统执行:xdp数据库防火墙策略配置模块及数据包处理模块。
23.第三方面,本技术实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如一种基于xdp技术的数据库防火墙实现方法中任一项的方法。
24.相对于现有技术,本发明的实施例至少具有如下优点或有益效果:
25.可以通过使用xdp技术实现数据库防火墙,不需要把数据包带到用户空间,减少了拷贝,由于xdp位于整个linux内核网络协议栈底部,能够非常早的接收和处理报文,具有很好的性能。
附图说明
26.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
27.图1为本发明实施例提供的一种基于xdp技术的数据库防火墙实现方法步骤示意图;
28.图2为本发明实施例提供的ebpf处理流程示意图;
29.图3为本发明实施例提供的整体架构示意图;
30.图4为本发明实施例提供的一种基于xdp技术的数据库防火墙实现系统模块示意
图;
31.图5为本发明实施例提供的一种电子设备。
32.图标:10-xdp数据库防火墙策略配置模块;20-数据包处理模块;101-存储器;102-处理器;103-通信接口。
具体实施方式
33.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本技术实施例的组件可以以各种不同的配置来布置和设计。
34.因此,以下对在附图中提供的本技术的实施例的详细描述并非旨在限制要求保护的本技术的范围,而是仅仅表示本技术的选定实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
35.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
36.需要说明的是,术语“包括”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
37.下面结合附图,对本技术的一些实施方式作详细说明。在不冲突的情况下,下述的各个实施例及实施例中的各个特征可以相互组合。
38.实施例1
39.请参阅图1,图1为本发明实施例提供的一种基于xdp技术的数据库防火墙实现方法步骤示意图,其如下所示:
40.步骤s100,通过web页面配置数据库用户以及数据库表和字段的防火墙规则;
41.步骤s110,配置好的内容通过数据库防火墙程序转换为具体map规则并加载到内核map中;
42.步骤s120,网络驱动接收网卡的数据包流量。
43.步骤s130,数据包由xdp的ebpf程序处理;
44.步骤s140,ebpf通用协议解析模块解析出ip数据包和tcp数据包,然后把负载内容交给数据库协议解析模块;
45.步骤s150,数据库解析模块解析出对应的数据库用户,访问的数据库,表以及字段;
46.步骤s160,将源ip、源端口、目的ip、目的端口、数据库用户、模式名、表、列名作为key,查找对应的map,获取对应的动作;
47.步骤s170,根据获取的动作进行对应的操作。
48.在一些实施方式中,xdp位于网卡驱动层,当数据包经过dma存放到ring buff后,
即可被xdp处理,数据包经过xdp处理后,会有4种返回值:
49.xdp_drop:丢弃该数据包;
50.xdp_pass:送给协议栈;
51.xdp_tx:从当前网卡发送出去;
52.xdp_redirect:从其他网卡发送出去;
53.由于xdp位于整个linux内核网络协议栈底部,能够非常早的接收和处理报文,具有很好的性能。
54.如图2所示,bpf(berkeley packet filter)是linux内核提供的基于bpf字节码的动态注入技术。ebpf(extended berkeley packet filter)是针对bpf的扩展增强,使用netlink获取setsocket系统调用,将ebpf字节码注入到特定的内核处理流程中。
55.在一些实施方式中,还可以提供一种用于实现上述数据库防火墙管理方法的系统,其特征在于包括ebpf控制器、ebpf代理组件和ebpf应用;
56.ebpf控制器用于根据监控的集群资源对象,生成聚合数据;并将所述聚合数据发送到节点的代理组件;
57.部署在节点的ebpf代理组件用于根据聚合数据,在容器内建立ebpf应用,并生成防火墙的策略数据;
58.ebpf应用用于根据所述策略数据进行防火墙管理,即流量数据的管理。
59.其中,容器包括第一容器和第二容器,ebpf控制器所生成的聚合数据包括标签策略;ebpf代理组件将所述标签策略保存在ebpf map中;第一容器的ebpf应用根据ebpf map中的标签策略为出入所述容器的流量数据打标签,并将所述流量数据转发到第二容器;第二容器的ebpf应用根据所述标签放行或丢弃所述流量数据。
60.其中,第一容器和第二容器上分别部署有相应的标签策略。
61.ebpf代理组件还用于验证聚合数据:
62.ebpf代理组件接收到的聚合数据与当前已保存的聚合数据进行对比,获得对比数据;
63.根据对比数据,判断所述聚合数据是否准确或及时;
64.若不准确或不及时,向ebpf控制器11反馈异常信息。
65.还包括规则配置模块,规则配置模块用于通过防火墙策略接口生成或修改防火墙配置策略;所述ebpf控制器根据所述防火墙配置策略和集群资源对象的监控数据生成聚合数据。例如,监控或监测到容器服务飘移、扩容、缩容和更新等情况时,容器的地址变更,则根据防火墙配置策略生存相应的聚合数据,并将聚合数据下发到容器相应节点的ebpf代理组件中。运维人员可以通过规则配置模块生成或修改防火墙配置策略。
66.应当指出的是节点的服务器应当支持ebpf,通常需要内核版本在3.18以上。本实施例的ebpf控制器可以通过对接云原生集群接口,实现对多个集群的集群资源对象进行监控,以实现多集群多维度的防火墙管理,并且适用于应用系统上线前、业务增长期和设配运维过程中的网络安全管理,在保障了应用性能的前提下,也合理规划制定了网络安全。
67.实施例2
68.请参阅图3,图3为本发明实施例提供的整体架构示意图,其如下所示:
69.访问控制平面负责创建ebpf的program,map,并注入xdp处理流程中,
70.ebpf程序负责处理报文匹配等处理逻辑:map存放数据库访问控制规则;
71.ebpf程序由3部分组成:
72.1.通用协议解析模块:负责解析常规的源ip,源端口,目的ip,目的端口,协议号,tcp;
73.2.数据库协议解析模块:负责解析具体的数据库协议,比如mysql协议,tns协议等等;
74.3.业务处理模块:根据解析的结果从对应的map中查找动作,并执行相应的动作。
75.数据库防火墙应用程序组成:
76.数据库交互模块,用于连接数据库;
77.安全规则配置模块,用于接收用户数据库安全配置;
78.内核map表交互模块,用于把安全配置写入map表中。
79.实施例3
80.请参阅图4,图4为本发明实施例提供的一种基于xdp技术的数据库防火墙实现系统模块示意图,其如下所示:
81.xdp数据库防火墙策略配置模块10,用于通过web页面配置数据库用户以及数据库表和字段的防火墙规则,配置好的内容通过数据库防火墙程序转换为具体map规则并加载到内核map中,网络驱动接收网卡的数据包流量;
82.数据包处理模块20,用于数据包由xdp的ebpf程序处理,ebpf通用协议解析模块解析出ip数据包和tcp数据包,然后把负载内容交给数据库协议解析模块,数据库解析模块解析出对应的数据库用户,访问的数据库,表以及字段,将源ip、源端口、目的ip、目的端口、数据库用户、模式名、表、列名作为key,查找对应的map,获取对应的动作,根据获取的动作进行对应的操作。
83.如图5所示,本技术实施例提供一种电子设备,其包括存储器101,用于存储一个或多个程序;处理器102。当一个或多个程序被处理器102执行时,实现如上述第一方面中任一项的方法。
84.还包括通信接口103,该存储器101、处理器102和通信接口103相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。存储器101可用于存储软件程序及模块,处理器102通过执行存储在存储器101内的软件程序及模块,从而执行各种功能应用以及数据处理。该通信接口103可用于与其他节点设备进行信令或数据的通信。
85.其中,存储器101可以是但不限于,随机存取存储器101(random access memory,ram),只读存储器101(read only memory,rom),可编程只读存储器101(programmable read-only memory,prom),可擦除只读存储器101(erasable programmable read-only memory,eprom),电可擦除只读存储器101(electric erasable programmable read-only memory,eeprom)等。
86.处理器102可以是一种集成电路芯片,具有信号处理能力。该处理器102可以是通用处理器102,包括中央处理器102(central processing unit,cpu)、网络处理器102(network processor,np)等;还可以是数字信号处理器102(digital signal processing,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门
阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
87.在本技术所提供的实施例中,应该理解到,所揭露的方法及系统,也可以通过其它的方式实现。以上所描述的方法及系统实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本技术的多个实施例的方法及系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
88.另外,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
89.另一方面,本技术实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器102执行时实现如上述第一方面中任一项的方法。所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器101(rom,read-only memory)、随机存取存储器101(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
90.综上所述,本技术实施例提供的一种基于xdp技术的数据库防火墙实现方法及系统,可以通过使用xdp技术实现数据库防火墙,不需要把数据包带到用户空间,减少了拷贝,由于xdp位于整个linux内核网络协议栈底部,能够非常早的接收和处理报文,具有很好的性能。
91.以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
92.对于本领域技术人员而言,显然本技术不限于上述示范性实施例的细节,而且在不背离本技术的精神或基本特征的情况下,能够以其它的具体形式实现本技术。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本技术的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本技术内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
技术特征:1.一种基于xdp技术的数据库防火墙实现方法,其特征在于,包括:通过web页面配置数据库用户以及数据库表和字段的防火墙规则;配置好的内容通过数据库防火墙程序转换为具体map规则并加载到内核map中;网络驱动接收网卡的数据包流量。2.如权利要求1所述的一种基于xdp技术的数据库防火墙实现方法,其特征在于,还包括:数据包由xdp的ebpf程序处理;ebpf通用协议解析模块解析出ip数据包和tcp数据包,然后把负载内容交给数据库协议解析模块;数据库解析模块解析出对应的数据库用户,访问的数据库,表以及字段;将源ip、源端口、目的ip、目的端口、数据库用户、模式名、表、列名作为key,查找对应的map,获取对应的动作;根据获取的动作进行对应的操作。3.如权利要求1所述的一种基于xdp技术的数据库防火墙实现方法,其特征在于,还包括:访问控制平面负责创建ebpf的program、map,并注入xdp处理流程中。4.如权利要求3所述的一种基于xdp技术的数据库防火墙实现方法,其特征在于,所述ebpf包括:ebpf程序负责处理报文匹配等处理逻辑。5.如权利要求3所述的一种基于xdp技术的数据库防火墙实现方法,其特征在于,所述map包括:map存放数据库访问控制规则。6.如权利要求4所述的一种基于xdp技术的数据库防火墙实现方法,其特征在于,所述ebpf程序包括:解析常规的源ip、源端口、目的ip、目的端口、协议号、tcp;解析具体的数据库协议,根据解析的结果从对应的map中查找动作,并执行相应的动作。7.如权利要求1所述的一种基于xdp技术的数据库防火墙实现方法,其特征在于,所述数据库防火墙程序还包括:连接数据库、接收用户数据库安全配置及把安全配置写入map表中。8.一种基于xdp技术的数据库防火墙实现系统,其特征在于,包括:xdp数据库防火墙策略配置模块,用于通过web页面配置数据库用户以及数据库表和字段的防火墙规则,配置好的内容通过数据库防火墙程序转换为具体map规则并加载到内核map中,网络驱动接收网卡的数据包流量;数据包处理模块,用于数据包由xdp的ebpf程序处理,ebpf通用协议解析模块解析出ip数据包和tcp数据包,然后把负载内容交给数据库协议解析模块,数据库解析模块解析出对应的数据库用户,访问的数据库,表以及字段,将源ip、源端口、目的ip、目的端口、数据库用户、模式名、表、列名作为key,查找对应的map,获取对应的动作,根据获取的动作进行对应的操作。
9.如权利要求8所述的一种基于xdp技术的数据库防火墙实现系统,其特征在于,包括:用于存储计算机指令的至少一个存储器;与所述存储器通讯的至少一个处理器,其中当所述至少一个处理器执行所述计算机指令时,所述至少一个处理器使所述系统执行:xdp数据库防火墙策略配置模块及数据包处理模块。10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-7中任一项所述的方法。
技术总结本发明提出了一种基于XDP技术的数据库防火墙实现方法及系统,涉及安全技术领域。一种基于XDP技术的数据库防火墙实现方法包括:通过WEB页面配置数据库用户以及数据库表和字段的防火墙规则;配置好的内容通过数据库防火墙程序转换为具体Map规则并加载到内核Map中;网络驱动接收网卡的数据包流量。数据包由XDP的EBPF程序处理;EBPF通用协议解析模块解析出IP数据包和TCP数据包,然后把负载内容交给数据库协议解析模块;数据库解析模块解析出对应的数据库用户,访问的数据库,表以及字段;将源IP、源端口、目的IP、目的端口、数据库用户、模式名、表、列名作为KEY,查找对应的Map,获取对应的动作;根据获取的动作进行对应的操作。根据获取的动作进行对应的操作。根据获取的动作进行对应的操作。
技术研发人员:唐更新 任洪权 宋辉 赵卫国
受保护的技术使用者:北京中安星云软件技术有限公司
技术研发日:2022.05.11
技术公布日:2022/11/1