一、概述
数据库防火墙仿佛是近几年来出现的一款新的安全设备,但事实上历史已经很长。2010年,Oracle公司在收购了Secerno公司,在2011年2月份正式发布了其数据库防火墙产品(database firewall),已经在市场上出现很多年头了。由于数据库防火墙这个词通俗易懂,和防火墙、Web防火墙、下一代防火墙等主流安全产品一脉相承,很多公司也就把自己的数据(库)安全产品命名为数据库防火墙。每家公司对于数据库防火墙的定义各不相同,侧重点也不一样。也就是说,虽然大家都在说数据库防火墙,很有可能是两个完全不同的数据(库)安全设备。
二、什么是数据库防火墙
数据库防火墙顾名思义是一款数据(库)安全设备,从防火墙这个词可以看出,其主要作用是做来自于外部的危险隔离。换句话说,数据库防火墙应该在入侵在到达数据库之前将其阻断,至少需要在入侵过程中将其阻断。
1. 如何定义外部?
至于如何定义外部威胁,则需要对于数据库边界进行明确的界定,而这个数据库边界的界定则具有多变性。第一种定义,从极限的角度来看,由于现在网络边界的模糊,可以把所有来自于数据库之外的访问都定义为外部。如果是这个定义来看,防火墙承载的任务非常繁重,可能不是一个安全设备所能够承担的。第二种定义是数据中心和运维网络可以被定义为内部访问,其他访问定义为外部访问,让防火墙不需要去承载内部运维安全和员工安全,从而更好的工作。
综合看来,我们采用第二种定义,数据库防火墙主要承载数据中心和运维网络之外的数据(库)安全工作。
2. 如何定义数据库防火墙?
一旦准确的定义了什么是外部之后,什么是数据库防火墙就比较清楚了。运维网络之外的访问我们都可以定义为业务访问。
数据库防火墙是一款抵御并消除由于应用程序业务逻辑漏洞或者缺陷所导致的数据(库)安全问题的安全设备或者产品。数据库防火墙一般情况下部署在应用程序服务器和数据库服务器之间,采用数据库协议解析的方式完成。但这并不是唯一的实现方式,你可以部署在数据库外部,可以不采用协议解析。从这个定义可以看出,数据库防火墙其本质目标是给业务应用程序打补丁,避免由于应用程序业务逻辑漏洞或者缺陷影响数据(库)安全。
常见的应用程序业务逻辑漏洞和缺陷:
- SQL注入攻击
- cc攻击
- 非预期的大量数据返回
- 敏感数据未脱敏
- 频繁的同类操作
- 超级敏感操作控制
- 身份盗用和撞库攻击
- 验证绕行和会话劫持
- 业务逻辑混乱