◆杨瑶姬
数据库安全平台模型分析
◆杨瑶姬
(中南空管局气象中心 广东 510405)
为提高数据库安全性能,本文讨论分析了一种可运行在不同类型的数据库管理系统上的数据库安全平台模型,通过引入的行为监测、数据库评估等功能的分析,验证了该数据库安全平台提高了数据库安全的有效性。
DBMSs ;数据库安全;行为监测;数据库评估
信息化社会发展至今,敏感数据大部分被存储在邮件系统、终端设备和文件服务器上,绝大部分是以数据库的形式来存储的。这种现实状态凸显了数据库安全的重要性。问题是,数据库的安全是不容易做到的,因为它涉及多个复杂进程和多种安全策略,以及DBA和安全团队之间强有力的协调和合作。根据ESG的研究报告,15%的企业将数据库安全认作是最重要的信息安全挑战,此外还有57%的企业认为数据库安全是他们前五位信息安全挑战之一[1]。由此可见数据库安全之重要。
根据forrester的研究报告[2],数据库的安全应该包括:新的许可与支持,数据库审计,实时保护,数据屏蔽,脆弱性评估,数据库加密。
任何一种单一的安全策略和安全工具是不足以保障数据库安全的,一种可运行在不同类型的数据库管理系统上的数据库安全平台模型是指通过一系列的安全策略,评估数据库的安全性,实时或者近似实时捕捉和记录所有数据库(包括管理员的活动)活动,能够跨多个数据库类型和平台,能够警告和对非法行为进行阻止。
数据库安全平台的主要功能:
(1)数据库安全平台必须同时支持关系型和非关系型的数据库;
(2)数据库安全平台包括安全评估功能;
(3)数据库安全平台必须有抗非法攻击能力;
(4)数据库安全平台应该包括一些额外的保护功能,如屏蔽或应用程序的安全。
数据库安全平台的架构图如图1所示。
图1 数据库安全平台
数据库安全平台的主要优势之一是它能够在不同操作系统上(例如Windows、Unix等),扫描和监控运行在不同类型的数据库管理系统(DBMSs)上的数据库。数据库安全平台将多个采集点信息整合到一个安全的中央服务器进行分析。
信息大部分来源于本地OS/协议栈的代理,网路监控,内存扫描代理,数据库审计日志,如图2所示。
图2 数据库安全平台信息采集
(1)本地OS/协议栈的代理:一个软件“代理”是安装在数据库服务器来捕获被发送到数据库的SQL语句。被捕获到的事件返回给远程的数据库安全平台。本地代理会根据相应的安全策略选择性地实时分析事件和做出相应。代理被部署到主机的网络协议栈或者嵌入到操作系统中,来捕获与数据库之间的通信。它们能监测到所有被送往数据库的外部SQL语句,包括它们的参数和查询结果。更关键的是它们能从控制台捕获不通过正常网络连接的管理者的行为。
代理是数据库安全平台的一个基本要求,它们能以最小的开销度捕获所有的SQL语句,包括源自控制台和通过加密的网络连接到达数据库的。
(2)网络监控:采用直接从网络嗅探的方法来监控数据库平台的网络状态。这种办法捕获了原始信息,参数以及查询结果的部分信息。所有被收集的信息返回服务器进行分析。网络监控对数据库平台的影响是最小的,仍然是监控非关键性数据库最常用的方法。
(3)内存扫描代理:内存扫描读取数据库活动的内存结构,监测新的查询语句。作为部署到数据库平台的一个代理,内存扫描代理以预先设定好的频率扫描SQL语句。在将结果返回到中央管理服务器之前,内存扫描先分析查询语句是否是非法查询。
(4)数据库审计日志:数据库审计日志仍然是最常用来收集数据库事件的。大部分数据库都有本地审计功能,他们被配置来生成审计跟踪,包括系统事件,事务事件,用户事件。数据流输出到一个文件中或者数据库内部。
根据企业的规模和需求的不同,有以下三种模式
(1)单一的服务器:一台服务器,同时作为采集点和管理控制台。这种模式适用于小型企业。
(2)两层架构:这种模式包含一个中央管理服务器和远程采集点。中央服务器不直接监测,而是从远程系统整合信息,管理政策和产生警告。远程收集点可以根据实际情况灵活使用采集技术。
(3)层次结构:在这种模式中,采集点反过来整合地理上分散的管理服务器信息。层次部署适合拥有多重业务类型的大型企业。它们也可以设定在层与层之间只传递特定种类的数据信息,来满足策略需求。
数据安全平台的功能之一就是监测和采集所有数据库行为[3]。这些数据库行为包含了所有管理员和系统行为,如下所示:
(1)所有的SQL语言—包括DDL(Data Definition Language)数据库定义语言, DML(Data Manipulation Language)数据操纵语言,DCL(Data Control Language)数据库控制语言,TCL(Transaction Control Language)事务控制语言:行为监测应该包含所有对数据库中的数据进行操作的行为。
(2)‘SELECT’查询:虽然`SELECT`查询仅仅是DML行为之一,但因为‘select’查询的频繁使用,依然存在数据泄漏的可能性,因此更有必要密切监测该行为。
(3)敏感数据的访问:‘SELECT’查询子集集中在访问敏感数据,如信用卡或社会安全号码的表或列。
(4)管理员活动:比起普通用户,管理员能通过更多不同的方式连接到数据库,更多的能力来隐藏或删除其活动的踪迹。不能只依靠本地审计,而应该采用数据库安全平台工具。
(5)存储程序,脚本,代码的行为:隐藏在存储程序和其他形式的数据库脚本的过程中的攻击行为常常能够逃避监测控制。数据库安全平台工具也应跟踪内部活动。
(6)文件的活动:如果你可以跳过数据库管理系统,直接编辑磁盘上的文件直接来进行数据的修改,在这种状态下的行为就需要被监测了。
评估通常包含三种类型[4]。
(1)漏洞评估:包括已知的漏洞,缺少的安全补丁,默认帐户,可疑的或者未使用的数据库功能,默认/弱密码,和更多的安全和合规相关的检查。
(2)配置评估:分析数据库内部和外部与安全和合规相关的配置(例如文件系统的设置)
(3)权限分析:对一个数据库中的用户账户进行扫描,主要是为了确定安全性和合规问题,但也经常用于一般账户的清理。基于多种类型的用户账户及其定义,数据库的用户账户的复杂性远远高于要比其他系统。例如一个人同时拥有一个网络用户、一个数据库账户和一个系统用户账户是很常见的。但是依赖于数据库提供权限的角色和组的权限就要复杂的多。
扩展功能包括核心功能的扩展,主要定位于数据分析和保护。其中数据库安全平台的一个关键领域是采用新的安全技术来保护数据库和扩大在其他应用程序和数据存储方面的保护。
换句话说,在数据库安全平台中,这些功能不是必须的,可以视具体需求而定。
(1)屏蔽/虚拟补丁:通过运行数据库防火墙,数据库安全平台有能力屏蔽入站查询,并且在执行之前中断查询。可以采用的方法主要有网络连接重置和内存扫描代理。一种特定类型的屏蔽---“虚拟补丁”, 在补丁被部署之前,阻止已知漏洞的查询。
(2)查询白名单:传统的屏蔽技术依赖于查询参数和属性的分析。这种技术是根据词法分析,有两个显著的优势。首先监测是基于查询结构,匹配”FROM”和”WHERE”语句的格式,以确定这个查询是否符合允许列表。第二,如何产生允许查询列表。通过监测数据库行为,数据库安全平台能够自动标记这些被允许的查询,从而生成白名单。当然用户是被允许可以修改这个白名单的。所有不在白名单上的查询是无法进入数据库的。
(3)动态数据屏蔽:屏蔽是一种改变数据,使原始数据是模糊的,但数据本身并不会被破坏的方法。我们将敏感数据的一小部分用随机值取代,使它们看起来像原稿一样。例如,我们用一个电话簿中随机选择的名称来替代数据库中的客户名称的列表。
(4)应用活动监测:数据库很少孤立存在,它们常常是应用程序的扩展,但我们常常把它们看做独立的组件。通过监测数据库与应用程序之间的数据交换,能大大提高监测数据库的能力。
(5)文件活动监测:文件活动监测的范围包括文件打开、保存、删除和复制,而不是仅仅局限于“SELECT”,“INSERT”,“UPDATE”,“DELETE”等SQL查询语句。
(6)查询重写:另一个保护数据和数据库免受恶意查询的有用的技术就是查询重写。通过部署一个反向数据库代理,评估查询指令的共同属性和查询结构。如果一个查询看起来可疑,或者违反安全政策,它会被一个类似的授权查询所取代。例如,一个包括社会安全号码的列查询可能被从结果中删除。查询重写,保护了应用的连续性,因为可疑的查询不是简单地被丢弃,而是返回请求的数据的一个子集,所以误报不会导致应用程序挂起或崩溃。
(7)连接池的用户识别:如果所有的查询都是由同一个账户发起,那么细粒度的安全监控将变得困难。这个功能需要使用多种技术来匹配每个应用者的每个查询。
(1)数据库发现:数据库中发现两种方法之一:主动扫描和被动检测。大多数进行主动扫描网络的工具,通过询问数据库端口来识别数据库。通常有一个快速扫描的选择——只是寻找数据库的标准端口数量,或遍历整个端口地址范围来进行完整的扫描。后者是耗时的,但是安全性更高。第二个选择是监听网络,以混杂方式,寻找任何与数据库的通信。这种被动的发现模式需要花更多的时间去发现数据库。
(2)内容发现:通常我们认为已经足够了解我们的数据库了,但其实我们并不真正知道数据库里面在运行什么。数据库安全平台中的内容发现功能能够区分像社会安全号码这样的敏感信息。发现工具爬过注册数据库,寻找匹配政策的内容和元数据,当敏感信息出现在未经允许的位置时发出警告。
(3)动态内容分析:监控敏感数据的实时查询的结果,并根据结果产生相应的警告。
本文讨论了一种可运行在不同类型的数据库管理系统上的数据库安全平台模型,通过分析一系列安全策略和安全技术在该平台上的运用,验证数据库安全平台架构在提高数据库安全方面的有效性。
[1]joltsik on Tue ,Database Security: More Than DAM Database Activity Monitoring (DAM) should be one of many controls, 2011-10-25, http://securosis.com
[2]Adrian Lane, Rich Mogull ,Selecting a Database Security Platform,http://securosis.com
[3]Aaron Newman,Database Activity Monitoring:Intrusion Detection & Security Auditing by, Application Security, Inc. CTO & Founder
[4]Adrian Lane,Selecting a Database Assessment Solution ,http://securosis.com