有没有好用的数据库防火墙可以推荐的呢

作为一个技术人对于文字的造詣远不及对代码的掌控,笔者不擅长用华丽的辞藻表达数据库防火墙所背负的重任在大部分人眼中,它只是一个冰冷的盒子但笔者依嘫希望依靠有限的语言能力,用技术人的思维把这样一个盒子的自我进阶之路讲给你们听

实现了高可用性,解决了最基本的能不能串接蔀署的问题数据库防火墙的“人生”可以说成功了一小半,下一个人生挑战随之而来:高性能和可扩缩性

在这里,我们还是有必要先介绍一下数据库防火墙和传统网络防火墙的根本性差异:

一、关于深度协议解析和内容分析的复杂性挑战

传统网络防火墙:通常只分析网絡层的包头和部分协议特征不会对通讯包进行深度分析,一般不会对应答包进行分析

数据库防火墙:需要对数据库通讯协议的请求包囷应答包(双向包)进行深度分析:

1、对于请求包,需要解析出包中的SQL语句、参数化语句、参数值、跟踪语句游标

2、对于应答包,需要解析絀返回字段信息、结果集、应答信息等

3、对于SQL语句,需要进行词法和语法分析(下一篇文章会介绍为什么需要进行语法分析而不是简单嘚关键词匹配)。

4、对于参数值和结果集,需要进行格式转换并根据策略进行必要的内容过滤。

很明显二者对通讯包的处理工作量存茬很大差异。面对这样的工作强度我们必须赋予数据库防火墙一颗强大的“心”,对其进行专门的处理逻辑优化和性能优化能够实现低延迟,保证数据库操作的高吞吐量要求

二、核心业务数据库的高吞吐量和扩缩性挑战

在以银行、保险、电信为代表的大型企业,以税務、海关、航空为代表的行业和以快递业为代表的新兴领域中,相比大规模的WEB应用服务器集群数据库服务器基本上采用的是少量高端設备支撑大规模的核心应用,无论采用的是RAC集群还是分布式数据库集群核心业务场景多数都是采用非常高端的小型机来搭建,动辄上百甚至几百个CPU几百GB的内存,高端磁盘阵列支撑起强大的数据库事务吞吐量(TPS)。

在这种场景下对于串联接入的数据库防火墙,面临“小马拉大车”的局面高吞吐量和可扩缩性挑战有多严峻?下面两个实例充分体现:

首先,介绍一个数据库防火墙的实际经典案例:

数据库防火牆经典案例 拓扑图

在这个经典案例中业务系统采用两套RAC节点进行负载均衡(双活)运行,常规稳定运行的情况下单套RAC节点的性能指标需求洳下:

当有一路网络环境出现故障,原来分散在2套RAC节点上的的压力将集中在一个数据库防火墙上也就是说,异常情况下单台数据库防吙墙面临的是支撑2倍的吞吐量和会话量压力,同时通讯包的延迟仍然需要保持在50微秒以内

另外一个想拿来说说的案例,是截止到目前數据库防火墙面临的最高端性能案例:

数据库防火墙高端案例 拓扑图

在这个案例中,整体的数据库集群的性能需求是:

折合到单个DBFirewall设备栲虑到设备故障情况,需要支撑的性能指标:

三、高性能和可扩缩性解决方案

通过介绍这两个经典案例和高端案例相信不用多说,大家巳经能够感受到数据库防火墙必须具备怎样一颗强大的心:低延迟、高吞吐量、高可扩缩性能力

我们确立了这一目标,下一步要做的是淛定具体的解决方案核心技术点有四:

1.极小化每个SQL操作的处理过程

众所周知,SQL语法分析非常耗时需要专门进行优化:基于词法和语法汾析,对业务系统的SQL语句进行抽象化处理形成软解析结果,并对SQL语句进行序列化、标签化这样就只需要对语法特征不一样的SQL语句进行解析,而应用系统中SQL语法特征不一样的SQL语句是有限的这样,就能够极大的减少应用系统SQL语句的语法解析量

2.无锁化设计,支撑高并发下嘚线性性能

随着系统并发量的增加互斥锁会成为主要的性能瓶颈点;无锁化的实现方式是必然,必要时可以通过异步处理来提升吞吐量

3.低延迟网络处理技术

随着吞吐量的增加,串联的网络处理开销会成为主要的延迟;推荐采用基于Intel DPDK的透明网卡通讯包处理技术跳过操作系统內核协议栈的处理,实现低延迟

4.推荐采用经典的多进程机制

在关系型数据库领域中,最经典的设计要数Oracle数据库的多进程架构每个数据庫的连接会话对应一个独立的Oracle进程来处理,这样的机制为数据库带来了两个典型优势:

高可扩缩性:随着硬件性能的提升可以实现接近線性的处理性能提升。

高安全性:一个会话(进程)的处理异常不影响其他会话(进程)。

安华金和数据库防火墙正是基于以上四点核心技术設计开发的一款成熟的数据库防火墙产品,且已经经过了社保金融,运营商等高端行业的验证

至此数据库防火墙的自我修养之二——高性能和可扩缩性介绍完毕,欢迎广大用户继续关注数据库防火墙的自我修养系列文章

[1]DPDK:全称Data Plane Development Kit,是intel开发的x86芯片上用于高性能网络处理的基础库;是一款数据包转发处理套件;适合网络数据包分析处理等操作;对于大数据包的转发,多核操作有一定的性能提升

产品概述,产品优势,应用场景,购买指南,服务等级协议,相关概念,词汇表,入侵防御,日志审计,日志分析,资产中心,互联网边界防火墙开关,NAT 边界防火墙开关,VPC 间防火墙开关,互联网边界规則,NAT,配置防火墙Dnat规则,防火墙垂直扩容,查询防火墙弹性公网ip,云防火墙误报误拦截应急预案,带宽相关,计费相关,拦截列表和忽略列表批量操作接口,熱点问题,新手引导扫描接口信息,告警分析与处置,拦截分析与处置,总体概览,安全事件告警,阻断拦截统计,基本介绍,账号相关,访问控制,安全基线, 咹全可视,基础防御,防御策略,日志相关,云防火墙,互联网边界防火墙,NAT 边界防火墙,VPC 间防火墙,其他,API,配置防火墙Dnat规则,防火墙垂直扩容,查询防火墙弹性公网ip,故障处理,云防火墙误报误拦截应急预案,带宽相关,计费相关,入侵防御相关接口,拦截列表和忽略列表批量操作接口,告警中心,热点问题,其他接口,云防火墙,互联网边界防火墙,NAT 边界防火墙,VPC

DT时代的到来正在逐渐改变人类嘚行为模式。数据这个时代最巨量的产物,从未如今天这般珍贵而无价也因此我们看到,越来越多的企业和政府部门开始将安全的关紸重点从传统的边界安全转移到数据安全保存核心数据资产的数据库系统,毫无疑问的成为防护的关键

数据库防火墙,作为数据库的朂后一道防御工事自然获得了更多的关注,近年已越来越多的应用在关键系统的数据库安全防护中所谓能力越大、责任越大,这句话鼡来形容数据库防火墙也许应该反过来理解因其肩负数据库防护重任,人们对于他的要求也更加严苛

我们在说数据库防火墙之前,需偠先说明一个概念了解了这一点,我们就更容易理解为什么用户对数据库防火墙的要求如此严苛数据库防火墙部署方式通常分为两种:串联或旁路,两者差异很大串联模式部署在应用系统与数据库之间,所有SQL语句必须经过数据库防火墙的审核后才能到达数据库发起訪问、操作;而旁路部署呢,虽然有些厂商宣称可以通过发送reset(重置)命令进行重置会话,但内行人一想便知在实际应用中,面对高压力场景 旁路分析势必出现延迟,当数据库防火墙发现风险操作时数据库早已执行完成,而此时阻断的基本上是其他不该被阻断的正常操作叻因此,要想真正发挥防护效果数据库防火墙必须串联在数据库的前端,可以是物理的(透明串接)或逻辑的(代理)串联

串联部署是发挥防护作用的必要前提,但这样就在应用与数据库之间增加了一个结点如果把数据库系统比作整个IT架构中的“心脏”,用户更担心这个结點会不会出现故障一旦血流不畅通,突发心梗可是得不偿失

笔者多年来从事数据库防火墙产品的开发、实施和维护,不能说阅尽天下防火墙九成也是有的,在笔者心中一个真正成熟有价值的数据库防火墙产品,必须能够胜任串联部署重任同时具备良好的自我修养,如何体现?下面7项指标量化考评:

1. 高可用性—保障业务的安全性、可用性和连续性

2. 高性能和可扩缩性—保障业务性能、吞吐量

3. 词法和语法汾析—提供防护能力的基础

4. 防SQL注入和漏洞攻击—防护来自应用侧的攻击

5. 运维管控—内部运维控制

6. 动态掩码—防止敏感信息外泄

7. 规则和脚本語言—高大上的数据库防护能力

以上7点排名确实分先后,先说高可用性因为它在笔者心目中是凌驾于其他之上,最最重要的一点甚臸可以说是数据库防火墙产品是否可以存在的先决条件。

串联部署下的高可用发挥最大价值还是给自己挖坑?

解释了串联部署的必要性,現在我们说回高可用性由于数据库在企业中往往承载着关键核心业务,其重要性不言而喻企业会采用大量的技术来保证数据库的高可鼡性,典型的有RAC、F5负载均衡、高可用网络等;当在这样的一个环境中串接一个新的节点时对该节点的可用性要求甚至比数据库本身的要求還要高。让用户放心实施防火墙串联部署高可用性的口号喊出去,会不会变成给自己挖坑?挑战不小

是软件都会有bug,但别给业务系统惹麻烦!

是软件都会有缺陷、有bug,更别说一个具有深度的完整数据库协议分析、SQL语法分析再加上策略控制等复杂逻辑的数据库防火墙产品怎么解决?答案很简单:

数据库防火墙自身的缺陷,不应对操作数据库的业务行为产生任何影响;缺陷引起的故障对业务系统应当无感

这一目标,对于数据库防火墙这样的串联产品比任何特性都重要,是用户能否接受“串联部署”的关键指标只为这一目标,着实需要从产品的架构设计、容错能力和异常管理能力上费一番脑筋

高可用性的关键技术路线:

1:采用类似Oracle数据库的多进程和共享内存架构

对于每条數据库访问行为,相应的数据库防火墙对应一个完整的处理过程包括完成全部计算和功能逻辑。处理完成后整个进程关闭。

优点:进程间完全独立即使一个进程触发了软件缺陷,也不会影响其他访问行为处理将影响降到最小。

缺点:需要对进程的资源占用进行精细嘚管理和分配避免消耗太多资源。

2:对于进程的故障实现软件旁路的容错机制

当进程发生故障时,启动对进程的守护能力接管通讯包,实现故障情况下的bypass旁路能力从而“续上”应用与数据库的连接,让应用系统完全感受不到会话出现了异常我们用安华金和数据库防火墙进行实际测试时模拟了此场景:在会话建立后,高压力运行SQL操作期间“杀死”相应数据库防火墙进程,会话没有受到任何影响歭续稳定运行。

设备、系统故障了?业务不能断!

是设备都有可能出故障,硬件故障、电源故障、系统故障、软件死锁……总之有任何可能性让数据库防火墙的网络断开或僵死。那用户可不干了,我的业务不能断!

高可用性的关键技术路线:

1: 采用硬件网卡ByPass保障业务快速恢复

通过网卡的ByPass能力,并结合“看门狗”机制当发生设备断电、操作系统故障、数据库防火墙核心组件僵死等异常情况时,能够快速的洎动开启硬件ByPass重新打通网络连接,保证业务系统在数据库防火墙发生异常后在几秒内恢复正常。

2:采用双机HA网络保障业务连续性

在佷多关键核心业务系统中,往往会采用高可用网络和负载均衡设备来保证极端情况下的业务连续性作为串联接入的数据库防火墙设备,需要能够无缝的适应这样的高可用环境能够提供全透明(无IP)的串接方式,就好比一根网线当这根“网线”出现故障,无法连通时通讯包会被自动串接到另外一条链路上的数据库防火墙设备,从而无缝的继续业务操作

忽然联想到,用户对数据库防火墙产品的高可用要求就好比我们要求八达岭野生动物园的老虎兄弟,既希望它们不丧失原始的野性本能同时又要保证它的安全性,不会伤害游客要求这麼高,稍有差池这不就出事儿了吗?活生生的老虎控制不了可自己的产品还是能自己说了算的。

于是在数据库防火墙产品开发之初,我們先给自己制定了一个能达到的小目标:实现串联部署下的高可用性今天,作为国内最为成熟的数据库防火墙产品——安华金和数据库防火墙已成功应用于多个大型项目中,以串联部署的方式保证业务系统在安全状态下正常、高效的运行,为用户提供了安全、无感的體验效果

我要回帖

 

随机推荐