SQL-Server数据库的安全为题与安全策略.docx_第1页
SQL-Server数据库的安全为题与安全策略.docx_第2页
SQL-Server数据库的安全为题与安全策略.docx_第3页
SQL-Server数据库的安全为题与安全策略.docx_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

此文档收集于网络,如有侵权请联系网站删除SQL Server数据库的安全为题与安全策略摘要:随着网络和SQL Server数据库应用的发展,SQL Server数据库安全性一直是微软公司致力改善和用户关心的问题。本文就SQL Server数据库的安全漏洞的分析,帮助数据库管理员对数据库进行有效的安全配置,探讨数据库安全管理策略。关键词:SQL;数据库;安全;策略0.引言 在各种数据库中,SQL Server是目前被广泛使用的网络关系型数据库,是设计中、小型数据库的首选的工具,虽然SQL Server版本不断更新,其安全性不断改进和完善,但随着网络和数据库使用的不断深入,SQL Server的安全性也是用户最关心的项目之一。 1.数据库的安全漏洞 SQL Server数据库任一版本都不同程度地存在着安全漏洞,这些漏洞大部分是由不良设置或者实施造成。其中,最常见的几个与数据库相关的安全漏洞:不良的口令政策、SQL注入、交叉站点脚本、数据泄漏、不适当的错误处理等。数据库安全漏洞不光威胁数据库安全,也威胁到操作系统和其他可信任的系统。因此,对数据库的安全漏洞详细了解,有助于让用户能够采取相应的措施来修补数据库存在的安全隐患。 对于用户而言,在数据库方面存在的最大问题是经常使用默认或者软弱的口令,来保护像数据库一样重要信息。其补救措施是强制执行强大的口令政策。也就是说,口令要定期变换,口令长度最少为10位数且包含字母和符号。采用这种政策,你将关闭攻击者通向你的数据的方便之门。 SQL注入是依靠软弱的数据库实施,特别是在如何向数据库发送SQL请求方面的实施。如果这个数据库接受了用户提供的不干净的或者没有经过验证的数据产生的SQL请求,这就会为SQL注入攻击敞开大门。例如,通过修改从基于网络的格式受到的信息,攻击者能够提供恶意的SQL请求并且把指令直接发送到数据库。要防止这种类型的攻击,在让这些数据接近你的脚本、数据访问程序和SQL查询之前,保证所有用户提供的数据是合法的是非常重要的。验证和清洁从用户那里收到的数据的另一个理由是防止交叉站点脚本攻击。这种攻击能够用来攻破连接到一个Web服务器的数据库。黑客通过一个网络蠕虫把Java Script等客户方面的脚本注入到一个网络应用程序的输出中。这些脚本用于收集cookie数据。这些数据经常被错误地用来存储用户账户登录信息等资料。一个经常被忽略的问题是什么时候建立一个数据库应用程序是泄漏数据。这是敏感的数据要发送的地方或者是非故意踢敏感数据的地方。这个错误将导致不能保证访问数据库备份磁带的安全和控制这种访问。通常,更敏感的数据产生于有关数据的合法查询的答案,就像从医疗处方判断疾病一样。常用的解决方案是监视查询方式以检测这种行动。与数据泄漏密切相关的是在数据库出现错误时不适当地处理这些错误,许多应用程序显示了详细的信息。这些错误信息能够泄漏有关数据库结构信息。 SQL Server数据库的系统漏洞的产生的主要原因都是由于程序员不正确和不安全的编程引起的。加上程序员的水平及经验的参差不齐,这部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。在使用时,由于用户的不正确配置就有可能导致漏洞产生。认识和了解SQL Server数据库和系统安全漏洞,分析漏洞产生的原因,找出SQL Server数据库的漏洞,是为了增加数据库的安全,这是解决SQL Server数据库安全的理论基础 2.数据库的安全设置 在设计SQL Server数据库时,要考虑数据库的安全机制,安装时要注意整个系统的安全设置,明确操作系统的用户权限,使用文件驱动程序对文件操作进行过滤,即对数据库文件、日志文件、备份文件等各操作事项限定为数据库进程和指定进程进行操作,其余的进程为禁止操作,这时数据库的安性就取决于操作系统本身、数据库系统本身和网络传输的安全性。随着B/S模式应用开发的发展,SQL INJECTION的攻击测试不可避免,很多大型的网站和论坛都相继被注入。目前网站一般使用SQL Server作为后台数据库,正因为如此,很多人开始怀疑SQL Server的安全性。其实SQL Server各个版本的数据库都已经通过了美国政府的C2级安全认证这是该行业所能拥有的最高认证级别,所以使用SQL Server还是相当的安全的。当然和Orcal、DB2等还是有差距,但是SQL Server的易用性和实用性还是能被广大的用户所认同,那如何做好数据库的安全设置是解决问题关键。 2.1注意操作系统的安全设置 主要方法有:1)限制不必要的用户,禁用GUEST账号,并为amdinistrator用户账号更名并增中密码;2)设置系统登录中的各个选项;3)使用NTFS格式分区;4)修改注册表关闭默认共享服备;5)关闭不需要的服务;6)关闭不必要的端口,最好不要使用远程管理软件和不信任的服务器软件等。 2.2安装最新SQL Server数据库补丁包 为了保证数据库的安全性,一个常用的、最有效的方法是到微软官方网站上及时更新SQL Server的service pack以及其它已发布的安全更新。 2.3修改默认的1433端口,并且将SQL Server隐藏 这样能禁止对试图枚举网络上现有的 SQL Server 客户端所发出的广播作出响应。另外,还需要在TCP/ip筛选中将 1433端口屏蔽掉,尽可能的隐藏SQL Server数据库。这样子 一但让攻击创建了SQL Server的账号,也不能马上使用查询分析器远程登陆来进行下一步的攻击。 2.4删除有安全问题的SQL过程 SQL INJECTION往往在Web CODE中产生。攻击者一旦确认了网站存在SQL INJECTION漏洞,肯定有一步操作步骤就是测试网站的SQL Server使用者具有多大的权限。一般都会借助SELECT IS_SRVROLEMEMBER(sysadmin),或 者SELECT IS_MEMBER(db_owner),SQL Server 就会提示了错误信息,从该信息中即可知道一些敏感信息)等语句进行测试。 2.5删除危险函数 SQL Server为了方便操作Excel、Access、远程服务器等数 据 库,增 加 了OPENDATASOURCE和OPENROWSET 等函数,正是这些函数增加了数据库的危险性。黑客可以利用该函数进行数据库挂马,从而获得数据库,以及服务器的控制权 限。 如OPENDATASOURCE 的 用 法:SELECT*FROM OPEN-DATASOURCE (SQLOLEDB, Data Source=ServerName; User ID=。MyUID; Password = MyPass) .Northwind. dbo.Categories黑客完全可以用此语句获得注入数据库的库名、表名、列名、字段值的所有信息。 2.6删除不安全的扩展存储过程 xp_cmdshell是一个非常危险的扩展存储过程,它可执行dos命令,危险的不只是这个,还有Xp_regaddmulti-string 、Xp_regdeletekey 、Xp_regdeletevalue等都是删除的对象。 3.数据库的管理策略 为保证数据库安全,安全管理策略从几个方面加以分析。 3.1访问控制 访问控制(access control)是对用户访问数据库各种资源的权力控制。SQL Server对用户的访问控制分为两阶段:一是安全账户认证,二是访问许可认证。在安全账户认证阶段,Windows操作系统或SQL Server对用户登录进行认证,如认证成功,用户可连接到SQL Server,否则数据库服务器将拒绝用户的连接请求。访问许可确认指的是用户成功连接到SQL Server后,系统根据数据库中保存的与服务器登录标识相对应的用户帐户来判断他们是否拥有对数据库的访问许可。 在建立SQL Server登录后,需要将许可授予用户或用户组,使他们能够在数据库中执行任务。默认条件下,数据库内只有一名特殊的用户DBO,用以表示数据库所有者。它对数据库及其对象拥有完全控制权。要使用户拥有对数据库的访问权,管理员必须明白无误地将数据库许可赋予合法的登录者。区分好SQL Server的登录和数据库用户许可,管理员可以方便地将服务器上某一个数据库的访问权赋予某一用户,同时限此用户访问服务器上的其他数据库。有了访问控控制,SQL Server可以防止非法的用户进入。 3.2数据库许可 claw n. 爪;脚爪合法用户进入服务器和数据库后,对数据对象进行操作还要通过数据库访问许可机制来控制。首先,可通过数据库许可中的语句许可达到限制数据库用户执行某些Transact-SQL语句(如create table、create view等)的目的。其次,可通过数据库许可中的对象许可达到限制数据库用户执行数据库对象某些任务(如select、insert、DRI等)的能力。但要注意的是,在应用过程中一定要分清每个许可的三种状态的区别。individual n. 个人;个体 3.3使用系统存储过程建立数据安全性claim n. & vt. 要求;声称;主张 作为SQL Server数据库管理员,在某些情况下需要赋予用户在数据库中执行一个或多个任务能力,但出于安全性方面的考虑,你可能无法或不愿意赋予对那个数据源的用户许可。如你想让某一用户具有select许可,而不拥有delete许可,此时就可通过建立存储过程达到目的,从而保护了数据的安全。 3.4使用视图建立数据安全性 用户创建数据库的目的就是使用数据,而这些数据都是通过基本表来体现。但对于一名SQL Server管理员而言还应清醒地认识到,在一个数据库中可以包含多张表,可是用户仅使用某些表中的局部数据。若此时SQL Server管理员赋予用户能够访问这些表的许可,形成用户访问区域过大,从而造成用户对数据库中数据安全的威胁。为了避免这一情况,可以通过建立数据视图的方式达到数据安全的目的。 3.5使用服务器角色建立数据安全性 在SQL Server系统中,为了便于管理增加了同时能为多个数据库用户的登录和许可进行设置的能力,这种能力系统是通过角色来体现。服务器角色是一类特殊的功能的集合,拥有执行某些服务器操作的权力。服务器角色中包括了SQL Server登录,因为它们所拥有的许可在本质上是作用于整个服务器的,而不是单独哪个数据库。在SQL Server系统中提供了7种预定义服务器角色,我们使用时还应注意数据库创建者、进程管理员、安全管理员、服务器管理员、设置管理员、系统管理员等角色的使用。当我们将某一用户添加到这些角色中时,我们要慎重考虑,因为这些角色会给数据带来潜在的威胁。circumstance n. 环境;情况 3.6使用数据库角色建立数据安全性 be famous for 以而闻名此角色用于一次设置多个数据库用户对数据库的访问许可,它是直接面对数据的,若许可权限配置不当则直接威胁数据库中的数据,如PUBLIC(公共)角色,在默认情况下,所有的SQL Server登录都是这个组内的成员。作为管理员,在对公共角色赋予许可时必须非常小心谨慎。 seasonal adj. 季节的;季节性的3.7数据备份在数据库日常管理过程中,进行数据备份为首要的工作。当服务器或SQL Server数据库系统发生崩溃时,其原先的数据很难恢复,因为SQL Server数据库不像Visual Foxpro等数据库可以直接拷贝数据库文件,前者必须要有备份策略才能安全恢复。因此,数据库应该安装在所属单位内部网的安全区域中,不要直接连接到 Internet。另外,在处理异常故障时应实施异机备份策略,采用适当有效的备份措施,保护数据安全。barber n. 理发师 3.8数据库加密 数据库加密要求数据库密码系统将明文数据加密成密文数据,数据库中存储密文数据,查询时将密文数据取出解密得到明文信息,即便硬件存储失窃也不会泄漏数据,这样就大大提高了数据库系统的安全性,当然成本也随之提高。对于网络层面上的攻击,数据库主要采用安装防火墙、进行入侵检测等方式来提高其安全性能。防火墙阻挡来自外部的不可信连接。入侵检测系统一般部署在防火墙后,通过网络截包解析或者分析日志来检测网络中和主机上的异常。 4.结束语 由于SQL Server数据库安

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论