免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4272 | 回复: 1
打印 上一主题 下一主题

数据库安全技术 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-10-03 23:58 |只看该作者 |倒序浏览

随着目前计算机技术的飞速发展,数据库在信息社会中扮演着十分重要的角色,它应用广泛,深入到各个领域,但是随之而来则产生了数据的安全问题。数据库是存放数据的软件系统,它的安全隐患主要有:数据的安全,数据库系统被非法用户侵入,数据加密不安全性。数据库系统作为信息的聚集体,是计算机信息系统的核心部件,其安全性至关重要,因此,如何有效地保证数据库系统的安全,实现数据的保密性、完整性和有效性,是至关重要的,在此,我针对数据库的安全防入侵技术和对SQL Server 2000的安全配置进行一些简单的讨论。
首先,对数据库的三个安全隐患做简单介绍:
数据的安全:数据库中存放着大量的数据,这些数据可供拥有一定职责和权利的用户共享,但是,很难严格限制用户只得到一些他们必需的和他们权利相当的数据,通常用户可能获得更多的权限和数据。由于数据库被多人或多个系统共享,如何保证数据库的正确性和完整性也是问题。
数据库系统被非法用户侵入:数据库本身存在着潜在的各种漏洞,致使一些非法用户利用这些漏洞侵入数据库系统,造成用户数据泄漏。比如SQL Server数据库系统加密的口令一直都非常脆弱。
数据加密不安全性:由于现在不存在绝对不可破解的加密技术,各种加密手段均有一定的不安全性。
下面,我主要是对安全防止入侵技术和具体的数据库的安全配置进行简要的讨论。
一.安全防止入侵技术:
  通过有关资料了解到数据库系统的安全除依赖自身内部的安全机制外,还与外部网络环境、应用环境、从业人员素质等因素息息相关,因此,从广义上讲,数据库系统的安全框架可以划分为三个层次:
  ⑴ 网络系统层次; ⑵ 宿主操作系统层次; ⑶ 数据库管理系统层次。
这三个层次构筑成数据库系统的安全体系,与数据安全的关系是逐步紧密的,防范的重要性也逐层加强,从外到内、由表及里保证数据的安全。下面就安全框架的三个层次展开论述。
网络系统层次安全技术 :
  从广义上讲,数据库的安全首先依赖于网络系统。随着Internet的发展和普及,越来越多的公司将其核心业务向互联网转移,各种基于网络的数据库应用系统如雨后春笋般涌现出来,面向网络用户提供各种信息服务。可以说网络系统是数据库应用的外部环境和基础,数据库系统要发挥其强大作用离不开网络系统的支持,数据库系统的用户(如异地用户、分布式用户)也要通过网络才能访问数据库的数据。网络系统的安全是数据库安全的第一道屏障,外部入侵首先就是从入侵网络系统开始的。网络入侵试图破坏信息系统的完整性、机密性或可信任的任何网络活动的集合,具有以下特点:
  a) 没有地域和时间的限制,跨越国界的攻击就如同在现场一样方便;
  b) 通过网络的攻击往往混杂在大量正常的网络活动之中,隐蔽性强;
  c) 入侵手段更加隐蔽和复杂。
  计算机网络系统开放式环境面临的威胁主要有以下几种类型:
欺骗, 重发, 报文修改, 拒绝服务, 陷阱门 ,特洛伊木马, 攻击(如透纳攻击、应用软件攻击)等。这些安全威胁是无时、无处不在的,因此必须采取有效的措施来保障系统的安全。
从技术角度讲,网络系统层次的安全防范技术有很多种,大致可以分为
防火墙
、入侵检测、协作式入侵检测技术等。其中,入侵检测采用的分析技术可分为三大类:签名、统计和数据完整性分析法。

宿主操作系统层次安全技术 :
  操作系统是大型数据库系统的运行平台,为数据库系统提供一定程度的安全保护。目前操作系统平台大多数集中在Windows NT和Unix,安全级别通常为C1、C2级。主要安全技术有操作系统安全策略、安全管理策略、数据安全等方面。
  操作系统安全策略用于配置本地计算机的安全设置,包括密码策略、账户锁定策略、审核策略、IP安全策略、用户权利指派、加密数据的恢复代理以及其它安全选项。具体可以体现在用户账户、口令、访问权限、审计等方面。
  安全管理策略是指网络管理员对系统实施安全管理所采取的方法及策略。针对不同的操作系统、网络环境需要采取的安全管理策略一般也不尽相同,其核心是保证
服务器
的安全和分配好各类用户的权限。
数据库管理系统层次安全技术 :
  数据库系统的安全性很大程度上依赖于数据库管理系统。如果数据库管理系统安全机制非常强大,则数据库系统的安全性能就较好。目前市场上流行的是关系式数据库管理系统,其安全性功能很弱,这就导致数据库系统的安全性存在一定的威胁。
  由于数据库系统在操作系统下都是以文件形式进行管理的,因此入侵者可以直接利用操作系统的漏洞窃取数据库文件,或者直接利用OS工具来非法伪造、篡改数据库文件内容。这种隐患一般数据库用户难以察觉,分析和堵塞这种漏洞被认为是B2级的安全技术措施。
  数据库管理系统层次安全技术主要是用来解决这一问题,即当前面两个层次已经被突破的情况下仍能保障数据库数据的安全,这就要求数据库管理系统必须有一套强有力的安全机制。解决这一问题的有效方法之一是数据库管理系统对数据库文件进行加密处理,使得即使数据不幸泄露或者丢失,也难以被人破译和阅读。(由于资料查找关系,没有对此做深刻讲解)  
下面主要是对宿主操作系统层次安全技术这一方面做一个具体实例的讨论:
二.数据库的安全配置
目前用于网站的数据库管理系统有:Acess,Micorsoft SQL Server,Oracle,Sysbase,Mysql.对于采用何种数据库管理系统取决于网站的需要和所采用的服务平台,本文以服务平台为Windows 2000,数据库为Microsoft SQL Server 2000 数据库管理系统为例进行讨论。
    首先,在进行SQL Server 2000 数据库安全配置之前,首先必须对操作系统进行安全配置,保证操作系统处于安全状态,然后对所使用的操作数据库的软件(程序)进行必要的安全审核,(比如对ASP 、PHP等脚本),这是很多基于数据库的Web应用常出现的安全隐患。对于脚本主要是一个过滤问题,需要过滤一些类似,‘;·/等字符,防止破坏者构造恶意的SQL语句。另外,安装SQL Server 2000后需打最新的sq2补丁。
  下载地址是:www.Microsoft.com/sql/downloads/2000/sql.asp和
www.microsoft.com/sql/downloads/2000/sp2.asp
1.安全的密码策略
安全策略是所有安全配置的第一步。通常,许多数据库帐号的密码过于简单,这跟系统密码过于简单所造成的不安全是一个道理。对于系统管理员(SA)更应该注意。此外需定期修改密码。
2.安全的帐号策略
   由于SQL Server不能更改SA用户名称,也不能删除这个超级用户,所以,必须对数据管理员的帐号进行最强的保护,包括使用非常强壮的密码,安全的数据管理员帐号策略还包括不要让管理员权限的帐号泛滥。
   SQL Server的认证模式与Windows身份认证个混合身份认证两种。如果数据库管理员不希望操作系统登录接触数据库,可以在帐号管理中把系统帐号“BUILTIN\Administrators”删除。不过这样做的结果是一旦SA 帐号帐号密码的话,就没有办法恢复了。
  很多主机使用数据库应用只是用来做查询、修改等简单功能的,根据实际需要分配帐号,并赋予仅仅能够满足应用要求和需要的权限。比如,只需要查询功能的,使用具有public权限的帐号就能满足,例使用SQL 语句对’user’进行权限修改:
sp_addrolemember ‘user’,’public’
3.加强数据库日志的记录
   审核数据库登录的“失败和成功”,可在实例属性中选择“安全性”,将其中的审核级别选定为“全部”,这样在数据库系统和操作系统日志里面,就详细记录了所有帐号的登录事件
定期查看SQL Server 日志,检查是否可疑的登录事件发生,使用命令:
   findstr/C:”登录”d:\Microsoft SQL Server\MSSQL\LOG\*.*
4.管理扩展存储过程
       在多数应用中不需要使用太多的系统存储过程,因此系统存储过程可根据广大拥护需求删除不必要的存储过程。因为过多的存储过程容易被人用语提升权限或进行测试。对不需要扩展存储过程xp_cmdshell时,使用SQL语句将其删除。
       Use master
       Sp_dropextendproc’xp_cmdshell’
Sp_cmdshell是进入操作系统的最佳捷径,是数据库留给操作系统的一个大后门。当需要存储过程时,用下面句子以恢复:
       Sp_addextendeproc’xp-cmdshell’,’xp_sql70.dll’
此外,要删除的扩展存储过程还有:
       sp_OACreate Sp_OADestroy Sp_OAGetErrorInfo Sp_OAGetProperty
       Sp_OAMethod Sp_OASetPropertty Sp_OAStop
Xp_regaddmultisstring Xp_regdeletekey Xp_regdeletevalue Xp_regenumvalues
Xp_regread Xp_regremovemultistring Xp_regwrite
在处理存储过程的,需确认以下,避免造成对数据库或应用程序的伤害。
5.使用加密协议
SQL Server 2000使用Tabular Data Stream 协议进行网络数据交换,包括密码, 数据库内容等交换。这是一个潜在的安全威胁。所以,应采用SSL加密协议。
6.防止探测TCP/IP端口
       默认情况下SQL Server 使用1433端口监听,通过对1434 UDP端口的探测可以得到SQL Server 所使用的TCP/IP端口。
       在实力属性中选择TCP/IP协议的属性,选择隐藏SQL Server 实例。如果隐藏了SQL Server实例,则将禁止对试图枚举网络上现有的SQL Server 实例的客户端所发出的广播做出响应。这样,防止了使用1434端口来探测TCP/IP端口(除非用Port Scan)
7. 修改TCP/IP使用的端口
   在上一步配置的基础上,更改原默认的1433端口。在实例属性中选择网络配置TCP/IP协议的属性,将TCP/IP使用的默认端口变为其他端口,
8. 拒绝来自1434端口的探测
   由于1434端口探测不受限制,容易被别人探测到数据库信息,遭到DoS攻击,使数据库服务器的CPU负荷增大,所以,对windows 2000 操作系统来说,在IPSec过滤拒绝1434端口的UDP通信时,尽可能地隐藏SQL Server
9. 对网络连接进行IP限制
   SQL Server 2000数据库系统本身没有提供网络连接的安全解决办法,但是Windows 2000提供了这样的安全机制。使用操作系统自己的IPSec可以实现IP数据包的安全性。如对IP连接进行限制,只保证自有的IP能够访问,拒绝其他IP进行的端口连接,以便有效地控制来自网络上的安全威胁。
经过以上的配置,可以让SQL Server 具备足够的安全防范能力。此外更需要加强内部的安全控制和安全培训,做好安全维护工作。
以上是对SQL Server 2000的具体应用进行的安全配置简述.
目前,数据库应用广泛,对此做好安全防范是重点,以上只是做了一个简单的讨论,希望对大家有所帮助.


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/23013/showart_179732.html

论坛徽章:
0
2 [报告]
发表于 2011-06-21 10:07 |只看该作者
好文章
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP