数据库防火墙

转自百度百科

  数据库防火墙 系统,串联部署在数据库服务器之前,解决数据库应用侧和运维侧两方面的问题,是一款基于 数据库 协议分析与控制技术的数据库安全防护系统。DBFirewall基于主动防御机制,实现数据库的访问行为控制、危险操作阻断、可疑行为审计。
数据库安全技术之一, 数据库安全技术主要包括:数据库漏扫、 数据库加密数据库防火墙数据脱敏数据库安全审计系统
数据库安全风险包括: 刷库拖库撞库
数据库安全攻击手段包括: SQL注入攻击

简介

数据库防火墙技术是针对关系型数据库保护需求应运而生的一种数据库安全主动防御技术,数据库防火墙部署于应用服务器和数据库之间。 用户必须通过该系统才能对数据库进行访问或管理。数据库防火墙所采用的主动防御技术能够主动实时监控、识别、告警、阻挡绕过企业网络边界(FireWall、IDS\IPS等)防护的外部数据攻击、来自于内部的高权限用户(DBA、开发人员、第三方外包服务提供商)的数据窃取、破坏、损坏的等,从数据库SQL语句精细化控制的技术层面,提供一种主动安全防御措施,并且,结合独立于数据库的安全访问控制规则,帮助用户应对来自内部和外部的数据安全威胁。

核心功能

  • 屏蔽直接访问数据库的通道:数据库防火墙部署介于数据库服务器和应用服务器之间,屏蔽直接访问的通道,防止数据库隐通道对数据库的攻击。
  • 二次认证:基于独创的“连接六元组【机器指纹(不可伪造)、IP地址、MAC地址、用户、应用程序、时间段】”授权单位,应用程序对数据库的访问,必须经过数据库防火墙和数据库自身两层身份认证。
  • 攻击保护:实时检测用户对数据库进行的SQL注入和缓冲区溢出攻击。并报警或者阻止攻击行为,同时详细的审计下攻击操作发生的时间、来源IP、登录数据库的用户名、攻击代码等详细信息。
  • 连接监控:实时的监控所有到数据库的连接信息、操作数、违规数等。管理员可以断开指定的连接。
  • 安全审计:系统能够审计对数据库服务器的访问情况。包括用户名、程序名、IP地址、请求的数据库、连接建立的时间、连接断开的时间、通信量大小、执行结果等等信息。并提供灵活的回放日志查询分析功能,并可以生存报表。
  • 审计探针:本系统在作为数据库防火墙的同时,还可以作为数据库审计系统的数据获取引擎,将通信内容发送到审计系统中。
  • 细粒度权限控制:按照SQL操作类型包括Select、Insert、Update、Delete,对象拥有者,及基于表、视图对象、列进行权限控制
  • 精准SQL语法分析:高性能SQL语义分析引擎,对数据库的SQL语句操作,进行实时捕获、识别、分类
  • 自动SQL学习:基于自学习机制的风险管控模型,主动监控数据库活动,防止未授权的数据库访问、SQL注入、权限或角色升级,以及对敏感数据的非法访问等。
  • 透明部署:无须改变网络结构、应用部署、应用程序内部逻辑、前端用户习惯等

防护能力

防止外部黑客攻击威胁:黑客利用Web应用漏洞,进行SQL注入;或以Web应用服务器为跳板,利用数据库自身漏洞攻击和侵入。
  防护:通过 虚拟补丁技术捕获和阻断漏洞攻击行为,通过SQL注入特征库捕获和阻断SQL注入行为。
  防止内部高危操作
  威胁:系统维护人员、外包人员、开发人员等,拥有直接访问数据库的权限,有意无意的高危操作对数据造成破坏。
  防护:通过限定更新和删除影响行、限定无Where的更新和删除操作、限定drop、truncate等高危操作避免大规模损失。
  防止敏感数据泄漏
  威胁:黑客、开发人员可以通过应用批量下载敏感数据,内部维护人员远程或本地批量导出敏感数据。
  防护:限定数据查询和下载数量、限定敏感数据访问的用户、地点和时间。
  审计追踪非法行为
  威胁:业务人员在利益诱惑下,通过业务系统提供的功能完成对敏感信息的访问,进行信息的售卖和数据篡改。
  防护:提供对所有数据访问行为的记录,对风险行为进行SysLog、邮件、短信等方式的告警,提供事后追踪分析工具。
 

一、概述

数据库防火墙仿佛是近几年来出现的一款新的安全设备,但事实上历史已经很长。2010年,Oracle公司在收购了Secerno公司,在2011年2月份正式发布了其数据库防火墙产品(database firewall),已经在市场上出现很多年头了。由于数据库防火墙这个词通俗易懂,和防火墙、Web防火墙、下一代防火墙等主流安全产品一脉相承,很多公司也就把自己的数据(库)安全产品命名为数据库防火墙。每家公司对于数据库防火墙的定义各不相同,侧重点也不一样。也就是说,虽然大家都在说数据库防火墙,很有可能是两个完全不同的数据(库)安全设备。

二、什么是数据库防火墙

数据库防火墙顾名思义是一款数据(库)安全设备,从防火墙这个词可以看出,其主要作用是做来自于外部的危险隔离。换句话说,数据库防火墙应该在入侵在到达数据库之前将其阻断,至少需要在入侵过程中将其阻断。

1. 如何定义外部?

至于如何定义外部威胁,则需要对于数据库边界进行明确的界定,而这个数据库边界的界定则具有多变性。第一种定义,从极限的角度来看,由于现在网络边界的模糊,可以把所有来自于数据库之外的访问都定义为外部。如果是这个定义来看,防火墙承载的任务非常繁重,可能不是一个安全设备所能够承担的。第二种定义是数据中心和运维网络可以被定义为内部访问,其他访问定义为外部访问,让防火墙不需要去承载内部运维安全和员工安全,从而更好的工作。

综合看来,我们采用第二种定义,数据库防火墙主要承载数据中心和运维网络之外的数据(库)安全工作。

2. 如何定义数据库防火墙?

一旦准确的定义了什么是外部之后,什么是数据库防火墙就比较清楚了。运维网络之外的访问我们都可以定义为业务访问。

数据库防火墙是一款抵御并消除由于应用程序业务逻辑漏洞或者缺陷所导致的数据(库)安全问题的安全设备或者产品。数据库防火墙一般情况下部署在应用程序服务器和数据库服务器之间,采用数据库协议解析的方式完成。但这并不是唯一的实现方式,你可以部署在数据库外部,可以不采用协议解析。从这个定义可以看出,数据库防火墙其本质目标是给业务应用程序打补丁,避免由于应用程序业务逻辑漏洞或者缺陷影响数据(库)安全。

常见的应用程序业务逻辑漏洞和缺陷:

SQL注入攻击

cc攻击

非预期的大量数据返回

敏感数据未脱敏

频繁的同类操作

超级敏感操作控制

身份盗用和撞库攻击

验证绕行和会话劫持

业务逻辑混乱

3. 数据库防火墙的常见应用场景

(1) SQL注入攻击

SQL注入攻击是数据库防火墙的核心应用场景,甚至可以说数据库防火墙就是为了防御SQL注入攻击而存在的。SQL注入攻击是很古老的攻击手段,特别是互联网普及之后,一直是主流的安全攻击手段。需要特别注意的是,SQL注入攻击的发生不是由于数据库的漏洞导致,而是因为应用程序漏洞和缺陷导致,但是受到伤害和影响的则是数据库。我们的业务应用程序是水平参差不齐的公司和工程师撰写,其代码质量会远远比不上Oracle,微软等大牌公司的产品,SQL注入以及其他可能的漏洞和缺陷存在是必然的事件。甚至可以认为,只要复杂度超越一定程度的任何业务应用程序都会存在SQL注入漏洞。

SQL注入攻击之所以难以防御,其主要原因是其攻击是通过业务应用程序发起的,传统上部署的所有安全措施对于SQL注入攻击基本无效,使其可以简单到达企业最为核心的数据库内部。

(2) cc攻击

即使一个没有任何缺陷的应用程序也可以简单的发起cc攻击。每个应用程序都会存在资源消耗特别高的某些操作,入侵者只要同时调度这些高资源消耗的操作,就会导致数据库服务器失去响应。

(3) 非预期的大量数据返回

由于应用程序缺陷,在某些操作中返回了计划之外的大量数据。大量数据返回很容易引起安全性问题。

(4) 敏感数据未脱敏

由于历史原因,现有应用程序很少对于敏感数据进行脱敏显示。为了遵循新的安全法规和规则,为了更好的保护客户和公司,在很多情况下我们需要对于应用程序返回数据进行脱敏。

(5) 频繁的同类操作

通过应用程序不断的频繁获取敏感信息资料是敏感信息泄露的主要通道之一,数据库防火墙可以通过延迟,通知等响应方式来降低此类数据泄露风险。

(6) 超级敏感操作控制

很多应用程序往往存在着权限控制漏洞,无法控制某些敏感操作。比如统方,比如绝密资料的获取等等。

(7) 身份盗用和撞库攻击

撞库攻击是互联网最大的安全风险之一,绝大部分撞库攻击都是为了身份盗用。

(8) 验证绕行和会话劫持

由于应用程序缺陷导致起验证安全机制没有生效,比如验证码等,或者会话被劫持导致业务应用程序被非法控制。

(9) 业务逻辑混乱

由于应用程序漏洞导致业务逻辑混乱,比如在审批中不检查前置流程的存在性和合规性,直接触发下一个流程。

4. 数据库漏洞检测防御和数据库防火墙

大家可以观察到,很多数据库防火墙都具有数据库漏洞检测和虚拟布丁等功能,甚至于把数据库漏洞检测防御变成了数据库防火墙的核心功能。这个是对于数据库防火墙理解的典型误区,数据库防火墙的核心是检测和防御业务应用程序漏洞而不是数据库漏洞。

当然数据库防火墙部署数据库漏洞检测也有其逻辑基础:当入侵者通过业务应用程序漏洞入侵数据库,特别是SQL注入攻击的时候,入侵者为了获取更大的入侵收益,往往会利用数据库漏洞进行进一步攻击。从紧密流程环节来看,在很多场合下,数据库漏洞攻击可以被看作SQL注入攻击的一个环节,一个成果扩大环节。

三、数据库防火墙和Web防火墙

1. Web防火墙

很多人可能会问,Web防火墙也能够防御SQL注入攻击,我为什么还要部署数据库防火墙?首先我们来看看WAF能做些什么:

SQL注入攻击

XSS攻击

CSRF攻击

SSRF攻击

Webshell后门

弱口令

反序列化攻击

命令/代码执行

命令/代码注入

本地/远程文件包含攻击

文件上传攻击

敏感信息泄露

XML实体注入

XPATH注入

LDAP注入

其他

从这个列表看,显然Web防火墙和数据库防火墙所承载的目标区别比较大,SQL注入攻击攻只是两种不同防火墙的为数不多的交叉点。

2. 数据库防火墙是SQL注入防御的终极解决方案

数据库防火墙和Web防火墙部署位置的不同,决定了两种不同产品对于SQL注入攻击的防御策略和效果会大不相同。

部署位置:Web防火墙作用在浏览器和应用程序之间,数据库防火墙作用在应用服务器和数据库服务器之间。

作用协议:Web防火墙作用在Http协议上,数据库防火墙一般作用在数据库协议上,比如Oracle SQL*Net,MSSQL TDS等。

Web防火墙作用在浏览器和应用程序之间,使他只能够看得见用户提交的相关信息,而用户提交信息往往只是数据库SQL语句的一个碎片,缺乏对于数据库SQL的全局认知,更加不用说SQL语句的上下文关系了。Web防火墙只能做一些基于常规异常特征以及出现过的特征进行识别和过滤,使Web防火墙的SQL注入攻击防御效果依赖于攻击者的水平和创意,只要攻击者具有一定的创意,Web防火墙很难防御SQL注入攻击。

数据库防火墙作用在应用服务器和数据库服务器之间,看到的是经过了复杂的业务逻辑处理之后最后生成的完整SQL语句,也就是说是攻击者的最终表现形态,已经撕去了大量的伪装。由于看到的是缺乏变化的最终形态,使数据库防火墙可以比较Web防火墙采用更加积极的防御策略,比如守白知黑策略进行异常SQL行为检测,100%防御SQL注入攻击。即使简单采用和Web防火墙类似的黑名单策略,由于看到的信息使完整的最终信息,使其防御难度比较Web防火墙大幅度下降,防御效果自然会更好。

3. 更多的访问通道

通过http服务应用访问数据库只是数据库访问中的一种通道和业务,还有大量的业务访问和http无关,这些http无关的业务自然就无法部署web防火墙,只能依赖于数据库防火墙来完成。

四、总结

  1. 数据库防火墙主要用来防御外部入侵风险,需要和内部安全管控适当分开。

  2. 数据库防火墙主要聚焦点是通过修复应用程序业务逻辑漏洞和缺陷来降低或者消除数据(库)安全风险。SQL注入攻击是其核心防御风险,而数据库漏洞攻击检测和防御则并不是必须的。

  3. 由于SQL注入攻击和数据库漏洞攻击的伴生性,数据库防火墙往往具备数据库漏洞检测和防御功能。

  4. Web防火墙不能替代数据库防火墙,Web防火墙是SQL注入攻击的第一道防线,数据库防火墙则是SQL注入攻击的终极解决方案。
    (原文来源美创科技柳遵梁,在此特别鸣谢)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值