很早之前,在做税务行业数据库架构整体方案的时候,曾经建议过将多个数据库实例整合到一个RAC数据库中时,客户提出过一个疑问,数据都放在一个数据库里面,安全性怎么保证?物理隔离才安全。
那时候,我的回答是,物理隔离就安全了?数据库的安全绝对不仅仅是是否能够从这台机器登陆到数据库服务器上,那只是一个前端的考虑点而已,在数据传输的每个阶段,都需要考虑安全性,都需要制定跟企业特点相符合的安全策略,而Oracle数据库在即使是非物理隔离的多个数据库实例上,也同样具备多种安全保护措施。
这里,并不过多地探讨到底Oracle数据库提供了多少Security的解决方案,只是想说,现在的企业在考虑安全性上,更多地是在想如何从外部防范入侵,大多数都忽略了内部的问题,中国有句古话 – 千里之堤毁于蚁穴,其实,内部的毁坏可能才是最致命的。
曾经被朋友请去给某个公安机关的数据库做恢复工作,数据的备份是每天的export文件,且不说这样的备份是否合理,单单就安全性考虑,至少在我帮助恢复和最后检查数据完整性的时候,我可以看到居民们的姓名、身份证号码,甚至,如果当时我愿意copy一份dmp文件拿走的话,也恐怕没有人知道。
再看看我曾经服务过的单位,都或多或少存在这样的安全隐患。
仍然回到我比较熟悉的税务行业,诚然,税务行业的数据保密级别跟银行相比,要低不少,但是以其中的“防伪税控”系统为例,其中存放着企业增值税的信息,并且系统的复杂程度跟税务行业的其它应用相比要简单不少,表的数量不过百张,表结构也相对简单,直接通过查看表中的数据基本上可以获得需要的信息。而“稽核协查”系统的数据又基本上全部由“防伪税控”系统中复制而来,这其中包含着可能会存在的企业违规操作信息。
国税有着企业的纳税情况;地税有着个人的纳税额;银行有着个人的贷款情况、信用卡消费情况;移动,网通,医院,网监,只要有数据库的地方,就有着安全的需求,以上任何一个企事业单位,如果数据泄漏了,恐怕都是一件天大的事情。
数据库的安全建设,现在在国内还仅仅处于一个起步的阶段,在我见过的大多数数据库中,都或多或少存在着安全问题,无论是安装了多少防火墙,无论是安装了多厚的铁门,铁门前面站了多少警卫,进门之前需要签多少字,中控室里安装了多少摄像头,只要有合适的理由登陆进数据库中,一切防范措施似乎都形同虚设了。让跟业务无关的技术人员能够直接面对最终的数据,仅仅这一点就足够让人后脊梁冒冷汗的。
实际上,对于企业数据安全性的要求,现在已经不仅仅是企业内部的需求了,随着美国萨班斯法案(Sarbanes-Oxley)、美国HIPAA法案(Health Insurance Portability and Accountability Act)、日本个人信息保护法案、欧盟隐私和电子通信指令等法规和隐私保护指令的不断出台,中国也开始制定了《企业内部控制基本规范》,该法规被称为中国版的萨班斯法案,在2008年6月28日发布,在规范内最后一条明确指出“本规范自2009年7月1日起实施”,实施范围限定为上市公司,同时也鼓励在非上市的其它大中型企业内实行。
看一下上面提到的几个问题,再看一下Oracle数据库中是否有相应的解决方法。
1. 如何让数据库管理员看不到业务数据?
Oracle Database Vault,Oracle数据库企业版的一个增值选件。它主要是用于管理单个数据库的安全性方面的,当然它也适用于Oracle的RAC环境。在Oracle Database Vault 引入了两个新概念,第一就是领域的概念,也就是说我们可以把数据库的对象组成一个领域,例如说多个表,整个应用或者多个应用,而Database Vault 管理员可以把要进行安全保护的数据库对象放到领域中。第二个概念是规则集合的概念,Database Vault 管理员可以创建一个包含几乎所有DDL和DML操作的语句的集合,然后加上相应的规则,比如说时间,IP地址之类,就能够限制用户对于特定数据的访问权限,而这个是可以应用到所有的用户上的,包括Oracle数据库里面的超级用户sys和system。
有了Oracle Database Vault ,我们需要培养的是一个负责制定公司安全策略的并且会点击鼠标的家伙,通过OEM中的图形化界面,制定不同的数据库领域,要知道监控一个人要比监控一堆DBA简单的多。
From Drop Box |
2. 如何让数据库系统的审计符合法律规定?
Oracle Audit Valut,一种新的安全产品,它使审计收集和分析流程自动化,将审计数据变为关键的安全资源,从而帮助应对如今围绕合规性和内部威胁方面的重要业务挑战。Oracle Audit Vault帮助机构实施“信任但是验证”原则。Oracle Audit Vault帮助企业简化合规报告,及早检测到威胁,同时以透明的方式收集并将审计数据整合到企业级的审计整合管理解决方案中;整合并保护从Oracle数据库采集的审计数据;通过简化IT安全官员和内部审计员的工作,大幅度降低企业合规性的成本;使用户拥有最大灵活性的同时,有效监控他们的活动以确保这些行为符合企业的制度。
From Drop Box |
3. 如何让EXP出来的文件即使被拿走了,也无法构成威胁?
很遗憾,目前为止还没有这样的防范措施。
我们可以实施TDE(Transparent Data Encryption),但是TDE目前还不支持旧的EXP和IMP技术,那么如果要防范此类问题,升级到Oracle10g,用expdp(Datapump)取代原始的exp,而TDE技术是支持Datapump的。
From Drop Box |
你分析的很对,据统计,大多数的安全隐患不是发生在数据库外面,而是发生在内部,也就是说家贼难防,一旦可以登录数据库,所有防范措施都徒劳了,这也就牵扯到数据库的加密上了,在欧美许多国家都有遵循PCI(payment card industry)法规,也就是说如果你公司用数据库存储了客户的资料,你必须对数据库进行加密,但很可惜,在中国还没有这方面的规定。
貌似n年前有篇税控的安全文章介绍过,国内做这样的实施,尚待时日
RMAN Bankup還要加密,SQLNET也要走SSL加密,OS的權限和審計也要有所控制。再加上DBMS_CRYPTO,用sys context來控制就完美了。
Database Vault, Audit Vault都是建立在良好的職能分工上的,到底是美國人想出來的,其實就是三權分立。
任何安全體系都是有漏洞的,如果管理 Security的人不夠專業,DBA總能給自己留一個後門。
之前记得dcba有篇blog提到一个观点,最终的安全还是要落在从业人员的操守上,否则恐怕再强的规范和技术也无法防止,俗话说,不怕贼偷就怕贼惦记。
这年头没啥靠的住的,看龙阳路地铁站外天桥上那些卖资料的,什么都能买到 😀