Chinaunix首页 | 论坛 | 博客
  • 博客访问: 77597
  • 博文数量: 13
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 399
  • 用 户 组: 普通用户
  • 注册时间: 2011-07-28 21:06
文章分类

全部博文(13)

文章存档

2013年(13)

我的朋友

分类: 数据库开发技术

2013-05-03 10:35:47

23日,一个名叫“叙利亚电子军”的黑客团体,“劫持”了美联社的微博账号,发布消息:白宫遭遇炸弹袭击、总统奥巴马受伤。此消息一出,标准普尔指数5秒内下跌14点,市值一度蒸发1365亿美元。纽约股市道琼斯工业平均指数应声下跌143.5点,跌幅为0.98%。网络安全再度向人们敲响了警钟!
      自从有网络的那天起,就有了网络安全,也有了一份特殊的职业“黑客”。在网络安全中,博弈的双方:“攻方”和“守方”,从来就没有停止过对抗。这次的奥巴马微博事件,只不过是“攻方”临时占了上风!道高一尺魔高一丈,“攻方”很快就会被灭掉!这样的故事还将继续演绎下去。这样的事件不是坏事,它让我们再一次审视网络安全,并采取更严密的措施,让网络变得更加安全!
废话少说,还是回到我们今天的正题:“数据库安全”。那么,什么是“数据库安全”呢?“数据库安全”是非法的用户取得了数据库的控制权或者泄露了数据的信息。当我们谈到“数据库安全”时,我们往往只会想到数据库用户(如Oracle的超级用户sys),以及这些用户拥有的系统权限(SYSDBA,SYSOPER,ALTER SYSTEM、 CREATE TABLE、CREATE ANY TABLE、ALTER ANY TABLE、DROP ANY TABLE等)和对象权限(SELECT、INSERT、UPDATE、DELETE等)。没错,这些是数据库安全,但是不是真正的数据库安全。试问一下,如果仅仅依靠这些机制,能够保证数据库安全吗?答案是肯定的:“不能”!上面我们说到的仅仅是数据库内部的安全,而数据库的安全还要依靠数据库的外部来保证。也就是说,数据库的“内部安全”和“外部安全”形成了数据库的真正安全。所以,不要轻易说,用户和和权限就是数据库的安全。
      “数据库内部安全”和“数据库外部安全”形成了数据库安全的体系结构。这个体系结构由数据库自身的安全机制构成,也由第三方的安全机制组成。这套机制不仅涉及软件也涉及硬件。我们将从外到里,介绍这套安全体系(这样的体系,仅仅是我个人的总结,不一定正确!)。通常,一个应用由外网和内网组成,数据库通常存在于内网中(见图)。外网通常是Internet,内网通常在企业内部,路由器用于连接内网和外网。当数据从一个子网传输到另一个子网时,将通过路由器来完成。路由器具有判断网络地址和选择路径的功能。从内网进入外网的数据要经过路由器,从外网进来的数据也要经过路由器,因此,路由器的安全尤为重要。

 


防火墙(firewall)是一项确保信息安全的设备,它会依照特定的规则,允许或是限制传输的数据通过。只有允许的数据才允许通过防火墙,非法的数据将被防火墙拦截在防御大门之外。这里只是普通意义的防火墙,并不是数据库防火墙。数据库防火墙是专为数据设计,防止非法用户对数据库的攻击(市场上已经出现一些这样的产品)。
WEB服务器(应用服务器)的安全也尤为重要,因为它们直接连接数据库,一些非法的用户通过攻击WEB服务器或者应用服务器获得数据库的信息,从而泄露数据库的秘密。
数据库所在的主机安全也尤为重要,一旦获得主机的控制权,黑客将轻易控制数据库。主机上也可以安装防火墙(软件防火墙),此外,还可以采取其它措施(包括技术性的和非技术性的)来确保主机的安全。
      客户端在访问数据库之前,要通过监听器进行连接,监听器有时候也会成为泄密者,因此,我们要经常研究和防范监听器的安全风险。
在连接数据库时,需要对用户进行认证,可以使用数据库自身的认证机制,也可以使用操作系统认证和外部认证。外部认证机制有KERBEROS,RADIUS,SSL(Secure Sockets Layer)等。KERBEROS,RADIUS等将提供更加安全、可靠的认证方式。
      数据在网络的传输过程中,我们可以对数据进行加密,可以用RC4, DES, Triple-DES, AES等对网络传输的数据进行加密,这样的加密是网络层面的,并不是数据库层面。在数据库层面,我们可以对特定的表进行加密,也可以对整个表空间进行加密,此外,也可以对存储过程或者函数进行加密,Oracle提供了工具wrap来加密包括存储过程(procedure)、函数(function)、包(package)等的PL/SQL源代码。数据字典也可以被加密。
      为了“掩盖”数据的真相,Oracle通过视图掩盖基表,通过虚拟私有数据库(Virtual Private Database)控制用户对特定数据的访问。Oracle Label Security也用来限制用户对数据的访问。谈到数据库安全时,也不能不谈到Oracle Database Vault ,它存在一定的应用场景中,用于限制超级用户。
      审计是数据库安全最重要的一个环节之一,它对数据库的用户行为进行监控,除了Oracle自带的审计功能,我们也可以使用第三方的产品,如Guardium。Guardium除了具有审计的功能,也还具有数据库防火墙的功能。
      以上介绍了数据库安全的各个方面(数据库安全体系结构)。但是,我们并没有进行详细的介绍,仅仅是做了简单的罗列,数据库安全的知识比较庞大,一言难尽,我们将在后续的文章中进行详细介绍,敬请关注!
       也许,有的朋友会觉得本文跑题了,其实不然,因为,数据库的安全体系结构式层层递进的,数据库只是在最里层。试想一下,如果黑客取得了你的路由器的控制权,你的数据库还100%安全吗?试想一下,黑客已经通过了你的防火墙,数据库还100%安安全吗?试想一下,如果黑客取得了你主机的控制权,你的数据库还100%安全吗?试想一下,如果黑客在网络上截获了你数据库发出的信息,你的数据一定不会泄露吗?

 

阅读(2095) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:数据库安全之--数据库安全的理论基础

给主人留下些什么吧!~~