CN109710671A - 实现数据库操作数据引流的方法及其数据库防火墙*** - Google Patents

实现数据库操作数据引流的方法及其数据库防火墙*** Download PDF

Info

Publication number
CN109710671A
CN109710671A CN201811532423.2A CN201811532423A CN109710671A CN 109710671 A CN109710671 A CN 109710671A CN 201811532423 A CN201811532423 A CN 201811532423A CN 109710671 A CN109710671 A CN 109710671A
Authority
CN
China
Prior art keywords
database
function
flow
module
firewall
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201811532423.2A
Other languages
English (en)
Other versions
CN109710671B (zh
Inventor
韩飞
刘勇彬
季统凯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
G Cloud Technology Co Ltd
Original Assignee
G Cloud Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by G Cloud Technology Co Ltd filed Critical G Cloud Technology Co Ltd
Priority to CN201811532423.2A priority Critical patent/CN109710671B/zh
Publication of CN109710671A publication Critical patent/CN109710671A/zh
Application granted granted Critical
Publication of CN109710671B publication Critical patent/CN109710671B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及一种实现数据库操作数据引流的方法及其数据库防火墙***。本发明的方法是首先实现一个动态链接库,该动态链接库里实现了与数据库内部调用到的关键IO函数的名称与参数形式一致的劫持函数;然后,利用所在操作***平台提供的相关动态链接机制,通过配置,在数据库进程启动的时候,预先载入此动态库,从而实现对数据库关键IO函数的劫持与替换;最后,在目标数据库运行的时候,数据库操作产生的数据会经过实现劫持的函数,从而可以实现对数据库操作数据的获取,并引流到数据库防火墙,进行后续的审计、过滤、阻断等操作。本发明提供一种适用于不同数据库和不同操作***平台的数据库操作数据引流的方法及其数据库防火墙***。

Description

实现数据库操作数据引流的方法及其数据库防火墙***
技术领域
本发明涉及信息安全技术领域,特别是一种实现数据库操作数据引流的方法及其数据库防火墙***。
背景技术
信息安全领域中,数据库防火墙***对数据库访问行为进行监视、危险操作阻断、操作权限管控、可疑行为审计等处理,是保障数据库操作安全的重要设备和***。
数据库防火墙必须获取数据库操作流量以进行处理,因此数据获取方式是数据库防火墙***实现的关键之一,会影响其部署模式,使用灵活性,成本等。从数据获取形式的角度来划分,现有主流数据库防火墙基本是通过采用网络透明的方式,;从网络链路的层次来获取数据;从部署角度可以细分为两种方案,描述如下:
一、基于网络数据包镜像转发的旁路监听部署模式的数据获取方案,这种方案无法干涉数据库客户端到数据库的通信过程,无法实现操作命令主动拦截、阻断等过滤操作,功能严重受限;
二、基于网络桥接(代理)模式,串行部署的数据获取方案,这种方案需要对网络架构做出一定的调整,对原来网络拓扑产生影响,部署不便;并且因为串行部署的原因,其性能和可靠性将对数据库服务造成一定影响;
旁路以及桥接两种通信数据获取(部署)方案都有一个重要的缺点,就是它们都从网络链路获取数据,对网络架构或者设备有依赖,位于通信链路的中间,这导致它们无法处理加密通信数据,应用场景受限。
另外一个重大缺点就是,此两种模式的数据库防火墙一般部署在专用硬件设备或专门服务器上,这导致采购和使用成本相对高;使用灵活性差,不适用于当下日趋成为应用部署主流的云应用和云平台;
为了解决以上问题,需要一种不依赖和不影响网络拓扑的、适用于加密通信环境的、低成本和高灵活性的、云平台友好的数据库防火墙解决方案,而这种解决方案的关键是如何用一种新的思路来获取数据。
发明内容
本发明解决的技术问题在于提供一种实现数据库操作数据引流的方法及其数据库防火墙***;实现一种不依赖和不影响网络拓扑的、适用于加密通信环境的、低成本和高灵活性的、云平台友好的数据库防火墙解决方案。
本发明解决上述技术问题的技术方案是:
所述的方法是通过动态库预装载,实现关键函数劫持,从而实现对数据库操作数据引流。
所述的引流是对进出数据库的数据流量进行引导与转发;引流处于应用层,是对业务逻辑数据进行的引流;具体包括如下步骤:
步骤1:首先实现包含针对数据库关键IO函数的劫持函数的动态链接库;
步骤2:使用所在平台提供的动态库预先链接机制,在启动数据库进程时让数据库预先链接含有劫持函数的动态链接库;
步骤3:在数据库进程启动后,劫持函数取代原来的关键IO函数被数据库进程调用,所有数据库IO流量都会通过劫持函数;
步骤4:劫持函数开始对数据库访问流量进行引流和导向,通过IPC机制转发到外部的处理进程,从而实现对数据库流量的引导;引流方式支持串联与旁路两种模式。
所述的数据库关键IO函数,是从网络接收数据库操作指令和返回指令结果的函数,包括:TLS/SSL加密通信环境下,libssl.so/libssl.dll链接库的SSL_read()和SSL_write()函数。
所述的劫持函数是函数名称和形式参数与要劫持的函数完全一致的函数;劫持函数基于所在平台的动态库函数链接机制,在数据库进程启动的时候替换被劫持函数。
所述的预先链接机制是:在linux平台下,通过设置LD_PRELOAD环境变量指定动态链接库,让进程启动的时候首先链接指定的动态链接库;在windows平台下,通过配置动态库搜寻路径来指定和抢先动态链接库,实现对被替换动态库里的目标关键IO函数的劫持。
所述的IPC机制是进程间通信机制,取决于所在的操作***平台;一般具有网络套接字、内存共享、消息队列等机制;通过IPC机制将进出数据库的流量引导转发到数据库防火墙进程进行处理。
所述的串联模式是劫持函数等待防火墙返回处理结果才继续下一步,可以影响原来的流量处理流程;
所述的旁路模式是不等待防火墙处理结果就继续下一步处理,不影响原来的流量处理流程。
所述的***包括的功能模块有:流量收发模块、数据库协议解析模块、流量处理模块、记录及告警模块、控制及配置模块;
所述的流量收发模块,指的是基于IPC机制,与替换进数据库进程的动态库里面的劫持函数进行通信,收取数据库操作流量和返回处理结果的模块;
所述的数据库协议解析模块,用于识别和标准化不同数据库操作指令,以便于下一步处理;
所述的流量处理模块,是所述数据库防火墙的关键模块,它基于用户所设定的处理策略,对进入的数据库操作流量进行统计、拦截、修改、优化操作,实现数据库防火墙的核心职能;
所述的记录及告警模块,用于记录及输出防火墙的处理结果;
所述的控制及配置模块,用于提供控制配置功能及相关接口。
本发明的方法不从网络路径获取数据,而是从数据库本身的IO路径上获取数据;通过动态库预装载,实现关键函数劫持与替换;从而实现对数据库操作数据引流,基于此实现数据库防火墙***。本发明适用于不同数据库和不同操作***平台的,不影响原有软件***配置及网络拓扑的,适用于加密通信环境的。
附图说明
下面结合附图对本发明进一步说明。
图1是本发明流程图;
图2是本发明数据库防火墙***的功能模块和工作流程。
具体实施方式
见图1所示,本发明的方法是通过动态库预装载,实现关键函数劫持,从而实现对数据库操作数据引流。所述引流是对进出数据库的数据流量进行引导与转发;引流处于应用层,是对业务逻辑数据进行的引流;具体包括如下步骤:
步骤1:首先实现包含针对数据库关键IO函数的劫持函数的动态链接库;
步骤2:使用所在平台提供的动态库预先链接机制,在启动数据库进程时让数据库预先链接含有劫持函数的动态链接库;
步骤3:在数据库进程启动后,劫持函数取代原来的关键IO函数被数据库进程调用,所有数据库IO流量都会通过劫持函数;
步骤4:劫持函数开始对数据库访问流量进行引流和导向,通过IPC机制转发到外部的处理进程,从而实现对数据库流量的引导;引流方式支持串联与旁路两种模式。
前述的数据库关键IO函数,是从网络接收数据库操作指令和返回指令结果的函数,包括:TLS/SSL加密通信环境下,libssl.so/libssl.dll链接库的SSL_read()和SSL_write()函数。劫持函数是函数名称和形式参数与要劫持的函数完全一致的函数;劫持函数基于所在平台的动态库函数链接机制,在数据库进程启动的时候替换被劫持函数。
预先链接机制是:在linux平台下,通过设置LD_PRELOAD环境变量指定动态链接库,让进程启动的时候首先链接指定的动态链接库;在windows平台下,通过配置动态库搜寻路径来指定和抢先动态链接库,实现对被替换动态库里的目标关键IO函数的劫持。
IPC机制是进程间通信机制,取决于所在的操作***平台;一般具有网络套接字、内存共享、消息队列等机制;通过IPC机制将进出数据库的流量引导转发到数据库防火墙进程进行处理。
串联模式是劫持函数等待防火墙返回处理结果才继续下一步,可以影响原来的流量处理流程;旁路模式是不等待防火墙处理结果就继续下一步处理,不影响原来的流量处理流程。
见图2所示,本发明的***包括的功能模块有:流量收发模块、数据库协议解析模块、流量处理模块、记录及告警模块、控制及配置模块;流量收发模块,指的是基于IPC机制,与替换进数据库进程的动态库里面的劫持函数进行通信,收取数据库操作流量和返回处理结果的模块。数据库协议解析模块,用于识别和标准化不同数据库操作指令,以便于下一步处理。流量处理模块,是所述数据库防火墙的关键模块,它基于用户所设定的处理策略,对进入的数据库操作流量进行统计、拦截、修改、优化操作,实现数据库防火墙的核心职能。记录及告警模块,用于记录及输出防火墙的处理结果。控制及配置模块,用于提供控制配置功能及相关接口。
以下以linux平台为例子,展示了客户端访问数据库,通信流量在被劫持的libssl.so的两个关键IO读写函数被引流到数据库防火墙的整体流程。
以下为劫持函数的基本逻辑伪代码。读和写两个劫持函数的函数名和形参必须跟被劫持的函数一致,如此,才能起到冒充被劫持函数,被目标进程调用的目的。我们以linux平台下libssl.so库中的SSL_read()和SSL_write()函数为例子。选择劫持此两个函数,是因为在IO路径的这个节点上,数据已经被解密和还未加密,而且位于第三方公共库内,是方便有效的劫持点。
***具体实现代码示例
以下代码描述了对目标函数进行查找和替换的核心逻辑。
以下代码展示了一个linux平台下实际劫持函数及相关辅助函数的实现,该劫持函数实现了libssl.so库中的SSL_read()函数,该劫持函数实现在预装载的劫持动态库libssl_hijack.so中。
#伪代码实现示例
以下操作命令展示了linux平台如何利用LD_PRELOAD机制来预装载一个指定库,从而实现关键函数劫持。以启动mariadb数据库为例子。
##指定劫持动态库
#export LD_PRELOAD=/opt/db_firewall/libssl_hijack.so
##启动数据库进程
#/usr/libexec/mysqld--basedir=/usr--datadir=/var/lib/mysql
--plugin-dir=/usr/lib64/mysql/plugin
--log-error=/var/log/mariadb/mariadb.log
--pid-file=/var/run/mariadb/mariadb.pid
--socket=/var/lib/mysql/mysql.sock
数据库启动,至此,完成劫持。启动数据库防火墙进程,实现引流。

Claims (8)

1.一种实现数据库操作数据引流的方法,其特征在于:所述的方法是通过动态库预装载,实现关键函数劫持,从而实现对数据库操作数据引流。
2.根据权利要求1所述的方法,其特征在于:所述的引流是对进出数据库的数据流量进行引导与转发;引流处于应用层,是对业务逻辑数据进行的引流;具体包括如下步骤:
步骤1:实现包含针对数据库关键IO函数的劫持函数的动态链接库;
步骤2:使用所在平台提供的动态库预先链接机制,在启动数据库进程时让数据库预先链接含有劫持函数的动态链接库;
步骤3:在数据库进程启动后,劫持函数取代原来的关键IO函数并被数据库进程调用,使所有数据库IO流量都通过劫持函数;
步骤4:劫持函数开始对数据库访问流量进行引流和导向,通过IPC机制转发到外部的处理进程,从而实现对数据库流量的引导;引流方式支持串联与旁路两种模式。
3.根据权利要求2所述的方法,其特征在于:
所述的数据库关键IO函数,是从网络接收数据库操作指令和返回指令结果的函数,包括:TLS/SSL加密通信环境下,libssl.so/libssl.dll链接库的SSL_read()和SSL_write()函数。
4.根据权利要求2所述的方法,其特征在于:
所述的劫持函数是函数名称和形式参数与要劫持的函数完全一致的函数;劫持函数基于所在平台的动态库函数链接机制,在数据库进程启动的时候替换被劫持函数。
5.根据权利要求2所述的方法,其特征在于:
所述的预先链接机制是:在linux平台下,通过设置LD_PRELOAD环境变量指定动态链接库,让进程启动的时候首先链接指定的动态链接库;在windows平台下,通过配置动态库搜寻路径来指定和抢先动态链接库,实现对被替换动态库里的目标关键IO函数的劫持。
6.根据权利要求2所述的方法,其特征在于:
所述的IPC机制是进程间通信机制,取决于所在的操作***平台;一般具有网络套接字、内存共享、消息队列等机制;通过IPC机制将进出数据库的流量引导转发到数据库防火墙进程进行处理。
7.根据权利要求2所述的方法,其特征在于:
所述的串联模式是劫持函数等待防火墙返回处理结果才继续下一步,影响原来的流量处理流程;
所述的旁路模式是不等待防火墙处理结果就继续下一步处理,不影响原来的流量处理流程。
8.一种权利要求1-7任一项方法的数据库防火墙***,其特征在于,所述的***包括的功能模块有:流量收发模块、数据库协议解析模块、流量处理模块、记录及告警模块、控制及配置模块;
所述的流量收发模块,指的是基于IPC机制,与替换进数据库进程的动态库里面的劫持函数进行通信,收取数据库操作流量和返回处理结果的模块;
所述的数据库协议解析模块,用于识别和标准化不同数据库操作指令,以便于下一步处理;
所述的流量处理模块,是所述数据库防火墙的关键模块,它基于用户所设定的处理策略,对进入的数据库操作流量进行统计、拦截、修改、优化操作,实现数据库防火墙的核心职能;
所述的记录及告警模块,用于记录及输出防火墙的处理结果;
所述的控制及配置模块,用于提供控制配置功能及相关接口。
CN201811532423.2A 2018-12-14 2018-12-14 实现数据库操作数据引流的方法及其数据库防火墙*** Active CN109710671B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811532423.2A CN109710671B (zh) 2018-12-14 2018-12-14 实现数据库操作数据引流的方法及其数据库防火墙***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811532423.2A CN109710671B (zh) 2018-12-14 2018-12-14 实现数据库操作数据引流的方法及其数据库防火墙***

Publications (2)

Publication Number Publication Date
CN109710671A true CN109710671A (zh) 2019-05-03
CN109710671B CN109710671B (zh) 2023-05-30

Family

ID=66255903

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811532423.2A Active CN109710671B (zh) 2018-12-14 2018-12-14 实现数据库操作数据引流的方法及其数据库防火墙***

Country Status (1)

Country Link
CN (1) CN109710671B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111010346A (zh) * 2019-12-23 2020-04-14 深信服科技股份有限公司 基于动态路由的报文处理方法、设备、存储介质及装置
CN111488331A (zh) * 2020-04-08 2020-08-04 广州虎牙科技有限公司 数据库连接方法、装置和计算机设备
CN112685203A (zh) * 2021-03-12 2021-04-20 北京安华金和科技有限公司 操作获取方法和装置、存储介质及电子设备

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0027280D0 (en) * 2000-11-08 2000-12-27 Malcolm Peter An information management system
US20040111720A1 (en) * 2001-02-01 2004-06-10 Vertes Marc Philippe Method and system for managing shared-library executables
US20050251856A1 (en) * 2004-03-11 2005-11-10 Aep Networks Network access using multiple authentication realms
EP2713561A1 (en) * 2012-09-28 2014-04-02 British Telecommunications public limited company Installation of network services
CN104954894A (zh) * 2015-06-26 2015-09-30 网宿科技股份有限公司 一种视频流量引导方法、装置及一种电子设备
CN105955762A (zh) * 2016-04-19 2016-09-21 北京金山安全软件有限公司 一种注入动态链接库文件的方法、装置及电子设备
US20160292416A1 (en) * 2015-03-31 2016-10-06 Kaspersky Lab Zao System and method for identifying a file path using tree data structure
CN106777126A (zh) * 2016-12-16 2017-05-31 广东电网有限责任公司电力调度控制中心 一种支持异构时序数据库的数据在线迁移方法
US20170163663A1 (en) * 2015-12-02 2017-06-08 Salesforce.Com, Inc. False positive detection reduction system for network-based attacks
US20170257449A1 (en) * 2014-09-16 2017-09-07 Wangsu Science & Technology Co., Ltd. Method for forwarding traffic in application on mobile intelligent terminal
CN107295573A (zh) * 2017-07-12 2017-10-24 网宿科技股份有限公司 一种业务应用流量的引导方法和***
CN108595218A (zh) * 2018-04-17 2018-09-28 网宿科技股份有限公司 一种加载***动态库的方法和装置

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0027280D0 (en) * 2000-11-08 2000-12-27 Malcolm Peter An information management system
US20040111720A1 (en) * 2001-02-01 2004-06-10 Vertes Marc Philippe Method and system for managing shared-library executables
US20050251856A1 (en) * 2004-03-11 2005-11-10 Aep Networks Network access using multiple authentication realms
EP2713561A1 (en) * 2012-09-28 2014-04-02 British Telecommunications public limited company Installation of network services
US20170257449A1 (en) * 2014-09-16 2017-09-07 Wangsu Science & Technology Co., Ltd. Method for forwarding traffic in application on mobile intelligent terminal
US20160292416A1 (en) * 2015-03-31 2016-10-06 Kaspersky Lab Zao System and method for identifying a file path using tree data structure
CN104954894A (zh) * 2015-06-26 2015-09-30 网宿科技股份有限公司 一种视频流量引导方法、装置及一种电子设备
US20170163663A1 (en) * 2015-12-02 2017-06-08 Salesforce.Com, Inc. False positive detection reduction system for network-based attacks
CN105955762A (zh) * 2016-04-19 2016-09-21 北京金山安全软件有限公司 一种注入动态链接库文件的方法、装置及电子设备
CN106777126A (zh) * 2016-12-16 2017-05-31 广东电网有限责任公司电力调度控制中心 一种支持异构时序数据库的数据在线迁移方法
CN107295573A (zh) * 2017-07-12 2017-10-24 网宿科技股份有限公司 一种业务应用流量的引导方法和***
CN108595218A (zh) * 2018-04-17 2018-09-28 网宿科技股份有限公司 一种加载***动态库的方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张胜等: "主机入侵防护***的设计与实现", 《计算机工程与设计》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111010346A (zh) * 2019-12-23 2020-04-14 深信服科技股份有限公司 基于动态路由的报文处理方法、设备、存储介质及装置
CN111010346B (zh) * 2019-12-23 2021-10-19 深信服科技股份有限公司 基于动态路由的报文处理方法、设备、存储介质及装置
CN111488331A (zh) * 2020-04-08 2020-08-04 广州虎牙科技有限公司 数据库连接方法、装置和计算机设备
CN111488331B (zh) * 2020-04-08 2024-03-01 广州虎牙科技有限公司 数据库连接方法、装置和计算机设备
CN112685203A (zh) * 2021-03-12 2021-04-20 北京安华金和科技有限公司 操作获取方法和装置、存储介质及电子设备
CN112685203B (zh) * 2021-03-12 2021-11-16 北京安华金和科技有限公司 操作获取方法和装置、存储介质及电子设备

Also Published As

Publication number Publication date
CN109710671B (zh) 2023-05-30

Similar Documents

Publication Publication Date Title
CN107766205B (zh) 一种面向微服务调用过程跟踪的监控***及方法
CN109710671A (zh) 实现数据库操作数据引流的方法及其数据库防火墙***
CN108234653A (zh) 一种处理业务请求的方法及装置
CN102999716B (zh) 虚拟机器监控***及方法
CN102196478B (zh) 一种网管***故障的诊断方法和***
JP2021517370A (ja) トポロジ処理方法、装置、及びシステム
CN101711470A (zh) 一种用于在对等网络上创建共享信息列表的***和方法
CN109547488A (zh) 一种基于联盟区块链的可信数据计算及交换***
CN109587125A (zh) 一种网络安全大数据分析方法、***及相关装置
CN110392039A (zh) 基于日志和流量采集的网络***事件溯源方法及***
AU2019307885A1 (en) Systems and methods for reporting computer security incidents
CN115766258B (zh) 一种基于因果关系图的多阶段攻击趋势预测方法、设备及存储介质
CN110474870A (zh) 基于区块链的网络主动防御方法、***及计算机可读存储介质
CN115174279B (zh) 一种以太坊智能合约漏洞实时检测方法、终端及存储介质
CN109388963A (zh) 一种移动终端用户隐私数据防护方法和装置
WO2020131859A1 (en) Communicating trace information between security zones
CN116232963A (zh) 一种链路跟踪方法及***
CN109710667A (zh) 一种基于大数据平台的多源数据融合共享实现方法及***
Lucchese et al. HoneyICS: A high-interaction physics-aware honeynet for industrial control systems
CN110351131A (zh) 一种用于分布式链路的监控方法、装置和电子设备
CN112468464B (zh) 基于服务链的状态机完整性验证***及方法
CN112511501A (zh) 一种面向5g应用的数据安全监测***
CN103902590A (zh) 终端自动化测试方法及其装置
CN115049493A (zh) 一种区块链数据追踪方法、装置及电子设备
CN109104407A (zh) 一种基于特征检索的网络日志在线跟踪方法及***

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant