Oracle数据库安全防范:典型问题和解决思路

数据安全是个很广的话题,它包括了网络安全、操作系统安全、应用层安全和数据库安全等。数据安全的目标是敏感数据"看不见",核心数据"拿不走",运维操作"能审计"。

常见的安全风险主要有外部攻击和内部威胁两大类:

1、外部的攻击:可能使用的软件漏洞,绕过登录信息,破解密码等方式登录系统;拒绝服务:通过请求有限的资源,如端口分配给未授权用户;未经授权的数据和服务的访问:当一个外部的人通过了认证,就认为是一个内部的人;

2、内部威胁(大部分的错误都是有内部原因造成的):滥用特权;偷窃数据或者服务;数据破坏,恶意修改数据;

Oracle数据库本身包含了多种的手段来保证数据的安全,比如强身份认证、审计、数据加密和编辑、细粒度审计、安全标签和数据屏蔽等等;除此之外,还有很多外部措施和技术可以用来进行安全防范。

在上个星期举办的“Oracle数据库安全防范技术应用交流”中,集中讨论了Oracle数据库安全相关的问题,同时也拓展到了其它方面,比如高可用、备份恢复和性能调优,很多这方面的高手参与,在此特邀活动嘉宾、同时也是活动中技术文档的分享者
royalwzy(海通证券 数据库架构师)对问答进行整理和归类,方便大家直接参考。

(本文亦有以下社区会员的贡献:willow、mczmiao、yhd_my、zyclove2008 等等)

一、数据库安全类

问:对于数据库审计的安全问题,可否提供一点较为详细的文档或者产品?

答:

可以参考社区的两篇文章

1.Oracle审计技术介绍:http://www.aixchina.net/Question/228291

2.Oracle细粒度审计:http://www.aixchina.net/Question/228297

---

问:请教专家,在ORACLE 11G环境下,如何从数据库本身加强安全认证?在oracle数据库应用中,其安全要求涉及很多方面,从数据库本身如何加强安全认证?请专家给出几个具体的提高安全保障要求的详细配置案例的做法。

答:

以下几个方面仅供参考:

1.最小权限原则:

1)在机器上,只安装需要的软件;

2)只激活机器上必须的服务;

3)只给必要的人访问数据库和操作系统的权限;

4)显示使用root和admin权限访问操作系统;

5)限制sysdba和sysoper用户访问数据库;

6)限制用户只能访问工作中必须的的数据库对象;

2.定义安全策略;

3.加强服务器保护:

1)只保留必要的服务,不但可以减少服务器的负载,也降低了安全的风险;比如内网数据库服务器禁用掉除1521之外的非必须的端口;负面的例子,有人在服务器上安装360;

2)限制特权用户的个数,比如操作系统的权限,数据库的权限和应用程序的权限等等;

3)使用服务的安全特性,比如添加审计功能,比如vsftpd服务的chroot功能;

4)应用安全补丁和解决办法,及时查看软件供应商发布的安全补丁;

5)保护备份,备份数据和源数据同等重要;

6)对内部开发的系统进行安全测试,包括一些边际测试,功能测试,压力测试等;

7)需要强密码,要满足一定的密码复杂度,比如说至少8位,必须包含大写/小写/数字/特殊字符中的三个;

8)控制物理访问,还是前面提到的,要保证物理机器的安全;

9)审计,用来探测可以的活动;比如用户登录,非法操作;

10)使用入侵检测工具,比如使用tripwire工具来检测等等;

4.维护数据的完整性:

1)标准审计:可以记录访问的时间,谁访问的哪一个数据对象,和使用的权限;

2)细粒度审计:可以查看到调用的SQL语句,结合闪回功能可以查看到之前访问的数据;

3)特权用户审计:可以记录sysdba用户的相关操作;

4)网络加密:防止数据在传输过程中被篡改;

5.访问控制;

---

问:Oracle数据库一般部署在核心区域,怎么在网络上隔离各类攻击行为?

答:

几个方面吧:1.限制只有应用或者中间件的服务器可以访问数据库服务器;2.前面使用多道防火墙;3.划分好DMZ区

在网络acl上严格控制对数据库监听端口的访问(通过网络防火墙实现)、同时,在数据库本机的防火墙策略中也添加访问策略。在网络上,还可利用入侵检测设备等进行防范。

---

问:有关数据存储加密的技术趋势。这一两年内有些外资银行提出包含客户数据的存储加密--data
encryption at
rest,主要是防范操作系统管理员的越权获取客户数据得目的。16年该概念在Oracle和IBM有一些尝试但是尚未有大规模的行业部署,不知大家对数据存储加密的技术趋势有无看法?

答:

这方面前段时间在做论文的时候涉猎一些,难点主要集中在加密密钥管理和元数据的管理上吧。

---

问:请教如何防止SQL注入?

答:

通过数据库审计系统实现SQL语句的行为审计,区分合法SQL和恶意注入,联动防火墙或IPS进行拦截。

从根源上进行防范的效果最佳,严格审查web应用程序和其他可进行sql语句输入的字段、隐藏字段等。

---

问:Oracle数据库安全基线综合评分体系探讨。在按照安全基线对Oracle数据库的安全配置项进行修改后,如何对配置修改的效果进行评估呢? 是否可以按照配置项的重要程度,采用加权累计方式进行评估,或者大家是否有一套完善的评估体系? 针对每一个安全配置评估项目,按重要程度,形成一套量化的评分标准呢?

答:

比如从如下检查项(包括但不限于)的重要程度:如口令策略、帐号锁定策略、日志文件保护策略、限制SYSDBA帐号远程登录、public权限、日志审计策略、数据字典保护等。

---

问:数据库应用用户权限过大的处理。很多情况下,应用自称需要某某权限,然后带着该权限上线了,之后发现并不需要此权限,此时如何处理比较好?如果直接简单粗暴地revoke回来有可能导致正常业务无法执行,风险难以控制,后果难以预计呀!

答:

这个从流程和技术两个方面考虑吧。

流程方面:如果应用想要申请足够高的权限,可以通过团队协作留痕,保证有据可查。

技术方面:之后发现权限太大,担心风险发生,继而可以通过审计的技术手段对用户的权限使用进行记录。发生问题时有责可追。

---

问:应用用户具有DBA权限,密码明文,这种应用随处可见,从数据库管理角度,如何保证这种用户的数据安全,数据不被篡改。

答:

可以考虑使用审计功能;

二、其它问题

问:关于金融行业oracle的数据安全。在金融行业,双活是一个重要课题,可以保证应用的高可用性。那么在数据库层面目前有无数据库双活的架构设计,在双机房进行时数据同步时,ADG和OGG是如何区分应用场景进行使用的,二者有何本质区分?另外oracle12C的新版本具有多租户的概念,这种系统架构目前有无实际应用案例,它与传统部署方式在数据权限控制方面有无一定的风险?

答:

1.同城双活的话可以考虑使用 Oracle Extended Distance Clusters

2.OGG类似于DG的逻辑备机,是基于日志挖掘的方式做同步的,优点就是可以在备机做操作。

3.12cR2已经发布了,准备要升级的公司还是蛮多的,PDB特别适合很多小库的场景,可以把不同的业务隔离开。数据权限根之前基本一样,多了一个COMMON用户的概念。

---

问:大型系统中有大量用到oracle数据库,通常在购买license上考虑到节约,请问这样会有安全问题产生吗?比如:100台oracle服务器,只买了2个license。

答:

首先说明一下,这样做对安全本身是没有影响的。只是商务的问题。能使用的功能和安全的特性取决于你安装的版本。

---

问:Oracle不等规模的数据库备份措施有哪些?数据库备份是很重要的一环,那么在企业当中我们遇到的数据库规模和量级也是不一样的。那么在针对不同规模的数据库备份的时候,具体的备份措施有哪些?

目前我们可以先安装数据量大小来分:1. 小于1TB 场景;2. 大于5T<10T场景;3. 大于10T的场景。

答:

目前大部分公司都采用灾备的方式来代替真正的备份工作,就算小于1T的场景,真正出了故障,恢复也要很久。所以采用DG,ADG,OGG等方式才是高效的备份方案。有了这个,你再加上套备份就更好了,通常采用Oracle自带的Rman技术,大库可以采用NBU或TSM备份到带库。

---

问:备份软件备份数据库时如何规划对数据库性能影响小?比如有的看客户需要做增量备份,将增量备份的的时间周期设置每1分在备份一次,此时频繁调用数据库的rman脚步执行任务,性能是否影响很大。

答:

这是一个很实用的问题,可以从以下几个方面考虑:

1.首先要明确,备份的目的是什么?一方面备份的目的是当数据库损坏时进行还原,而还原时的速度很大程度上也取决于备份的方式;另一方面备份还可以用于做测试环境,搭建备机等等。

2.在Oracle中1级增量备份分为累计增量备份和差异增量备份;作用是备份上次备份后所有发生变化的数据块;优点是提高备份速度;原理是每次比对数据文件的SCN号码,备份差异的块,通过开启数据库的块改变跟踪功能,来记录发生改变的快,大大提高差异备份的效率:

3.一分钟一次的增量备份是太频繁了,保护好归档日志本身也可以算是增量备份的一种方式;

4.如果想要减少性能影响甚至没有影响,可以考虑在DataGuard的物理备机进行备份。

---

问:Oracle RAC部署与双活是一回事吗?如不是,二者有什么区别?

答:

严格来讲,Oracle RAC只能算是数据库实例级别的双活,这种技术只保护实例,不保证数据。双活的标准看要求的哪一个级别了,当然还有应用双活,更大一点的双活数据中心等等。

ORACLE 的同城双活可以用 Oracle Extended Distance Clusters,也可以用 OGG 来实现,但OGG 有延时,可能对并发量很大的系统,会存在问题。

---

问:Oracle数据库是如何解决超大表问题的(10G以上)?原理是什么?需要更改应用程序吗?

答:

Oracle处理大表常用的手段主要有三种:分区表和分区索引;并行;物化视图。另外在数据仓库中还会用到星星模型和雪花模型。这些技术的使用都不用修改应用程序。

至于原理的话,可以针对每个技术深入了解。例如物化视图,可以查一下它的两个特性:快速刷新和查询重写。

下面是Oracle超大数据库的一些指导,可以阅读以下。

Database VLDB and Partitioning Guide:http://docs.oracle.com/cd/E11882_01/server.112/e25523/toc.htm

---

数据库安全可以安全基线为基础,涉及主题有:身份鉴别、基本访问控制和审计等,需要专业服务支持。

但实施安全基线比较麻烦,需要评估等一系列影响。还可以考虑专业硬软件,这部分就多了,有原厂的,有第三方的。

实现目的是:事前可预警、事中可控制和事后可追查。

作者:royalwzy
来源:51CTO

时间: 2024-10-06 12:13:55

Oracle数据库安全防范:典型问题和解决思路的相关文章

Oracle数据库安全面面观

专家简介   张文宇:10年以上IT服务相关工作经验,长期从事系统.网络及数据库方面的规划设计.工程实施与运维管理工作,具备丰富的运营商.医疗等行业项目经验.目前专注项目管理.解决方案.售前及咨询类工作.持有Oracle 8i OCP,10g OCM,及思科.微软等厂商产品认证.    1概述   数据库中保存的数据涉及各类账号.密码.个人隐私.安全信息等敏感信息,核心数据是企业的命脉.通过建立完善的信息安全系统,保护企业核心数据尤其是企业商业机密,防止从内.外部泄密,已经成为当前众多企业的共识

Oracle数据库安全之Vault

Oracle用了整整一本书来阐述Valut,有兴趣的童鞋可以参考 http://docs.oracle.com/cd/E11882_01/server.112/e23090/toc.htm,我个人觉得并不需要 对它进行太深入的了解,只有知道有这么一回事就好了. 从宏观方面看,Vault属于Oracle数据库安全领域中-访问控制的部分,可参考<[Oracle] 数据安全概述> 和VPD,OLS不不一样的是,Vault在实际的生产环境下,最主要的目的 是为了防止具有sys账户DBA滥用权限.在没有

出了Linux故障找不到方法?看大牛简单、朴实的解决思路

与windows系统一样,linux操作系统也会存在很多问题和故障,很多linux新手都害怕故障,面对出现的问题显得无可奈何,更有甚者,由此放弃了linux,其实,我们不应该惧怕问题,学习就是一个发现问题与解决问题的过程,只要掌握了解决问题的基本思路,一切故障都会迎刃而解,当然前提是我们已经具备了解决问题的思路和扎实的知识功底. 作为一名合格的linux系统管理员,一定要有一套清晰.明确的解决故障思路,当问题出现时,才能迅速定位.解决问题,这里给出一个处理问题的一般思路: --重视报错提示信息:

PHP新建类问题分析及解决思路_php实例

下面先给大家分析php新建类的问题 index.php文件 function __autoload($_className) { require $_className.'.class.php'; } //新建类?? if (isset($_GET['index'])) { $m=new Main($_GET['index']); }else{ $m=new Main(); } include $m->ui(); main.class.php文件 class Main{ private $ind

Oracle数据库TNS常见错误的解决方法汇总_oracle

TNS是Oracle Net的一部分,是专门用来管理和配置Oracle数据库和客户端连接的一个工具,在大多数情况下客户端和数据库要通讯,就必须配置TNS.本文主要讲述了Oracle数据库TNS常见错误的解决方法如下: 1.ORA-12541:TNS:没有监听器 原因:没有启动监听器或者监听器损坏.若是前者,使用命令net start OracleOraHome10gTNSListener(名字可能有出入)即可;如果是后者,则使用"Net Configuration Assistant"

易虎再谈网站被恶意刷流量和防恶意点击的解决思路

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 一个半月之前,广州易虎发布过一篇<悲惨,网站被恶意刷流量>,介绍了易虎互联遭遇到恶意同行的恶意刷流量时的一些体会和看法,这里,易虎再谈网站被恶意刷流量的解决思路.顺便把话题打开,谈谈防恶意点击的另一种思路. 从恶意刷流量的类型来分,大概可以分为两种,一种是少IP多PV,另一种是多IP多PV. 一.少IP多PV(SEO适用) 此种情

Oracle数据更改后出错的解决方法_oracle

在使用Oracle的过程中我们给系统创建了两个用户:com和comtest.前者存放的是正式库数据,后者存放的测试库数据.它们都有一个taw_rm_user表,存放了使用该系统的用户基本信息,于是就是把其中的password字段全部改成了123456. DMP备份文件创建后,经过一段时间创建了几个新的用户,并且有些旧的用户的其他信息也已经更改了.但是需要把旧用户的密码恢复到从前,直接把备份文件中的taw_rm_user表导入com用户下是肯定不行的.经过分析后,得到了一个解决方案.大致思路是:

ORACLE常见错误代码的分析与解决(二)

oracle|错误|解决 ORACLE常见错误代码的分析与解决(二)   文章源自于  世纪易网   ORA-01578:Oracle data block corrupted(file # num,block # num)   产生原因:当ORACLE访问一个数据块时,由于1.硬件的I/O错误:2.操作系统的I/O错误或缓冲问题:3.内存或paging问 题:4.ORACLE试图访问一个未被格式化的系统块失败:5.数据文件部分溢出等上述几种情况的一种引起了逻辑坏块或者 物理坏块,这时就会报OR

ORACLE常见错误代码的分析与解决(三)

oracle|错误|解决 ORACLE常见错误代码的分析与解决(三)     文章源自于  世纪易网   ORA-00600:internal error code,arguments:[num],[?],[?],[?],[?]   产生原因:这种错误通常为ORACLE的内部错误,只对OSS和ORACLE开发有用.ORA-600的错误经常伴随跟踪文件的状态转储 (系统状态和进程状态),系统状态存储将包括ORACLE RDBMS持有的当前对象的信息,进程状态转储则将显示特殊进程持 有的对象,当进程