网络通信 频道

保护数据库服务器加强数据库安全

 数据库是电子商务、金融以及ERP系统的基础,通常都保存着重要的商业伙伴和客户信息。不管
  数据完整性以及关系到系统安全这些在数据库中非常重要,但是数据库通常没有象操作系统和网络这
  样在安全性上受到重视。数据完整性和合法存取会受到很多方面的安全威胁,包括密码策略、系统后
  门、数据库操作以及本身的安全方案。
  
  为什么数据库安全很重要?
  
  1、保护敏感信息和数据资产
   大多数企业、组织以及政府部门的电子数据都保存在各种数据库中。他们用这些数据库保存一些
  个人资料,比如员工薪水、医疗记录、员工个人资料等等。数据库服务器还掌握着敏感的金融数据。
  包括交易记录、商业事务和帐号数据,战略上的或者专业的信息,比如专利和工程数据,甚至市场计
  划等等应该保护起来防止竞争者和其他非法者获取的资料。数据库服务器还保存着一些有关员工详细
  资料的东西比如银行帐号、信用卡号码,以及一些商业伙伴的资料。
  
  2、数据库同系统紧密相关并且更难正确地配置和保护
   数据库应用程序通常都同操作系统的最高管理员密切相关。比如Oracle,Sybase,MS SQL Server数
  据库系统都有下面这些特点:用户帐号和密码,认证系统,授权模块和数据对象的许可控制,内置命
  令(存储过程),特定的脚本和程序语言(通常派生自SQL),中间件,网络协议,补丁和服务包,数
  据库管理和开发工具。许多DBA都全日工作来管理这些复杂的系统。但是,安全漏洞和不当的配置通常
  会造成严重的后果,而且都难以发现。而且一些安全公司也忽略数据库安全,数据专家又不把安全
  为主要职责。“网络安全适应性”哲学——把安全当作持续过程而不是一次性的检查,还没有被数据
  库管理员认可。
  
  3、网络和操作系统的安全被认为非常重要,但是却不这样对待数据库服务器
   安全专家认为这是的一种普遍现象,他们都认为只要把网络和操作系统的安全搞好了,那么所有
  的应用程序也就安全了。现在的数据库系统都有很多方面被误用或者漏洞影响到安全。而且这些关系数
  据库都是“端口”型的,这就表示任何人都能够用分析工具试图连接到数据库上,而绕过操作系统的安
  全机制。比如:Oracle7.3和Oracle8使用的端口是1521和1526。多数数据库系统也有公开的默认帐号和
  默认密码。这两个特性大大地危害着数据库的安全
  
  4、少数数据库安全漏洞不光威胁数据库的安全,也威胁到操作系统和其他可信任的系统。
   这也是为什么数据库安全很重要的原因:有些数据库提供机制威胁着网络安全低层。比如,某公司
  的数据库里面保存着所有技术文档、手册和白皮书,不认为数据库的安全非常重要。即使运行在一个非
  常安全的操作系统上,入侵者可能通过数据库获得操作系统权限,只需要执行一些内置在数据库中的扩
  展存储过程。这些存储过程能提供一些执行操作系统命令的接口,而且能访问所有的系统资源,如果这
  个数据库服务器还同其他服务器建立着信任关系,那么,入侵者就能够对整个域机器的安全产生严重威
  胁。
  
  5、数据库是电子商务、ERP系统和其他重要的商业系统的基础。
   许多电子交易和电子商务的焦点都放在WEB服务、JAVA和其他技术上,那么对于以关系数据库为基础
  的客户系统和B2B系统,数据库就显得更加重要。安全将直接关系到系统可靠性、数据事务完整性,和保
  密性。系统如果出现问题,将不仅仅对交易产生影响,同时也影响着公司的形象。这些系统需要对所有
  合作伙伴和客户信息保密性负责,但是它们又同时是对入侵者开放的。另外,ERP和想SAP R/3这样的管理
  系统都是建立在一些基本数据库系统上的。安全问题将直接同维护时间、系统完整性和客户信任密切相关
  联。
  
  
  需要注意那些安全漏洞?
  
   传统数据库安全主要集中在用户帐号、规则和操作许可(比如对表和存储过程的访问权)上。而实际
  上,一个完全的数据库安全分析包含的范围宽得多,包括所有可能范围内的漏洞评定。下面是一些类别:
  
   软件风险。软件本身漏洞,错过操作系统补丁,脆弱的服务和不安全的默认配置等。
  
   管理风险。提供的安全选项不正确操作,默认设置,不正确地给其他用户提供权限,以及没有得到许
  可的系统配置改变等。
  
   用户行为风险。密码不够长,不确当的数据访问和恶意操作(偷窃数据结构)等。
  
   这些风险类别也同样适用与网络服务、操作系统。当加强数据库安全的时候,所有的因素都应该考虑。
  
  
  数据库安全——弱点和例子
  
   下面列出一些常用数据库服务器安全漏洞和配置缺陷。
  
   安全特性缺陷。
   大多数关系数据库已经存在上10年了,都是成熟的产品。不幸的是,IT和安全专家对网络和操作系统
  要求的许多特性在多数关系数据库上还没有被使用。
  
   没有内置一些基本安全策略。
  
  MS SQL Server Sybase Oracle7 Oracle8
  帐号锁定 N N N Y
  管理员帐号重命名 N N N N
  帐号健壮性要求 N N N Y
  帐号失效 N N N N
  密码失效 N Y Y Y
  登陆时间限制 N N N N
  
   由于这些数据库都是“端口性”的,操作系统核心安全机制不提供给数据库的网络连接,
  比如MS SQL Server,可以使用WINDOWS NT的安全机制来弥补上面的缺陷,但是,多数运行
  MS SQL Server的环境并不一定都是100%的 Windows NT。执行又是另一个问题。如果在运行Oracle 8,
  管理员怎么知道这些安全特性正在被使用?
   上面列举这些特性连起来,将更加严重。由于系统管理员帐号不能改变(SQL Server和Sybase
  是“sa”,Oracle是“system”和“sys”),如果没有设置密码,入侵者就能直接登陆并攻击数据
  库服务器,没有任何东西能够阻止他们获得更高权限的系统帐号。
  
   数据库帐号管理
   多数数据库提供的基本安全特性,都没有机制来限制用户必须选择健壮的密码。这就需要更加谨
  慎的控制和管理。也有一些额外的功能来管理和保护整个密码表。比如,Oracle系统有超过10个特殊
  的默认用户帐号和密码,并且有特定的密码来管理一些数据库操作,比如数据库的启动,控制网络监
  听进程和远程数据库登陆特权。许多系统密码都能给入侵者完全访问数据库的机会,更甚的是,有些
  就储存在操作系统中的普通文本文件中。比如:
   Oracle 内部密码,储存在strXXX.cmd文件中,其中XXX是Oracle系统ID和SID,默认是“ORCL”。
  这个密码用于数据库启动进程,提供完全访问数据库资源。这个文件在Windows NT中需要设置权限。
   Oracle监听进程密码,保存在文件“listener.ora”(保存着所有的Oracle执行密码)中,用于启
  动和停止 Oracle的监听进程。这需要设置一个健壮的密码来代替默认的,并且必须对访问设置权限。入
  侵者可以通过这个弱点进行DOS攻击。
   Oracle内部密码——“orapw”文件权限控制,Oracle内部密码和帐号密码允许SYSDBA角色保存在
  “orapw”文本文件中,该文件的访问权限应该被限制。即使加密,也能被入侵者暴力破解。
   这些只是一些例子。密码保护不仅只针对Oracle,其他数据库系统一样需要。
  
   操作系统后门。
   多数数据库系统都有一些特性,来满足数据库管理员,这些也成为数据库主机操作系统的后门。
   对于Sybase 和SQl Server的帐号“sa”,入侵者可以执行“扩展存储过程”来获得系统权限。只要
  登陆作为“sa”,就可以使用扩展存储过程 xp_cmdshell ,这允许Sybase和SQL Server用户执行操作系
  统命令,就好象在运行操作系统的命令行模式。比如,下面可以添加一个系统帐号“refdom”,
  密码是"nopassword",并且添加到administrators组中:
  
  xp_cmdshell ''''net user refdom nopassword /add''''
  go
  
  xp_cmdshell ''''net localgroup /add administrators refdom''''
  go
  
   这就是因为SQL Server用Windows NT的本地帐号“localsystem”来运行的命令。黑客还可以使用
  xp_regread 来读取加密的SAM密码。然后再暴力破解。
  
  xp_regread ''''HKEY_LOCAL_MACHINE'''',''''SECURITY\SAM\Domains\Account'''',''''F''''
  
   注意,能读出加密的密码是NT的"administrator"帐号也不能做的。SQL Server能读出来同样是使用
  的“LocalSystem”帐号。
  
   Oracle有这样的特性,可以获得操作系统的文件访问权限。比如,UTL_FILE允许用户读和写文件,
  UTL_FILE_DIR可以用来设置用户使用UTL_FILE还写文件。
  
  
   审核。
   主要信息和时间能被关系数据库的认证系统很详细地记录下来,但是,这只能在正确地使用和配置
  下才能起到安全和报警作用。这些功能能提前报警入侵者正在威胁数据库服务器,并且能探测和修复破坏。
  
   木马的威胁。
   数据库管理员需要特别小心,一个著名的木马能够密码改变存储过程修改密码,而且能通知入侵者。
  比如,可以添加几行到sp_password中,记录新帐号到库表中,通过EMAIL发送这个密码,或者写到文件中
  以后使用。这个存储过程不断地获得密码,直到弄到"sa"的密码。

文章转载地址:http://www.cnpaf.net/Class/hack/06101110491798633534.html

0
相关文章