当前,数据库审计产品无疑已成为政企事业单位在信息安全方面的新宠,信息安全建设的标配,几乎所有的安全集成中都有它的身影。在市面上存在着几十种数据库安全审计产品,这些产品集中起来大约可分四种类型:
1、在网络审计产品的基础上经过简单包装推出数据库审计产品
2、针对数据库通讯协议的特点开发出专门的数据库审计产品
3、国外的数据库审计产品,比如Imperva、Guardium等;
4、OEM第三方的数据库审计产品,OEM对象可能来自国内,也可能来自国外,比如Imperva或韩国的DBInsight。
追溯渊源,我们可以把数据库安全审计产品划为三代:
第一代是入门级数据库安全审计,这代产品解决的是有和无的问题;
第二代是专业型数据库安全审计,这代产品解决的是准确性和易用性问题;
第三代是业务型数据库安全审计,这代产品解决的是数据价值问题。
一代入门级数据库安全审计产品
我们将一代定义成入门级,这是在数据库安全审计产品在国外取得成功、外商进入中国推行这个概念之后,一些传统网络安全企业迅速跟进,基于传统的网络审计产品简单改造或产品都未经改造只是概念包装后就推向市场的产品。
这一代产品的典型特征为“三不管”:
(1) 不管审的准不准,先审下来再说
(2) 不管审的全不全,先有了再说
(3) 不管好不好理解,有数据再说
这一代产品本质就是使用传统的网络审计能力,再加上一些正则匹配能力,一些简单的特征追踪,基本上数据库安全审计的管理就是融入到原有的网络管理界面中。这一代产品的主要缺陷,简单列出如下:
(1)长SQL语句漏审
(2)多语句无法有效分割
(3)复杂语句对象解析错误
(4)参数值与SQL语句匹配错误
(5)错误的应答结果,特别是影响行数解析不正确
(6)充满失真率的应用用户关联
(7)未专业化的审计界面
(8)过度冗余的审计信息存储
其中,以上缺陷的前六条都与准确性和全面性有关,用户很难进行验证;要判断是否属于这种产品,一般可以通过两个简单的方式进行判定:一个方法就是界面。如果在界面上有很多种协议,数据库只是其中一种,往往就是网络审计改换的产品;另一个方法就是招标参数。现在一个很奇怪的现象就是,招标数据库安全审计产品,结果列出一堆网络审计产品要求。以下是一个典型招标案例:
与数据库审计产品不相干的参数
二代专业型数据库安全审计产品
二代数据库安全审计产品主要是由新兴安全厂商研发,在研发过程中多少会参考一些国外数据库安全产品的设计理念、产品界面,再加上自己的创新,生产出一款纯粹的数据库安全审计产品。这一代产品的典型特征有三个:
(1)产品概念高度聚焦
产品替除传统网络审计的概念,不会出现类似于MAIL、FTP、Telnet等协议,用户很容易地找到数据库审计信息。
(2)数据库包深度解析和SQL语法解析
二代数据库安全审计产品的基本功在于对数据库的包能够进行精确分析,并且根据上下文语境进行追踪(这需要模拟数据库的行为)。
(3)数据库化的界面组织清晰
完全采用了面向数据库化的界面组织,比如:数据库、会话、语句、表、存储过程等;这样的产品概念,对于数据库审计产品的直接使用者,一般是运维人员和安全管理人员,就很清晰,对问题的定位的线索组织也非常清晰。下面是两代数据库审计产品的一个对比:
一代数据库审计产品典型界面示例1
一代数据库审计产品典型界面示例2
由图不难看出,界面菜单组织结构中,很难找到数据库的信息,在审计记录中也很难看到数据库的SQL语句、数据库用户、数据库会话等信息。
二代数据库审计的典型界面组织
对比得出,二代数据库安全审计产品界面,具有强烈的数据库元素;以“数据库”为最基本信息组织单元,以“会话”、“语句”等数据库中的基本元素为线索;在审计记录中,直观的SQL语句、数据库用户、会话信息等,立刻将单调的网络协议还原为数据库信息。
在第二代代产品中也有高下之分,主要体现在三个方面:
(1) DDPI技术的精准度
由于数据库通讯包的复杂度,即使按照一种深度包解析思路也不能保证解析的完全精准,能否对通讯包作到高精度高兼容性,这就要看各个厂商的功力了。解析不准,要么丢数据,要么审计错误。
(2)协议识别的智能化
正是由于这种包解析技术的复杂性,为了能准确识别协议类型,一些产品往往需要人工进行一些辅助,帮助输入说明数据库的版本、操作系统的类型、编码方式等。二代产品中,哪家厂商能够实现对数据库协议的智能化识别,将是产品易用性的另一个重要考量指标。
(3) 三层关联的准确度
从审计的角度,由于一个业务系统往往公用一个数据库用户,因此无法区分哪个业务人员触发了哪些数据库操作,因此不能真正地满足追查的需要。为了满足这个需要,启明星辰最早注册了通过http协议与数据库协议进行关联的专利;后来安恒也实现了类似的技术。但是由于链接池的存在,在高并发的情况下,这种技术的正确率不超过50%,作为审计这是无法忍受的。新兴数据库安全厂商安华金和,在国内率先推出了基于在web上安装插件的方式,利用这种方式实现100%审计的准确性
(4) 数据的关联分析
第二代数据库安全审计产品中,很多依然是单个数据库访问信息的展示风格, 但是在实际的使用中,用户往往需要了解发现某类高危的风险,需要知道IP来源,什么用户登录,登录后在整个会话中都执行了什么语句。发现一个峰值性能瓶颈的时候,能同时知道当时的会话量,语句量,对于这些会话都来自于什么IP,主要是什么语句的性能消耗占比最高,在这些消耗占比最高的语句使用的是什么样的参数。
综上,二代数据库安全审计产品具有这样的特点:
(1) 以数据库原生概念组织软件的界面框架和界面元素,大幅提升“数据库”的专业性;
(2) 通过 ‘会话’、‘语句’、‘风险’之间的内在联系实现界面交互和线索关联,大幅提升“审计追踪”的能力和便利性;
(3) 通过对数据库访问的IP、用户、语句(操作)、对象、响应等不同维度的统计,完成了数据库运行状况的梳理,从而大幅提升对数据库运行状况和性能的掌握能力。
当前,考核数据库审计产品的好坏,最重点的就是看以上三点。这三点使数据库审计产品实现了审计功能高度专业化,同时延展了其使用价值,成为数据库运维与管理人员进行数据库状态监控和性能优化的重要工具。
三代业务型数据库安全审计产品
二代数据库审计产品的专业度勿用置疑,但依然是一个技术型产品,是DBA和运维人员的好帮手,但与管理人员、业务人员保持着一定的距离。大量的数据库审计产品上线以后,无法向管理人员和业务人员阐述清楚产品的价值,这其中一个重要的原因就是数据库是一个后台的服务,数据库的SQL语言是个专业化程度很高的语言,数据库对象无法与直接的业务发生映射。因此,DBA和运维人员生成的报告,无法让管理者和业务部门看懂;从而使很多的数据库审计产品成为了摆设,或者只发挥了其应有价值的10%。
三代数据库安全审计产品的关键就是,如何通过业务化的语言呈现出对数据库的访问行为;将传统数据库中的要素客户端IP、数据库用户、SQL 操作类型、数据库表名称、列名称、过滤条件变成业务人员熟悉的要素:办公地点、工作人员名称、业务操作、业务对象、业务元素、某种类别的业务信息。为了更清楚的说名这个问题,我们对比看看三代演进前后数据库安全的审计记录:
图 3.1 三代以前数据库安全审计记录
三代数据库安全审计记录
三代数据库安全审计,不仅仅是审计记录的展现,还包括数据的组织,如何把这些分散的SQL语句,再组织成一个个业务操作,这个时候给业务人员展现的就不是每秒有多少个SQL操作,而是每秒有多少个业务操作。如图3.3位当前一个会话中的多条审计记录,组织成一个业务操作后,如图3.4,不仅仅是审计记录的展现,同时包括性能、类型统计、成功与失败、检索条件、报表都是基于业务操作为单位。
多条审计记录
业务操作示例
二代数据库安全审计产品的统计和追踪根据SQL语言类型进行划分,可以看到一些管理人员和业务人员很难懂的SQL语句。三代数据库安全审计产品统计和追踪按照业务的行为和分类来进行信息的组织和展现,而查询到的语句也是业务化的语言展现。当达到这样的程度,数据库安全审计产品对于业务人员和管理人员的价值将大大提升。但要达到这样的程度,需要依赖很好的数据分析处理,在这一阶段能否完成一个好的业务化产品的关键在于大数据的分析处理能力,特别是对数据流的处理能力。
当前,至少国内所有的数据库安全审计产品距离三代数据库审计产品的目标差距甚远;只有真正掌握数据库核心技术能力的安全厂商,真正具有用户意识的安全厂商,才能生产出三代产品,让我们拭目以待。
作者:安华金和 刘晓韬国网智研院 詹雄