一种数据库防火墙实现方法技术

技术编号:20917796 阅读:25 留言:0更新日期:2019-04-20 09:57
本发明专利技术涉及信息安全技术领域,特别是一种数据库防火墙的实现方法。本发明专利技术基本流程是,首先实现一个对数据库进程关键IO库函数进行查找和重定向,并对该关键函数进行功能替换并实现引流的动态库;然后,实现一个利用所在操作系统平台提供支持机制的,可以实现动态库注入的工具;最后,在目标数据库运行时,对数据库进程实现动态库注入并重定向目标函数到第一步实现的替换函数。替换函数根据设定的执行策略,把要处理的数据发送到协议解析模块;在协议解析模块对数据进行解析识别,发送给策略和操作模块;最后,根据用户配置的操作策略,对数据库操作进行处理。本发明专利技术提供了一种适用于不同数据库的防火墙实现方法。

A Method of Implementing Database Firewall

The invention relates to the field of information security technology, in particular to a method for realizing a database firewall. The basic flow of the present invention is to first realize a key IO library function of the database process to be searched and redirected, and to replace the key function to realize the dynamic library of drainage; then, realize a tool that can realize dynamic database injection by using the support mechanism provided by the operating system platform; finally, when the target database is running, the database process is realized. Implement dynamic library injection and redirect the objective function to the replacement function implemented in the first step. The replacement function sends the data to the protocol parsing module according to the set execution strategy; the data is parsed and identified in the protocol parsing module, and sent to the strategy and operation module; finally, the database operation is processed according to the user configuration operation strategy. The invention provides a firewall implementation method suitable for different databases.

【技术实现步骤摘要】
一种数据库防火墙实现方法
本专利技术涉及信息安全
,特别是一种数据库防火墙的实现方法。
技术介绍
信息安全领域中,数据库防火墙系统对数据库访问行为进行监视、危险操作阻断、操作权限管控、可疑行为审计等处理,是保障数据库操作安全的重要机制和系统。从数据获取形式的角度来划分,现有数据库防火墙实现方案及缺点如下:一、基于网络数据包镜像转发的旁路监听部署模式的通信数据获取方案。这种方案无法干涉数据库客户端到数据库的通信过程,无法实现操作命令主动拦截、阻断等过滤操作,功能严重受限;二、基于网络桥接(代理)模式,串行部署的通信数据获取方案。这种方案需要对网络架构做出一定的调整,对原来网络拓扑产生影响,部署不便;并且因为串行部署的原因,其性能和可靠性将对数据库服务造成一定影响;旁路以及桥接两种通信数据获取(部署)方案都有一个重要的缺点,就是它们都从网络链路获取数据,对网络架构或者设备有依赖,并且位于通信路径的中间,这导致它们无法处理加密通信数据,应用场景受限;另外一个重大缺点就是,此两种模式的数据库防火墙一般部署在专用硬件设备上,这导致采购和使用成本相对高;以及使用灵活性差,并不适用于当下日趋成为应用部署主流的云应用和云平台;为了解决以上问题,需要一种不依赖和不影响网络拓扑的、适用于加密通信环境的、低成本和高灵活性的、云平台友好的数据库防火墙解决方案。
技术实现思路
本专利技术解决的技术问题在于提供一种基于对数据库进程进行动态库注入来替换关键IO函数,实现数据获取与引流的数据库防火墙实现方法;提供一种不依赖和不影响网络拓扑的、适用于加密通信环境的、低成本和高灵活性的、云平台友好的数据库防火墙整体解决方案。本专利技术解决上述技术问题的技术方案如下。所述的方法包括如下步骤:步骤1:实现包含重定向和引流IO函数的动态库,及基于平台定制的动态库注入工具;使用动态库注入工具向运行中的数据库进程注入实现的动态库;步骤2:动态库被注入后执行初始化过程,注入工具和被注入的动态库配合查找目标IO函数,并替换为被注入的动态库里的IO函数以实现重定向;步骤3:注入并重定向成功后,开始对数据库访问流量进行处理;引流方式支持串联和旁路模式;步骤4:如果是旁路模式,将流量交给数据库防火墙后续步骤处理,并立刻返回到函数调用者;如果是串联模式,则将流量交给后续处理步骤,并等待返回处理结果再继续原来的IO路径;步骤5:访问流量进入数据库协议解析模块;步骤6:经协议解析模块解析后输出标准数据库操作数据,数据交给策略模块进行处理;如果是串行模式,则处理后返回处理结果到步骤4,否则就不返回;最后进入记录模块记录处理结果,结束一个处理流程。所述的动态库将截取到的IO流量引流到外面的数据库防火墙进行处理;所述的动态库注入工具是与操作系统平台相关、基于平台定制的,能在目标进程运行时把一个动态库载入到目标数据库进程的地址空间;可以对目标函数进行查找和替换。所述的目标IO函数是网络通信IO函数;在基于安全套接字的加密通信环境中,网络通信IO函数实现在*nix平台的libssl.so或windows平台的libssl.dll动态库的SSL_read和SSL_write函数。所述的方法通过套接字、队列、共享内存等IPC手段,将要检查和过滤的数据库操作流量发送到协议解析模块。所述的协议解析模块负责解析不同数据库的不同格式的网络通信流量,把业务逻辑解析识别出来,交给策略模块进行处理。所述的策略模块是数据库防火墙实施处理策略的、对数据库操作命令进行处理的模块。本专利技术提供了一种适用于不同数据库的,不影响原有软件系统及网络拓扑的,适用于加密通信环境的,通过动态库注入来获取通信数据的数据库防火墙实现方法。附图说明下面结合附图对本专利技术进一步说明:图1为本专利技术流程图;图2为本专利技术用来执行动态库注入的工具程序的流程图;图3为本专利技术对目标函数进行检索替换逻辑的流程图。具体实施方式以下以linux平台为例子,结合附图1、2、3说明本专利技术的一些具体原理流程。图2为用来执行动态库注入的工具程序的流程图,图3为对目标函数进行检索替换逻辑的流程图。这部分逻辑可以实现在注入工具里,也可以实现在被注入的动态库里,取决于基于平台特性的实现便利情况。见图1所示,本专利技术的基本操作流程如下:首先,实现包含重定向函数的动态库;实现基于平台定制的动态库注入工具;使用动态库注入工具向运行中的数据库进程注入首先实现的动态库。注入过程中,程序和被注入的动态库会查找目标IO函数(如加密通信场景下,基于OpenSSL的网络IO出入口SSL_read()及SSL_write())并替换为实现在被注入库里的IO函数以实现重定向。然后,注入并重定向成功后,开始对数据库访问流量进行处理,引流方式可以支持串联(代理)与旁路两种模式。如果是旁路模式,会将流量交给数据库防火墙后续步骤处理,并立刻返回到函数调用者,不会对原来IO路径产生更多影响;如果是串联模式,则会将流量交给后续处理步骤,并等待返回处理结果再继续原来的IO路径。两种模式均通过某种IPC手段如套接字、队列、共享内存等,把要检查和过滤的数据库操作数据发送到协议解析模块。最后,协议解析模块处理后,数据会交给策略和操作模块进行处理。操作模块根据用户配置的操作策略,对数据库操作进行过滤、阻断、告警、记录等处理。如果是串行模式,则处理后会返回处理结果到数据库进程,否则就不返回;最后进入记录模块记录处理结果,结束一个处理流程。动态库,实现了要对目标IO函数进行替换和重定向的引流IO函数,将会被注入到目标数据库进程,实现的重定向函数会把截取到的IO流量引流到外面的数据库防火墙进行处理;所述的动态库注入工具是操作系统平台相关的,基于平台定制,能在目标进程运行时把一个动态库载入到目标数据库进程的地址空间;至于对目标函数进行查找和替换这部分逻辑,可以实现在动态注入工具里,也可以实现在被注入的动态库里,取决于所在平台的具体情况。目标IO函数,一般情况下指的就是网络通信IO函数,网络通信IO函数具体实现在哪里要取决于具体情况。具有普遍意义的一个例子是,对于基于安全套接字的加密通信环境,如基于OpenSSL的实现,网络通信IO函数实现在libssl.so(*nix平台)或libssl.dll(windows平台)动态库的SSL_read和SSL_write函数。本专利技术可以支持两种典型的流量处理模式,分别是旁路和串行,串行模式相当于代理模式。旁路模式因为只是转发数据并立刻返回,具有不影响原来流量路径以及高效的特点,不过不能对流量进行干涉;串行模式则具有相反的特点,会让后续处理模块处理完毕后再返回数据到原来的IO路径。对于数据库防火墙来说,串行模式是主要的使用模式,旁路模式则主要用在操作审计上。具体的使用,取决于具体需求。不论何种模式,均通过某种IPC手段如套接字、队列、共享内存等,把要检查和过滤的数据发送到协议解析模块。协议解析模块负责解析不同数据库的不同格式的网络通信流量,把业务逻辑解析识别出来,交给策略模块进行处理。策略模块是数据库防火墙实施处理策略的、对数据库操作命令进行处理的模块。以下伪代码描述了对目标函数进行查找和替换的核心逻辑。以下代码为用来替换libssl.so库SSL_read()函本文档来自技高网...

【技术保护点】
1.一种数据库防火墙的实现方法,其特征在于,所述的方法包括如下步骤:步骤1:实现包含重定向和引流IO函数的动态库,及基于平台定制的动态库注入工具;使用动态库注入工具向运行中的数据库进程注入实现的动态库;步骤2:动态库被注入后执行初始化过程,注入工具和被注入的动态库配合查找目标IO函数,并替换为被注入的动态库里的IO函数以实现重定向;步骤3:注入并重定向成功后,开始对数据库访问流量进行处理;引流方式支持串联和旁路模式;步骤4:如果是旁路模式,将流量交给数据库防火墙后续步骤处理,并立刻返回到函数调用者;如果是串联模式,则将流量交给后续处理步骤,并等待返回处理结果再继续原来的IO路径;步骤5:访问流量进入数据库协议解析模块;步骤6:经协议解析模块解析后输出标准数据库操作数据,数据交给策略模块进行处理;如果是串行模式,则处理后返回处理结果到步骤4,否则就不返回;最后进入记录模块记录处理结果,结束一个处理流程。

【技术特征摘要】
1.一种数据库防火墙的实现方法,其特征在于,所述的方法包括如下步骤:步骤1:实现包含重定向和引流IO函数的动态库,及基于平台定制的动态库注入工具;使用动态库注入工具向运行中的数据库进程注入实现的动态库;步骤2:动态库被注入后执行初始化过程,注入工具和被注入的动态库配合查找目标IO函数,并替换为被注入的动态库里的IO函数以实现重定向;步骤3:注入并重定向成功后,开始对数据库访问流量进行处理;引流方式支持串联和旁路模式;步骤4:如果是旁路模式,将流量交给数据库防火墙后续步骤处理,并立刻返回到函数调用者;如果是串联模式,则将流量交给后续处理步骤,并等待返回处理结果再继续原来的IO路径;步骤5:访问流量进入数据库协议解析模块;步骤6:经协议解析模块解析后输出标准数据库操作数据,数据交给策略模块进行处理;如果是串行模式,则处理后返回处理结果到步骤4,否则就不返回;最后进入记录模块记录处理结果,结束一个处理流程。2.根据权利要求1所述的方法,其特征在于:所述的动态库将截...

【专利技术属性】
技术研发人员:韩飞刘勇彬季统凯
申请(专利权)人:国云科技股份有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1