APP下载

浅议SQL SERVER数据库安全策略

2009-07-13

新媒体研究 2009年21期
关键词:攻击者端口服务器

袁 勇

[摘要]SQL Server是微软公司推出的关系数据库管理系统,很多电子商务网站、企业内部信息化平台等都是建立在SQL Server数据库基础之上。为防止不合法的使用所造成的数据泄露、更改或破坏,微软公司建立一套灵活强大的安全管理机制。但再完美的系统都可能存在漏洞,或是使用者安全意识不强而带来系统运行过程的不安全性。安全使用SQL Server数据库,必须采取补丁策略、防范SQL注入攻击策略和网络连接策略。

[关键词]计算机安全数据库SQL SERVER

中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)1110091-01

在计算机安全领域中,人们往往更多地关注系统基础架,比如讨论防火墙、网络、操作系统、Web服务器、电子邮件服务器和域名服务器的安全性策略,而很少关注数据库。但实际上,数据库作为计算机系统的核心部分,是企业、公司、机关的重要信息中心。数据库才是攻击者的主要目标。如何加强SQL SERVER数据库安全是一个很值得探讨的问题。

一、关于SQL SERVER数据库的安全性

SQL Server是微软公司推出的关系数据库管理系统,很多电子商务网站、企业内部信息化平台等都是建立在SQL Server数据库基础之上。为了防止不合法的使用所造成的数据泄露、更改或破坏,微软公司建立了一套灵活强大的安全管理机制。

SQL Server数据库安全性管理是建立在认证(authentication)和访问许可(permission)两者机制上。认证是指来确定登陆SQL Server数据库的用户的登陆帐号和密码是否正确,以此来验证其是否具有连接SQL Ser

ver数据库的权限[1]。但是,通过认证阶段并不代表能够访问SQL Server

数据库中的数据,用户只有在获取访问数据库的权限之后,才能够对服务器上的数据库进行权限许可下的各种操作,如针对数据库对象(表、视图、存储过程等)进行操作,通过用户帐号设置来实现这种用户访问数据库权限。在SQL Server数据库的安全模型中主要包括SQL Server登录、数据库用户、权限、角色。SQL Server的安全控制策略是一个层次结构系统的集合。

二、SQL SERVER数据库危险来源

虽然微软在SQL SERVER数据库系统中建立了较为严密的安全管理机制,但再完美的系统都可能存在漏洞,或是使用者安全意识不强而带来系统运行过程的不安全性。归纳起来,SQL SERVER数据库的不安全性主要来自两方面:一方面,由于一些管理员和用户安全意识薄弱,使数据库的安全问题。另一方面,系统中存在的安全漏洞和不当的配置也给非法用户提供了可乘之机,使他们未经授权即闯入系统,破坏和窃取数据,造成严重后果。

系统安全漏洞,也叫系统脆弱性(Vulnerability),是计算机系统在硬件、软件、协议的设计与实现过程中或系统安全策略上存在的缺陷和不足。广义的系统安全漏洞是一切导致威胁、损坏计算机系统安全的因素。SQL Server数据库的系统漏洞产生的主要原因都是由于程序员不正确和不安全编程引起的。很多程序员在编程开始时没有充分考虑到安全问题,在投入使用时,由于用户不正确的输入及不恰当的配置都可以导致漏洞的出现。

三、SQL SERVER数据库安全策略

基于SQL Server数据库系统运行环境及其漏洞形成原因,我们要针对问题采取以下策略。

(一)补丁策略

SQL Server2000中存在多个安全漏洞,安装完毕后,应及时安装或更新最新的补丁。因为攻击者可能利用这些漏洞,绕过数据库策略,系统漏洞会泄露敏感信息或执行恶意代码从而威胁数据库服务器安全。为了提高服务器安全性,最有效的一个方法就是时常给系统打补丁,将系统升级到Service Pack4(SP4)。同时,应该安装所有已发布的安全更新,并运行Microsoft Baseline Security Analyzer(MBSA),因为MBSA会通过密码、访问权限、访问控制列表以及注册等方式查找问题,并找出遗失的安全补丁或服务包。另外,用户还要注册微软的免费安全通知服务,该服务会以电子邮件的形式通知我们有什么侵入安全系统以及如何解决它们。尽管安全补丁或服务包有助于SQL Server数据库免受许多威胁,但是它们并非“终结者”,对快速运行的安全问题,如蠕虫攻击者就有点力不从心了。我们还要做下面几项工作。

(二)防范SQL注入攻击策略

SQL注入(SQL injection)是指用户可以传递任意的、特别的(恶意的)代码,这些代码通常被添加到有效的SQL代码中[2],从而对系统进行攻击。预防SQL注入攻击的第一步是使用验证器验证用户的输入。例如,可以限制输入的长度和类型等,这样就限制了黑客键入字符的字数,从而限制了黑客向服务器发送大量的非法的命令。第二步是对用户输入的数据先进行过滤,把单引号和双引号全部过滤掉,再进行SQL语句的构造,从而大大降低了攻击者成功的概率。另外,还可以利用参数化存储过程来访问数据库,确保不会将输入字符串看作是可执行语句。当指定了参数的类型和长度后,如果用户输入一个无效的值到当前的数据类型中,则查询将失败。如果不能使用存储过程,在构建SQL命令时要利用SQL参数,这样,攻击者就不能使用特殊字符拼接字符串。指定了参数的长度,就能防止大量的数据传递到数据库服务器中。

(三)网络连接策略

将SQL Server连接到Internet需要考虑更多的安全问题,保证只有经过身份验证的用户才可以访问数据库服务器,并且只能访问他们业务流程所需的资源,同时防止黑客们对网上信息进行窃听、篡改。为此我们要做以下工作。

首先,允许通过Microsoft代理服务器连接到SQL Server。Microsoft

代理服务器是一个提供对Internet进行安全访问的独立应用程序,它可以防止未经身份验证的用户连接到专用网,并通过控制侦听端口的权限和访问来确保敏感数据的安全性。

其次,可以在配置时将该端口改变或者隐藏服务。因为,默认情况下,SQL Server使用1433端口监听。2002年5月发现的第一个面向SQL server的病毒SQL Snake(又叫Spida)就是通过此端口进入的[3]。另外,由于1434端口探测没有限制,恶意用户能够由它探测到一些数据库信息,而且还可能遭到DOS攻击。

最后,要对SQL Server所传递的文件加密。因为SQL Server使用Tabu

lar DataStream协议来进行网络数据交换,如果不加密的话,所有的网络传输都是明文,很容易被非法入侵者截获到传输内容,包括数据库账号和密码,有很大的安全隐患。

参考文献:

[1]李劲、谢兆阳,SQL Server 2000数据库设计与系统管理,清华大学出版社,2004.

猜你喜欢

攻击者端口服务器
一种端口故障的解决方案
2018年全球服务器市场将保持温和增长
为程序或设备在路由器上打开端口
用独立服务器的站长注意了
定位中高端 惠普8路服务器重装上阵