数据库防火墙技术研究
数据库防火墙是继防火墙、下一代防火墙等网关类安全产品之后,专门针对于数据存储的核心介质——数据库的一款安全防护产品。
关于数据库安全可以分为两个层面,一方面是来自于外部的威胁,比如说来自黑客的攻击、非法访问等,第三方运维人员的不当操作和非法入侵;另外一部分是来自于内部的威胁。
数据库防火墙部署于数据库之前。必须通过该系统才能对数据库进行访问或管理。数据库防火墙除提供网络防火墙的基本隔离功能以外,还提供独立的连接授权管理、访问授权管理、攻击保护、连接监控、审计等功能。部署该产品以达到牢牢控制数据库入口,提高数据应用安全性的目的。目前国内首款专业数据库防火墙产品是安华金和数据库防火墙DBFirwall。
数据库防火墙的产品价值
  1、 屏蔽直接访问数据库的通道
  数据库防火墙部署介于数据库服务器和应用服务器之间,屏蔽直接访问的通道,防止数据库隐通道对数据库的攻击。
  2、 二次认证
  应用程序对数据库的访问,必须经过数据库防火墙和数据库自身两层身份认证。
  3、 攻击保护
  实时检测用户对数据库进行的SQL注入和缓冲区溢出攻击。并报警或者阻止攻击行为,同时详细的审计下攻击操作发生的时间、来源IP、登录数据库的用户名、攻击代码等详细信息。
  4、 安全审计
正则匹配两个大写字母加两个数字
  系统能够审计对数据库服务器的访问情况。包括用户名、程序名、IP地址、请求的数据库、连接建立的时间、连接断开的时间、通信量大小、执行结果等等信息。并提供灵活的回放日志查询分析功能,并可以生存报表。
  5、 防止外部黑客攻击威胁
黑客利用Web应用漏洞,进行SQL注入;或以Web应用服务器为跳板,利用数据库自身漏洞攻击和侵入。通过限定更新和删除影响行、限定无Where的更新和删除操作、限定drop、truncate等高危操作避免大规模损
失。
数据库防火墙防护能力
数据库防火墙产品具有主动防护能力。针对对数据库的风险行为和违规操作做相应的防护与告警。分析当前各类数据库所受威胁和防火墙的应对防护能力包括如下几项功能:
防御数据库漏洞与SQL注入
威胁:外部黑客攻击黑客利用Web应用漏洞,进行SQL注入;或以Web应用服务器为跳板,利用数据库自身漏洞攻击和侵入。
防护:通过虚拟补丁技术捕获和阻断漏洞攻击行为,通过SQL注入特征库捕获和阻断SQL注入行为。
防止内部高危操作
威胁:系统维护人员、外包人员、开发人员等,拥有直接访问数据库的权限,有意无意的高危操作对数据造成破坏。
防护:通过限定更新和删除影响行、限定无Where的更新和删除操作、限定drop、truncate等高危操作避免大规模损失。
防止敏感数据泄漏
威胁:黑客、开发人员可以通过应用批量下载敏感数据,内部维护人员远程或本地批量导出敏感数据。
防护:限定数据查询和下载数量、限定敏感数据访问的用户、地点和时间。
审计追踪非法行为
威胁:业务人员在利益诱惑下,通过业务系统提供的功能完成对敏感信息的访问,进行信息的售卖和数据篡改。
防护:提供对所有数据访问行为的记录,对风险行为进行SysLog、邮件、短信等方式的告警,提供事后追踪分析工具。
数据库通讯协议解析
各类数据库防火墙产品,对于数据库风险行为和违规操作进行安全防护的基础。都来自于数据库通讯协议的解析。通讯协议解析的越精准,数据库的防护工作越周密安全。换言之,数据库通讯协议解析的强弱是评价一款数据库防火墙产品优略的关键。下面就数据库通讯协议解析原理做一下相关介绍。
从数据通讯交互来讲,数据是以包(Packet)的形式在网络中进行传输的。一个包通常由2大部分组成:控制部分(metadata)和数据部分。从包的结构中,可以得到数据的“源地址(Source Address)”和“目标地址(Destination Address)”,“源端口(Source Port)”和“目标端口(Destination Port)”。防火墙正式基于这些信息对数据库进行防护。当一个包(如来自数据库客户端)通过防火墙时,防火墙会基于一定的规则对该包进行检查,如检查包的发送者是不是合法的IP(如合法的数据库客户端),包的目标是不是特定的数据库服务器?如果检查通过,包会被允许穿过防火墙。如果检查未通过,则该包会被丢弃(Drop)(发送者什么都不知道,犹如石沉大海),或者会给发送者返回(反馈)错误信息(reject)。我们把前面描述的这种防御方式叫“包过滤”。“包过滤”可工作在OSI模型(见下图)的最底下3层或者4层。
包过滤”又可分为“有连接(stateful)”和“无连接(stateless)”两种。“有连接(stateful)”是指防火墙会记录通过的连接状态信息,维护相应的连接状态数据库,基于同一连接的数据包可免于重复检查,这样将提高数据包传输效率, “无连接(stateless)”是对每一个数据包进行检查,通常意义上会导致网络响应缓慢,这两种方式各有优缺点。
安华金和数据库防火墙(DBFirewall)实现了对主流数据库类型通讯协议的“双向、全协议解析”,重要的解析内容包括:SQL语句、参数化语句句柄、SQL参数、应答结果信息、结果集结构信息、结果集数据等。 
SQL语句的解析和表达是实现对SQL语句攻击行为控制的关键;SQL注入的检查、应用sql语句的放行,都依赖于sql语句的解析和特征捕获。传统的技术,往往采用正则表达式的方式,但该方式存在巨大的技术缺陷,一是正则匹配过程性能地下,二是对于复杂的参数情况容易产生匹配错误,三是通过语句的变体容易欺骗。
DBFirewall为了有效扑获SQL语句的特征,以及为了快速地对SQL语句进行策略判定,以实现数据库防火墙的高效处理,提供了专利性的SQL语法特征技术,实现了对SQL语句的重写。
SQL重写是在不改变原SQL语句的语义的情况下,DBFirewall对捕捉到的SQL语句进行重写,替换原语句中的参数值。
SQL重写是一个抽象的过程,便于管理和操作。SQL重写包括以下几个方面:
除了单双引号内的内容,小写字母全部变为大写字母;
准确区分正负号和加减号;
将SQL语句中的数值、单引号引起的字符串各自重写为统一的占位符;
将注释、换行重写为空格,将连续的空格合并为1个,去掉运算符两端等不影响语义的空格
以如下SQL语句为例:
Select +0.25 * money,sum(id) From “testdb”.accounts
Where id = ' G1792 '  or name !=‘’/*this message come from Lisa*/

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。