中国移动Oracle数据库安全配置手册itel.docx
《中国移动Oracle数据库安全配置手册itel.docx》由会员分享,可在线阅读,更多相关《中国移动Oracle数据库安全配置手册itel.docx(36页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、密 级:文档编号:项目代号:中国移动Oracle数据库安全配置手册Version 1.0中国移动通信有限公司二零零四年十一月拟 制:审 核:批 准:会 签:标准化:版本控制版本号日期参与人员更新说明分发控制编号读者文档权限与文档的主要关系1创建、修改、读取负责编制、修改、审核2批准负责本文档的批准程序3标准化审核作为本项目的标准化负责人,负责对本文档进行标准化审核4读取5读取目 录第一章 目的与范围11.1 目的11.2适用范围11.3数据库类型1第二章 数据库安全规范12.1 操作系统安全12.2 帐户安全22.3密码安全22.4 访问权限安全22.5 日志记录32.6 加密32.7 管理员
2、客户端安全32.8 安全补丁32.9 审计3第三章 数据库安全配置手册43.1 Oracle数据库安全配置方法43.1.1 基本漏洞加固方法43.1.2 特定漏洞加固方法12第四章 附录:数据库安全问题及解决方案174.1 数据库安全问题174.1.1 数据安全基本需求174.1.2 数据安全风险194.1.3 业界采用的安全技术214.1.4Oracle9i的安全解决之道214.2 Oracle9i 安全解决方案 提供端到端的安全体系结构234.2.1 Oracle9i Database 安全机制234.2.2 托管环境的安全264.2.3 网络中的安全基于标准的公共密钥体系结构 (PKI)
3、274.2.4 先进的用户和安全策略管理29 第一章 目的与范围1.1 目的为了加强中国移动集团下属各公司的网络系统安全管理,全面提高中国移动集团下属各公司业务网和办公网的网络安全水平,保证网络通信畅通和信息系统的正常运营,提高网络服务质量,特制定本方法。本文档旨在于规范中国移动集团下属各公司对Oracle数据库进行的安全加固。1.2适用范围本手册适用于对中国移动集团下属各公司业务网和办公网系统的数据库系统加固进行指导。1.3数据库类型数据库类型为Oracle9i Enterprise Edition。第二章 数据库安全规范2.1 操作系统安全要使数据库安全,首先要使其所在的平台和网络安全。然
4、后就要考虑操作系统的安全性。Oracle使用大量用户不需要直接访问的文件。例如,数据文件和联机重做日志文件只能通过Oracle的后台进程进行读写。因此,只有要创建和删除这些文件的数据库管理员才需要在操作系统级直接访问它们。导出转储文件和其他备份文件也必须受到保护。可以把数据复制到其他数据库上,或者是作为复制模式的一部分,或者是提供一个开发数据库。若要保护数据的安全,就要对数据所驻留的每一个数据库及这些数据库的备份进行保护。如果某人能从含有你的数据备份的数据库中带走备份磁带,那么你在数据库中所做的全部保密工作就失去意义。必须防止对全部数据备份的非法访问。2.2 帐户安全为了避免数据库帐户大量耗费
5、系统资源,影响其它用户的正常访问,可以根据应用的实际需要,对数据库帐户所使用的资源(如CPU等)进行限制。这样可以控制恶意攻击者发起大量的连接及事务破坏数据库系统的正常运行,限制数据库帐户的系统资源可以用profile实施。此外,数据库创建后,会存在一些内建的帐户,这些帐户都有初始密码。出于安全的考虑,需要修改这些内建帐户的初始密码,防止恶意攻击者以众所周知的初始密码登录数据库。另外,对不使用的帐户应锁定,消除帐户安全隐患。2.3密码安全用户登录数据库的密码非常重要,一旦密码被窃听,数据库的安全就面临严重的威胁。从Oracle 7.1开始,client 远程连接数据库,Oracle Net 会
6、自动对通过网络传输的登录密码进行加密,保证密码不被明文传输而被窃听。在Oracle7.1之前,可在sqlnet.ora中设置ora_encrypt_login=true。此外,对密码进行严格的管理。可以使用profile来管理口令的终止、重新使用和复杂性。例如,可以限制一个口令的寿命、锁定口令过旧的帐户等。也可以强制一个口令至少有一定程度的复杂性并锁定一个多次注册失败的帐户。这样可以有效地防止黒客猜测帐户口令,减少口令安全隐患。2.4 访问权限安全对帐户的访问权限进行严格控制,给予帐户需要的最少权限,包括系统权限和对象权限。对象权限可以实施到数据库对象的字段级别。2.5 日志记录Oracle的
7、警告日志alertsid.log里记录有数据库的关键活动,如删除表空间等,出于安全的考虑,需有规律地检查警告日志。2.6 加密为了保证敏感数据从client到server在传输过程中不被窃听,可以对数据进行加密,以密文进行传输。2.7 管理员客户端安全为了防止恶意用户冒名顶替管理员从远端客户机连接数据库进行破坏,可以对远端数据库的IP地址进行限定。当然这种方法如果和网络安全一起实施,会更加安全。2.8 安全补丁Oracle虽然具有很高的安全性,但是不可避免还是有安全漏洞,一个比较安全的办法是时刻关注Oracle的安全公告,并及时安装安全补丁。安全公告和补丁位置如下:2.9 审计出于数据库的安全
8、,需要实施审计以跟踪重要的或可疑的数据库活动。审计通常被认为是最有效的安全机制,它确保系统的合法用户做他们应该做的事情,并且能够阻止用户滥用或误用访问权限。通过审计,一个公司可以跟踪其各个用户的活动,从而发现安全上的缺陷。另外,如果用户知道他们正在被跟踪审计,那么就可能降低他们滥用职权的可能性。因为传统型的审计产生数量极大的数据,所以这就很难从中发现有用的信息,因此,Oracle9i引进了精确细化的审计。使用这种广泛精确细化的审计,可以更容易地发现安全缺陷。例如,如果为重复选择社会身份认证号码制定了一条审计策略,则当重复选择该社会身份认证号码时,就会自动发生警报,以警告可能被入侵的部门的系统管
9、理员。然后系统管理员就能采取终止非法数据库会晤的措施。 由服务器强制进行的审计捕获用户的活动、系统权限、语句或者对象 触发器能够记录未被自动包含在审计追踪中的定制信息 精细粒度的、可扩展的审计功能使机构能够定义具体的审计政策,以便在恶意入侵发生时,立刻识别、警告和解决这一入侵-而不管它是来自机构外部还是机构内部 事件处理器提供了确定如何处理由触发器启动的某一审计事件的灵活性 通过保存初始连接的登录用户及以该用户名义进行操作的用户的身份来审计多层系统中的活动第三章 数据库安全配置手册3.1 Oracle数据库安全配置方法3.1.1 基本漏洞加固方法1、 操作系统安全性编号:001名称:操作系统安
10、全性重要等级:高基本信息:若要访问一个数据库,必须首先能够以直接或非直接方式访问正在运行该数据库的服务器。要使数据库安全,首先要使其所在的平台和网络安全。然后就要考虑操作系统的安全性。Oracle使用大量用户不需要直接访问的文件。例如,数据文件和联机重做日志文件只能通过Oracle的后台进程进行读写。因此,只有要创建和删除这些文件的数据库管理员才需要在操作系统级直接访问它们。导出转储文件和其他备份文件也必须受到保护。可以把数据复制到其他数据库上,或者是作为复制模式的一部分,或者是提供一个开发数据库。若要保护数据的安全,就要对数据所驻留的每一个数据库及这些数据库的备份进行保护。如果某人能从含有你
11、的数据备份的数据库中带走备份磁带,那么你在数据库中所做的全部保密工作就失去意义。必须防止对全部数据备份的非法访问。检测内容: 检查承载平台的安全 检查网络的安全建议操作:参见主机和网络安全方案操作结果:无操作结果:确保权限最小化2、 用户环境文件编号:002名称:用户环境文件重要等级:高基本信息:可以使用用户环境文件profile来限制可由用户使用的系统和数据库资源并管理口令限制。如果数据库中没有创建环境文件,将使用缺省环境文件;缺省环境文件指定对于所有用户资源没有限制。检测内容: 检查系统环境文件建议操作:明确环境文件创建是否合理:操作结果:确保资源调用最小化3、 内建帐户编号:003名称:
12、内建帐户连接重要等级:中基本信息:数据库有一些内建帐户,使用这些内建帐户的默认密码,就可以访问该数据库。对不需要使用的内建帐户进行锁定。检测内容: 检查内建帐户的默认密码是否改变,不需要使用的内建帐户是否已锁定。建议操作: 修改 OUTLN密码ALTER USER outln IDENTIFIED BY ; 修改DBSNMP密码ALTER USER dbsnmp IDENTIFIED BY ;编辑$ORACLE_HOME/network/admin/snmp_rw.ora,更改如下行: SNMP.CONNECT.PASSWORD = 其中, 是数据库服务名,是新密码 修改SCOTT密码ALTE
13、R USER scott IDENTIFIED BY ; 锁定没有使用的内建帐户ALTER USER xxx ACCOUNT LOCK;操作结果:无4、 口令管理编号:004名称:口令管理重要等级:高基本信息:在Oracle中,可以使用profile来管理口令的终止、重新使用和复杂性。例如,可以限制一个口令的寿命、锁定口令过旧的帐户。也可以强制一个口令至少有一定程度的复杂性并锁定一个多次注册失败的帐户。检测内容: 检查系统口令设置情况建议操作:如果设置用户环境文件的FAILED_LOGIN_ATTEMPTS资源为5,该帐户允许连续注册失败5次,第6次就会引起帐户被锁定。若要防止一个口令重新使用
14、,可以使用两个环境文件参数的其中一个:PASSWORD_REUSE_MAX或PASSWORD_REUSE_TIME。这两个参数互不相容:如果给其中的一个设了值,另一个就必须设为UNLIMITED。PASSWORD_REUSE_TIME参数规定一个口令可以重新使用前必须经过的天数。例如,如果设置PASSWORD_REUSE_TIME为6 0天,则在6 0天内不能使用同一个口令。PASSWORD_REUSE_MAX参数指定一个口令可以重新使用前必须对其改变的次数。如果试图在这个限制到达前重新使用该口令,Oracle会拒绝口令的修改。可以强制用户的口令符合复杂度标准。例如,可以要求口令的最小长度、不
15、是一些简单的词、至少包括一个数字或标点符号。create profile 和alter profile 命令的PASSWORD_VERIFY_FUNCTION参数指定用于评估口令的函数名。如果用户提出的口令不符合要求,就不会被接受。操作结果:确保口令安全5、 登陆口令编号:005名称:登陆口令重要等级:高基本信息:对于Oracle7.1以前,当从一个客户机连接到数据库服务器,或者通过数据库链接从一个数据库连接到另一个数据库时,除非指定其他形式,否则Oracle将以非加密的形式传输输入的口令。对于Oracle7.1以前,可以设置参数来强制Oracle在传输前将口令值加密。对于Oracle 7.1
16、及以后,Oracle默认将以加密的形式传输输入的口令,不需另外手工配置。检测内容: 检查是否设置了口令加密建议操作:对于Oracle7.1以前,若要启用口令加密,需设置以下参数: 对于客户机,把sqlnet.ora文件中的ORA_ENCRYPT_LOGIN参数设为TRUE。 对于服务器, 把init.ora文件中的DBLINK_ENCRYPT_LOGIN参数设为TRUE。一旦这些参数被设置(并且关闭和重新启动数据库),口令将以加密的形式在客户机到服务器和服务器到服务器之间传送。操作结果:确保登陆安全6、 口令文件验证编号:006名称:口令文件验证重要等级:高基本信息:DBA用户可以由操作系统验
17、证。例如在UNIX系统上,/etc /group文件中DBA组的成员可以内部连接。如果从远程DBA用户连接数据库,建议使用口令文件验证。检测内容: 检查口令文件情况建议操作:1) 使用ORAPWD实用程序创建口令文件。ORAPWD FILE=filename PASSWORD=password ENTRIES=max_users ORAPWD是一个生成口令文件的Oracle实用程序。执行ORAPWD时,除了SYS访问的口令外,还规定要创建的口令文件的名称。ENTRIES参数通知Oracle,要在口令文件中创建多少条目。由于不能在以后扩展该文件,因此要把ENTRIES值设得高一些。如果超出口令文
18、件条目数的范围限额,就收到一个ORA-1996错误。重建该口令文件时,需要重新授予SYSDBA和SYSOPER权限。2) 将init.ora文件中的REMOTE_LOGIN_PASSWORDFILE初始参数设置成EXCLUSIVE,关闭并重新启动数据库,以便变更的参数起作用。3) 将SYSOPER和SYSDBA权限授予需要进行数据库管理的每一个用户。SYSDBA授予用户数据库管理员的权限;SYSOPER使用户能执行数据库操作支持活动。为了授予用户SYSOPER或SYSDBA权限,必须在内部连接。被受权用户现在应能通过使用一个与下述命令类似的命令与数据库连接: connect george/mc
19、h11PROD.WORLD AS SYSDBA如下面例子所示,可以用revoke命令撤消一个用户的SYSDBA或SYSOPER权限:revoke SYSDBA from George;若要查看具有SYSDBA或SYSOPER系统权限的用户,可以查询V$PWFILE_USERS。如果用户拥有SYSDBA权限,V$PWFILE_USERS在其SYSDBA列中将有一个TRUE值;如果拥有SYSOPER权限,将在其SYSOPER列中有一个TRUE值。操作结果:无7、 系统权限编号:007名称:系统权限重要等级:高基本信息:可以使用系统级角色分派以管理数据库的系统级命令。下表列出了Oracle提供的11
20、个系统级角色。使用这些角色就能对授予数据库管理角色的系统级权限进行限制。检测内容: 检查所有用户的权限 检查网络的安全建议操作:明确每个用户的权限级别归属:是否有必要8、 对象权限编号:008名称:对象权限重要等级:高基本信息:对象级权限(object-level privilege)使用户可以访问不属于自己的数据。可以使用角色来减少权限的管理。显式权限也可以使用,并且在一些情况下是必须的。权限通过grant命令创建,存于数据字典中。对表、视图、序列(以及它们的同义词)的访问,加上执行过程、函数、软件包及类型的能力都可以授权给用户。检测内容: 检查对象权限建议操作:下表列出了可以授予对象的权限
21、。可以使用with grant option子句向授与用户传递授权能力,以便在基对象上进一步授权。随着角色的出现,这些权限的管理就容易了。角色是成组的权限,角色可授给用户,这样就大大简化了权限管理进程。操作结果:确保权限最小化9、 日志记录编号:509名称:警告日志文件重要等级:高基本信息:Oracle的警告日志alertsid.log里记录有数据库的关键活动,如删除表空间等,出于安全的考虑,需有规律地检查警告日志。检测内容: 检查警告日志文件建议操作:明确关键的数据库活动是否合理:操作结果:无3.1.2 特定漏洞加固方法一、 对传输数据进行加密如果需要对客户端和服务器端传输的数据进行加密,以
22、防数据窃听,可以修改客户端和服务器端的sqlnet.ora文件,对传输的数据进行加密,以避免明文在网络上的传输。具体请参阅Oracle Advanced Security Administrators GuideConfiguring Data Encryption and Integrity二、对于访问数据库的客户端IP地址进行配置。数据库监听客户端IP地址的连接记录,存储在/$oracle/log/listener.log文件里,请管理员定期查看和分析该日志文件。在/$oracle/network/admin目录下修改SQLNET.ORA文件,增加如下内容:tcp.validnode_ch
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中国移动 Oracle 数据库 安全 配置 手册 itel
限制150内