CN109657491A - 一种数据库防火墙实现方法 - Google Patents

一种数据库防火墙实现方法 Download PDF

Info

Publication number
CN109657491A
CN109657491A CN201811443777.XA CN201811443777A CN109657491A CN 109657491 A CN109657491 A CN 109657491A CN 201811443777 A CN201811443777 A CN 201811443777A CN 109657491 A CN109657491 A CN 109657491A
Authority
CN
China
Prior art keywords
function
database
dynamic base
module
target
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
CN201811443777.XA
Other languages
English (en)
Other versions
CN109657491B (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 CN201811443777.XA priority Critical patent/CN109657491B/zh
Publication of CN109657491A publication Critical patent/CN109657491A/zh
Application granted granted Critical
Publication of CN109657491B publication Critical patent/CN109657491B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • 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

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

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

Description

一种数据库防火墙实现方法
技术领域
本发明涉及信息安全技术领域,特别是一种数据库防火墙的实现方法。
背景技术
信息安全领域中,数据库防火墙系统对数据库访问行为进行监视、危险操作阻断、操作权限管控、可疑行为审计等处理,是保障数据库操作安全的重要机制和系统。
从数据获取形式的角度来划分,现有数据库防火墙实现方案及缺点如下:
一、基于网络数据包镜像转发的旁路监听部署模式的通信数据获取方案。这种方案无法干涉数据库客户端到数据库的通信过程,无法实现操作命令主动拦截、阻断等过滤操作,功能严重受限;
二、基于网络桥接(代理)模式,串行部署的通信数据获取方案。这种方案需要对网络架构做出一定的调整,对原来网络拓扑产生影响,部署不便;并且因为串行部署的原因,其性能和可靠性将对数据库服务造成一定影响;
旁路以及桥接两种通信数据获取(部署)方案都有一个重要的缺点,就是它们都从网络链路获取数据,对网络架构或者设备有依赖,并且位于通信路径的中间,这导致它们无法处理加密通信数据,应用场景受限;
另外一个重大缺点就是,此两种模式的数据库防火墙一般部署在专用硬件设备上,这导致采购和使用成本相对高;以及使用灵活性差,并不适用于当下日趋成为应用部署主流的云应用和云平台;
为了解决以上问题,需要一种不依赖和不影响网络拓扑的、适用于加密通信环境的、低成本和高灵活性的、云平台友好的数据库防火墙解决方案。
发明内容
本发明解决的技术问题在于提供一种基于对数据库进程进行动态库注入来替换关键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()函数的函数。这个函数实现在被注入到目标进程的动态库里。通过替换这个函数,在这个IO路径点读取到的网络通信数据是已经解密了的,因此得以对加密环境下的数据库操作数据进行监控管理。此函数的逻辑是先从网络读取到解密后的数据,然后发送到防火墙进行处理,并根据处理模式和结果,返回相应内容到函数调用者,也就是数据库进程。

Claims (6)

1.一种数据库防火墙的实现方法,其特征在于,所述的方法包括如下步骤:
步骤1:实现包含重定向和引流IO函数的动态库,及基于平台定制的动态库注入工具;使用动态库注入工具向运行中的数据库进程注入实现的动态库;
步骤2:动态库被注入后执行初始化过程,注入工具和被注入的动态库配合查找目标IO函数,并替换为被注入的动态库里的IO函数以实现重定向;
步骤3:注入并重定向成功后,开始对数据库访问流量进行处理;引流方式支持串联和旁路模式;
步骤4:如果是旁路模式,将流量交给数据库防火墙后续步骤处理,并立刻返回到函数调用者;如果是串联模式,则将流量交给后续处理步骤,并等待返回处理结果再继续原来的IO路径;
步骤5:访问流量进入数据库协议解析模块;
步骤6:经协议解析模块解析后输出标准数据库操作数据,数据交给策略模块进行处理;如果是串行模式,则处理后返回处理结果到步骤4,否则就不返回;最后进入记录模块记录处理结果,结束一个处理流程。
2.根据权利要求1所述的方法,其特征在于:所述的动态库将截取到的IO流量引流到外面的数据库防火墙进行处理;
所述的动态库注入工具是与操作系统平台相关、基于平台定制的,能在目标进程运行时把一个动态库载入到目标数据库进程的地址空间;可以对目标函数进行查找和替换。
3.根据权利要求1所述的方法,其特征在于:所述的目标IO函数是网络通信IO函数;在基于安全套接字的加密通信环境中,网络通信IO函数实现在Unix平台的libssl.so或windows平台的libssl.dll动态库的SSL_read和SSL_write函数。
4.根据权利要求1所述的方法,其特征在于:所述的方法通过套接字、队列、共享内存等IPC手段,将要检查和过滤的访问流量发送到协议解析模块。
5.根据权利要求1所述的方法,其特征在于:所述的协议解析模块负责解析不同数据库的不同格式的网络通信流量,把标准数据库操作逻辑解析识别出来,交给策略模块进行处理。
6.根据权利要求1所述的方法,其特征在于:所述的策略模块是数据库防火墙实施处理策略的、对数据库操作命令进行处理的模块。
CN201811443777.XA 2018-11-29 2018-11-29 一种数据库防火墙实现方法 Active CN109657491B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811443777.XA CN109657491B (zh) 2018-11-29 2018-11-29 一种数据库防火墙实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811443777.XA CN109657491B (zh) 2018-11-29 2018-11-29 一种数据库防火墙实现方法

Publications (2)

Publication Number Publication Date
CN109657491A true CN109657491A (zh) 2019-04-19
CN109657491B CN109657491B (zh) 2023-06-30

Family

ID=66111985

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811443777.XA Active CN109657491B (zh) 2018-11-29 2018-11-29 一种数据库防火墙实现方法

Country Status (1)

Country Link
CN (1) CN109657491B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003061188A1 (en) * 2002-01-14 2003-07-24 Netmotion Wireless, Inc. Method and apparatus for providing secure connectivity in mobile and other intermittent computing environments
US6970924B1 (en) * 1999-02-23 2005-11-29 Visual Networks, Inc. Methods and apparatus for monitoring end-user experience in a distributed network
CN103379481A (zh) * 2012-04-26 2013-10-30 腾讯科技(深圳)有限公司 一种实现安全防护的方法及一种防火墙
US8613045B1 (en) * 2008-05-01 2013-12-17 F5 Networks, Inc. Generating secure roaming user profiles over a network
CN103559446A (zh) * 2013-11-13 2014-02-05 厦门市美亚柏科信息股份有限公司 一种基于安卓系统的设备的动态病毒检测方法和装置
CN108255542A (zh) * 2018-01-05 2018-07-06 北京北信源信息安全技术有限公司 一种虚拟机的串口并口管控方法与装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6970924B1 (en) * 1999-02-23 2005-11-29 Visual Networks, Inc. Methods and apparatus for monitoring end-user experience in a distributed network
WO2003061188A1 (en) * 2002-01-14 2003-07-24 Netmotion Wireless, Inc. Method and apparatus for providing secure connectivity in mobile and other intermittent computing environments
US8613045B1 (en) * 2008-05-01 2013-12-17 F5 Networks, Inc. Generating secure roaming user profiles over a network
CN103379481A (zh) * 2012-04-26 2013-10-30 腾讯科技(深圳)有限公司 一种实现安全防护的方法及一种防火墙
US20150033320A1 (en) * 2012-04-26 2015-01-29 Tencent Technology (Shenzhen) Company Limited Safety Protection Method, Firewall, Terminal Device and Computer-Readable Storage Medium
CN103559446A (zh) * 2013-11-13 2014-02-05 厦门市美亚柏科信息股份有限公司 一种基于安卓系统的设备的动态病毒检测方法和装置
CN108255542A (zh) * 2018-01-05 2018-07-06 北京北信源信息安全技术有限公司 一种虚拟机的串口并口管控方法与装置

Also Published As

Publication number Publication date
CN109657491B (zh) 2023-06-30

Similar Documents

Publication Publication Date Title
EP1381928B1 (en) Computer security and management system
CN101520831B (zh) 安全终端系统及终端安全方法
US10694402B2 (en) Security orchestration and network immune system deployment framework
US20100043047A1 (en) Unauthorized data transfer detection and prevention
US20140337410A1 (en) Enterprise cross-domain solution having configurable data filters
CN102171674B (zh) 用于访问计算机装置的方法和设备
US20070044151A1 (en) System integrity manager
CN103621038A (zh) 中间件机器环境中支持子网管理数据包防火墙限制和业务保护中的至少一项的系统和方法
CN102208004B (zh) 一种基于最小化特权原则的软件行为控制方法
KR101223594B1 (ko) Lkm 루트킷 검출을 통한 실시간 운영정보 백업 방법 및 그 기록매체
US20210099424A1 (en) An industrial control system firewall module
CN109981367A (zh) 基于内网穿透的虚机paas服务管理的方法
Toker et al. Mitre ics attack simulation and detection on ethercat based drinking water system
CN109710671B (zh) 实现数据库操作数据引流的方法及其数据库防火墙系统
CN112468464B (zh) 基于服务链的状态机完整性验证系统及方法
Zammit A machine learning based approach for intrusion prevention using honeypot interaction patterns as training data
KR101160219B1 (ko) 네트워크 보안을 위한 접속 경로 추적시스템과 추적방법
US9800585B2 (en) Restricting access by services deployed on an application server
CN109657491A (zh) 一种数据库防火墙实现方法
CN115051851B (zh) 物联网场景下的用户访问行为管控系统和方法
CN110221991A (zh) 计算机外围设备的管控方法及系统
US11496508B2 (en) Centralized security package and security threat management system
Bröring et al. Secure usage of asset administration shells: an overview and analysis of best practises
RU2202122C2 (ru) Система контроля доступа к запускаемым процессам (программам)
Kern et al. Using RBAC to enforce the principle of least privilege in industrial remote maintenance sessions

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