网络环境下的数据库安全综述
2009-03-11王静
王 静
提要本文提出了网络环境下数据库安全遇到的威胁以及数据库总体安全策略。通过这些策略来保障数据库系统的完整性、保密性和可用性,抵御针对数据库安全的各种威胁。
关键词:网络;网络数据库;数据库安全
中图分类号:F49文献标识码:A
一、引言
随着网络化开放环境的发展,B/S模式的网络应用越来越多,数据库安全问题也日渐突出。根据我国GB17859-1999《计算机信息系统安全保护等级划分准则》中的描述:数据库安全就是保证数据库信息的保密性、完整性、一致性和可用性。
网络数据库应用系统是数据库技术与网络技术相结合进行信息处理的系统。这种结合大大提高了网络功能,同时也将数据库应用延伸到网络上,发挥数据库强大的数据管理作用。但是,由于网络连接中存在着种种安全隐患,这些安全隐患也必然会影响网络数据库的安全。
二、网络数据库简介
网络数据库就是以后台数据库为基础,加上一定的前台程序提供访问控制,通过浏览器完成数据存储、查询等操作的信息集合。现在流行的网络数据库主要为B/W/D三层结构模型。(图1)
这个模型由数据库和网络结合而成,分别由浏览器、Web服务器和应用服务器以及数据库服务器三部分组成。第一层客户端为通用的浏览器软件,是用户与整个系统的接口。浏览器将代码转化成可提供交互功能的网页,允许用户输入信息提交给后台。并提出处理请求。这个后台就是第二层的Web服务器。服务器将启动相应的进程来响应请求,并动态生成嵌入处理结果的代码,并返回给客户端浏览器。如果客户端提交的请求包括数据的存取,Web服务器还需要与数据库服务器协同完成这一请求。第三层数据库服务器负责协调不同的Web服务器发出的SQL请求,从而有效管理数据库。
三、网络环境下数据库面临的威胁
(一)网络数据库的完整性分析。数据库的完整性指保护数据库中的数据不被破坏和删除,我们主要从操作系统和数据库系统进行分析。首先,在操作系统下,网络数据库系统都是以文件形式进行管理的,因此入侵者通过网络可以直接利用操作系统的漏洞窃取数据库文件,或者直接利用OS工具非法伪造、篡改数据库文件内容,而且一般网络数据库用户难以察觉。其次,从数据库系统的角度来看,许多DBA很容易忽略检查严重的安全隐患和不正确的配置,而且数据库厂商一般没有提供专门的审计接口,即使提供其现有的功能也不太完整。另外,现有数据库系统也存在多方面的攻击隐患,如SQLServer就存在多种攻击隐患,包括存在于UDP监控器端口上的缓冲区溢出、利用SQLPing等工具向SQL监控器端口攻击、通过网络嗅探等方式获取密码、利用xp_cmdshell stored procedure(扩展存储过程)读取文件系统和注册表、通过临时存储过程或SQLAgent绕过访问控制机制等。
(二)网络数据库的保密性分析。数据库的保密性指保护数据库中的数据不被泄露和未授权的获取。SQL Server 2000使用Tabular Data Stream协议来进行网络数据交换,如果不加密的话,所有的网络传输都是明文的,包括密码、数据库内容等等,这很可能被第三方人员截取、篡改。因此,当用户或应用程序需要访问SQLServer时,就要发生一个相互交换凭证的过程。这些信息要尽可能进行加密处理,以防止有人窥探网络上的通信,并使用窥探到的信息假冒一个合法的用户进行信任欺骗。
(三)网络数据库的可用性分析。数据库的可用性是确保数据库中的数据不因人为的和自然的原因对授权用户不可用。通常情况下,对数据库访问的控制只能通过用户控制即用户名/密码来进行。在开放的网络环境中,一方面数据库要给网络上的用户提供尽可能方便的服务;另一方面数据库还要受到来自黑客的各种攻击,这也增加了密码保护管理的难度,导致网络数据库的可用性受到威胁。这就涉及“我是谁”和“允许我干什么”的问题。
(四)网络数据库的一致性分析。数据库的一致性是确保数据库中的数据满足实体完整性、参照完整性和用户定义完整性要求。现在,许多站点都采用了ASP、PHP、JSP等脚本语言配合网络数据库的形式。如果不对网页中用户提交的数据进行合法性判断和过滤,恶意的浏览者就可以通过提交精心构造的数据库查询代码,进行“SQL注入”攻击。这就需要从应用程序的代码安全性着手,提高数据库系统的安全性。
四、网络环境下数据库总体安全策略
数据库的安全性主要指保护数据库,以防止不合法的使用所造成的数据泄密、更改或破坏。
(一)身份认证。在面向多用户开放共享的网络环境下,访问数据库系统的用户必须要求进行身份认证,以防止非法用户访问。这是网络数据库安全系统防止非法用户侵入的第一道防线。当前流行的几种RDBMS中,身份认证一般有三级:系统登录、数据库连接和数据库对象使用。系统登录一般由网络操作系统提供检查,要求用户输入用户名和口令加以验证。通过系统安全检查后用户才可以处理业务流程。当要求访问数据库时,就要求数据库管理系统验证当前用户身份是否可以进行数据库访问。在取得数据库登陆身份后,对数据库中的数据对象进行操作之前,数据库管理系统要再次检验用户对数据库对象的访问权限,以核实该用户是否有权对该数据库对象进行指定的操作。
(二)存储访问控制。所谓访问控制,简单地说,就是对应保护的数据所进行的存取访问权限的确定、授予和实施。例如,针对一组数据库记录标识,通过访问控制,可以授权符合某一级别或者某一特征的用户进行的访问方式,即读、写、查询、增加、删除、修改等操作的组合。数据的访问控制必须和用户的身份认证结合起来,才能形成有效的安全机制。
(三)审计追踪和攻击检测。身份验证和存储访问控制是目前网络信息系统设计中最为普遍的安全性方法,但目前的软件工程技术水平还无法证明或者保证任何一个系统不存在安全漏洞,也没有一种可行的方法,可以彻底解决合法用户在通过身份认证后滥用特权的问题。因而,一些网络信息系统中的大型DBMS提供的审计追踪和攻击检测便成了一个十分重要的安全措施,也是任何一个安全系统中不可缺少的最后一道防线。审计功能在系统运行时,可以自动对数据库的所有操作记录在审计日志中,以此来监视各用户对数据库施加的动作。攻击检测系统则是根据审计数据分析检测内部和外部攻击者的攻击企图,再现导致系统现状的事件,分析发现系统安全的弱点,追查相关责任者。
(四)网络数据库的备份与恢复。数据备份与恢复是实现信息系统安全运行的重要技术之一,能保证该系统因各种原因遭到破坏时,能尽快投入使用。为了保证数据库的安全性,应用数据库的备份是很重要的举措。一般的数据备份解决方案为以下三种:磁带备份、双机热备份、手工备份方法。
五、结束语
Internet的飞速发展,使得网络不再是单纯的信使,而是一个交互的平台,使用很多像电子商务等的功能越来越频繁,因此网络数据库的安全越来越重要。多用户、高可靠性、频繁的更新和大文件是数据库的特性,这必然使得数据库的建设和维护显得非常困难和繁琐,同时这也使攻击者有机可乘,利用数据库的一些不易觉察的漏洞,进行非法操作。我们可以采取上文所述的几方面措施,在设计数据库系统时做统筹安排,提高数据库中数据的安全性。
(作者单位:西安欧亚学院)
参考文献:
[1]陈黎,我国网络数据库发展现状[J],中国信息导报,2004.
[2]姜启涛,网络数据库的安全及优化[J],计算机与信息技术,2006.10.
[3]王岩明,冼沛勇,建立数据安全系统,维护企业信息安全[J],计算机与网络,2003.24.
[4]张敏,徐震,冯登国,数据库安全[M],北京,科学出版社,2000.