机房360首页
当前位置:首页 » 数据安全 » 重视数据安全 保护数据

重视数据安全 保护数据

——数据库安全问题分析

来源:机房360 作者:盖国强 更新时间:2012-4-13 13:29:25

摘要:数据安全是一个永不过时的话题,而安全防范需要大家每一个人从日常做起,从细节做起,本文抛砖引玉,旨在提请大家注意安全问题。

  2011年底,众多席卷而来的密码泄露事件弥漫整个网络,当我注视着最常用的几个密码都在互联网上被公开时,除了手忙脚乱的在各大网站修改密码,剩下的就是深深的遗憾。几乎所有从事IT行业的人,都深知安全的重要,可是放在实际执行中,又往往习惯性失明,忽视了自己周围本应能够达到的力所能及之安全,很多专业人士就以这样或者那样的侥幸心理放任了风险的存在,并一步一步走向了安全危机。

  笔者从事数据库工作超过十年,并且在一直不遗余力的推广数据库技术与数据库安全知识,在此我愿意和大家分享一下我对于数据库安全的理解。
  
  基于对于数据安全的服务和思考,我将数据库安全概括为五大方面,即:软件安全、备份安全、访问安全、防护安全和管理安全
  
  在这五大安全方向中,可能出现两种性质的安全问题,第一,由于内部管理不善而导致的数据安全问题;第二,由于外部恶意攻击入侵所带来的安全安问题。通常我们把安全问题狭义化为后者,这实际上是片面的,在数据安全问题上,前者造成的数据损失、数据损毁,其发生率和影响度都远远超过后者。
  
  下面我们对数据安全的五大方面做一下简要的分析和探讨:
  
  1.软件安全是指我们选择的数据库产品、版本是否稳定安全;厂商所能提供的补丁集和BUG修正是否及时。很多用户在部署数据库软件时,仅仅选择了最容易获得的初始版本发布(如OracleDatabase10.2.0.1或者OracleDatabase11.2.0.1等),遗漏了可能已经存在的补丁修正,并且在运行维护中并不能够及时跟踪软件更新,也无法获得BUG信息、补丁修正和安全告警,这就使得软件本身的很多风险隐患得不到修正。如果软件安全无法保证,数据库安全的基础也就丧失了。
  
  2.备份安全是指用户数据能否得到及时有效的备份保全,能否在故障灾难之后获得及时的恢复和挽救。很多企业在数据灾难之后因为缺乏有效备份而一蹶不振,根据Gartner2009年的一份调查报告显示,在经历了数据完全丢失而导致系统停运的企业中,有2/5再也没能恢复运营,余下的企业也有1/3在两年内宣告破产,由此可见,由于备份安全问题导致的企业伤害可能远远大于黑客攻击。
  
  3.访问安全是指用户数据库的访问来源和访问方式是否安全可控。通常数据库系统处于IT系统的核心,其安全架构涉及主机、系统、存储、网络等诸多方面,如果没有明确的访问控制,缺乏足够的访问分析与管理,那么数据库的安全将是混乱和无法控制的,最基本的访问安全要实现程序控制、网络隔离、来源约束等。
  
  4.安全防范是指通过主动的安全手段对数据库安全进行增强、监控、防护、屏蔽或阻断,诸如数据加密、审计、数据防火墙等技术都在这一范畴之内。我们必须认识到,在IT技术高度发展的今天,风险是无处不在、层出不穷的,可能我们从未思考过的安全问题,每天都在不断涌现,所以在数据库环境中采取主动式防护,可以帮助我们监控分析和屏蔽很多未知风险,已经有很多成熟的产品和技术可以用于安全防范。
  
  5.管理安全是指在企业数据的日常管理维护范畴内,能否充分保证数据安全。诸如DBA的维护、文件的管理、参数或数据结构的变更等等都可能引入数据风险,管理安全要求我们通过规范、制度以及技术手段去确保维护管理安全。2011年陕西移动曾经发生过近1400万手机用户数据泄露的安全事故,最终查明就是因为维护人员的数据窃取导致的数据泄露,而除此之外,很多维护性误删除、误更新等故障也威胁过无数用户的数据安全。
  
  对于数据库安全来说,通常我们认为缺乏的并非技术手段,更多的是缺乏规范和安全认知,如果用户都能够严格的遵循安全守则并应用现有的安全技术手段,数据库的安全性就能够大幅增强,我们的安全事故发生率也会大大降低。
  
  下面就让我们以Oracle数据库为例,探索一下Oracle数据库的安全机制和安全实现。
  
  Oracle数据库自1977年肇始之初,就一直将安全置于首位,"Oracle"这个名字就是来自于美国中央情报局投资的项目代码,而CIA也正是Oracle最早期的用户之一。接触过Oracle数据库的人都应当熟悉一个类似如下图所示的错误"ORA-00942:表或视图不存在",这个简单的错误提示,最初就是在CIA的要求之下作为一项安全防范设定的,这个提示的安全意义在于:避免提供任何具体的实质性提示性信息,以预防黑客的攻击性尝试。由此可见,安全防范可以从每一个细节入手,安全是一项全面整体的技术实现,并非孤立的存在。
  
  接下来让我们从Oracle数据库的密码机制上来深入了解一下Oracle的加密机制,虽然我们知道早在Oracle数据库版本8的年代,就已经提供了强大丰富的数据库加密功能,但是直至今日,恐怕半数以上的数据库中,仍然存放着用户的明文密码,并且未采用任何数据库安全增强机制。这也就是我认为最重要的安全问题:我们并不缺乏安全防范手段,而是缺乏对于安全风险的认知。
  
  诚然,我们对于安全的认识是随着不断出现的安全事故逐步增强的,但是希望大家都能够有计划的逐步增强对于数据库的安全防范,主动规划推进数据安全与从挫折中学习提高实有天壤之别。对于2011年底的密码泄露事件,如果各大网站能够采取基本的技术手段对用户密码进行一定的加密,那么这次密码泄露的安全事件就不会显得那么初级和惹人恐慌,想一想明文密码和MD5加密串的区别?前者基本上意味着数据库从未从安全角度进行过任何思考和增强。
  
  Oracle数据库的用户信息及密码存储于一个名为USER$的数据表中(所有者为SYS用户),我们可以通过基于USER$表建立的DBA_USERS视图来查询和获得这些信息,包括加密的口令串。
  
  在Oracle Database11g之前,用户口令通过DES加密算法进行加密,使用用户名作为"Salt"(Salt指加密过程对加密数据额外使用的干扰字串,可以使用随机或固定的Salt),密码最长为30个字符,所有字母被强制转换为大写。从Oracle7至Oracle10g,加密一直使用username和password串连之后进行HASH运算,例如sys/temp1和system/p1将会获得相同的HASH加密输出。

本文地址:http://www.jifang360.com/news/2012413/n646835290.html 网友评论: 阅读次数:
版权声明:凡本站原创文章,未经授权,禁止转载,否则追究法律责任。
相关评论
正在加载评论列表...
评论表单加载中...
  • 我要分享
更多
推荐图片