1 概述
数据库防火墙是一款抵御并消除由于应用程序业务逻辑漏洞或者缺陷所导致的数据(库)安全问题的安全设备或者产品。数据库防火墙一般情况下部署在应用程序服务器和数据库服务器之间,采用数据库协议解析的方式完成。很多公司把自己的数据(库)安全产品命名为数据库防火墙。每家公司对于数据库防火墙的定义各不相同,侧重点也不一样。也就是说,虽然大家都在说数据库防火墙,很有可能是两个完全不同的数据(库)安全设备。
2 常见的应用场景
1. SQL注入攻击
SQL注入攻击是数据库防火墙的核心应用场景,甚至可以说数据库防火墙就是为了防御SQL注入攻击而存在的。SQL注入攻击是很古老的攻击手段,特别是互联网普及之后,一直是主流的安全攻击手段。需要特别注意的是,SQL注入攻击的发生不是由于数据库的漏洞导致,而是因为应用程序漏洞和缺陷导致,但是受到伤害和影响的则是数据库。我们的业务应用程序是水平参差不齐的公司和工程师撰写,其代码质量会远远比不上Oracle,微软等大牌公司的产品,SQL注入以及其他可能的漏洞和缺陷存在是必然的事件。甚至可以认为,只要复杂度超越一定程度的任何业务应用程序都会存在SQL注入漏洞。
SQL注入攻击之所以难以防御,其主要原因是其攻击是通过业务应用程序发起的,传统上部署的所有安全措施对于SQL注入攻击基本无效,使其可以简单到达企业最为核心的数据库内部。
2. cc攻击
即使一个没有任何缺陷的应用程序也可以简单的发起cc攻击。每个应用程序都会存在资源消耗特别高的某些操作,入侵者只要同时调度这些高资源消耗的操作,就会导致数据库服务器失去响应。
3. 非预期的大量数据返回
由于应用程序缺陷,在某些操作中返回了计划之外的大量数据。大量数据返回很容易引起安全性问题。
4. 敏感数据未脱敏
由于历史原因,现有应用程序很少对于敏感数据进行脱敏显示。为了遵循新的安全法规和规则,为了更好的保护客户和公司,在很多情况下需要对于应用程序返回数据进行脱敏。
5. 频繁的同类操作
通过应用程序不断的频繁获取敏感信息资料是敏感信息泄露的主要通道之一,数据库防火墙可以通过延迟,通知等响应方式来降低此类数据泄露风险。
6. 超级敏感操作控制
很多应用程序往往存在着权限控制漏洞,无法控制某些敏感操作。比如绝密资料的获取。
7. 身份盗用和撞库攻击
撞库攻击是互联网最大的安全风险之一,绝大部分撞库攻击都是为了身份盗用。
8. 验证绕行和会话劫持
由于应用程序缺陷导致起验证安全机制没有生效,比如验证码等,或者会话被劫持导致业务应用程序被非法控制。
9. 业务逻辑混乱
由于应用程序漏洞导致业务逻辑混乱,比如在审批中不检查前置流程的存在性和合规性,直接触发下一个流程。
3 主要功能
对基于端口、IP、SQL语句等信息的数据库访问进行访问控制,能够实时检测出对数据库进行的SQL注入攻击,对攻击进行替换、阻断和告警。可对数据库SQL语句操作精确到表、字段、关键字等细粒度的访问控制。根据用户的各种使用活动比对安全基线(模型)信息,自动学习数据库访问行为。减轻管理人员定义策略的负担,增加防御攻击的准确性。数据库内部的敏感信息可通过相关的脱敏规则对SQL查询返回结果进行模糊化处理和数据遮蔽,防止外部攻击和内部高权限用户的敏感信息泄露。
安全容灾:网桥bypass和HA双机部署模式
Bypass功能:是指在产品异常断电或系统宕机情况下,进行网桥的强制链接。虽然无法执行防护,但是确保了数据库通讯网络的畅通,从而确保应用系统的运行。
HA双机部署模式:是采用主备两台设备进行双机部署,当主设备异常无法防护时,强制切换到备用设备继续执行数据库安全防护。
虚拟补丁
基于数据库漏洞补丁进行防护,存在诸多不便,主要原因如下:
①补丁更新周期较长,不能及时修复;
②补丁覆盖范围较小,需要补丁的漏洞太多;
③打补丁占用大量资源,很可能影响业务的正常运行。
因此,数据库防火墙引入了数据库虚拟补丁技术,通过收集并处理CVE报出的各类数据库漏洞,在数据库防火墙层面拦截对于数据库漏洞的攻击行为。帮助用户简便,及时,高效的完成数据库漏洞防护工作,很好的抵御外部入侵。
SQL注入阻断能力
数据库漏洞攻击是基于数据库自身的漏洞进行入侵的行为,但是当前数据库的运行环境必然存在大量的应用交互工作。那么借用应用访问对数据库实现sql注入攻击行为,就有些防不胜防了。
数据库防火墙产品通过对SQL语句进行注入特征描述,完成对SQL注入行为的检测和阻断。同时数据库防火墙系统提供缺省SQL注入特征库并支持定制化添加。全面阻断基于应用访问的攻击行为。
黑白名单
数据库防火墙一般需要建立一个学习周期,其目就是对数据库访问的SQL命令进行学习,并记录下学习的结果。通过语句模板进行归类映射海量的SQl语句,基于语句模板进行黑白名单关联,可以有效的从应用侧和运维侧两个层面进行规则设置,实现安全防护。
黑白名单语句和黑白名单规则编织成一幅安全防护的防线。基于优先级做规则遍历,黑名单阻断,拦截;白名单合规放行。
精准的阻断、拦截功能
数据库防火墙区别于数据库审计产品,在审计、告警的基础上新增阻断、拦截操作。根据防火墙的防护规则,对非法访问、入侵行为和语句攻击进行会话阻断和语句拦截操作。可以基于高、中、低三种优先级进行规则设置,以实现风险防护。
会话阻断:是指基于防火墙的风险规则设置,对高危会话进行强制阻断,禁止该会话的所有操作行为。
语句拦截:是指再会话阻断效果上做更为细致的限制,只对风险语句进行拦截,不影响会话的整体操作。
会话阻断和语句拦截,从不同的角度基于优先级对数据库风险行为进行管控,有效的保障了数据库的安全,真正实现了防火墙的效果。
SQL语句精确解析能力
串联防护的特殊性,精确的协议解析能力,是考量一款数据库防火墙产品的关键。串联情况下,任何的误报、漏报都可能导致不可预期的后果。
数据库防火墙通过对捕获的SQL语句进行精细SQL语法分析,并根据SQL行为特征和关键词特征进行自动分类,系统访问SQL语句有效“归类”到几百个类别范围内,完成高精确和高可用分析;再根据防火墙周密的规则设置,对命中风险的语句、行为进行阻断、拦截或告警操作。实现切实可靠的数据库安全保障。
全面的支撑和细粒度管理
任何一款产品,评判是否完善的关键在于其支持的范围是否全面,功能是否完善。数据库防火墙产品首先需要实现的是对国内外主流数据库产品的全覆盖,以适应不同数据库的安全防护需求。如:Oracle、SqlServer、mysql,DB2、sybaSE、达梦、金仓、南大通用等不同的数据库类型和版本。这是产品的适用性。
另一方面,防火墙产品对数据库用户提供比DBMS系统更详细的虚拟权限控制。控制策略包括:用户+操作+对象+时间等多个维度。同时在控制操作中加UpdateNowhere、deleteNowhere等高危操作;控制规则中增加返回行数和影响行数控制。从影响范围上判断是否触及风险是数据库防火墙的一大亮点。