当前位置:文档之家› Oracle数据库安全配置手册

Oracle数据库安全配置手册

Oracle数据库安全配置手册Version 1.0版本控制目录第一章目的与范围 (1)1.1目的 (1)1.2适用范围 (1)1.3数据库类型 (1)第二章数据库安全规范 (1)2.1操作系统安全 (1)2.2帐户安全 (2)2.3密码安全 (2)2.4访问权限安全 (2)2.5日志记录 (3)2.6加密 (3)2.7管理员客户端安全 (3)2.8安全补丁 (3)2.9审计 (3)第三章数据库安全配置手册 (4)3.1O RACLE数据库安全配置方法 (4)3.1.1 基本漏洞加固方法 (4)3.1.2 特定漏洞加固方法 (12)第一章目的与范围1.1 目的为了加强宝付的数据安全管理,全面提高宝付各业务系统的数据安全水平,保证业务系统的正常运营,提高业务服务质量,特制定本方法。

本文档旨在于规范宝付对各业务系统的Oracle数据库进行安全加固处理。

1.2适用范围本手册适用于对宝付公司的各业务系统的数据库系统加固进行指导。

1.3数据库类型数据库类型为Oracle 11g。

第二章数据库安全规范2.1 操作系统安全要使数据库安全,首先要使其所在的平台和网络安全。

然后就要考虑操作系统的安全性。

Oracle使用大量用户不需要直接访问的文件。

例如,数据文件和联机重做日志文件只能通过Oracle的后台进程进行读写。

因此,只有要创建和删除这些文件的数据库管理员才需要在操作系统级直接访问它们。

导出转储文件和其他备份文件也必须受到保护。

可以把数据复制到其他数据库上,或者是作为复制模式的一部分,或者是提供一个开发数据库。

若要保护数据的安全,就要对数据所驻留的每一个数据库及这些数据库的备份进行保护。

如果某人能从含有你的数据备份的数据库中带走备份磁带,那么你在数据库中所做的全部保密工作就失去意义。

必须防止对全部数据备份的非法访问。

2.2 帐户安全为了避免数据库帐户大量耗费系统资源,影响其它用户的正常访问,可以根据应用的实际需要,对数据库帐户所使用的资源(如CPU等)进行限制。

这样可以控制恶意攻击者发起大量的连接及事务破坏数据库系统的正常运行,限制数据库帐户的系统资源可以用profile实施。

此外,数据库创建后,会存在一些内建的帐户,这些帐户都有初始密码。

出于安全的考虑,需要修改这些内建帐户的初始密码,防止恶意攻击者以众所周知的初始密码登录数据库。

另外,对不使用的帐户应锁定,消除帐户安全隐患。

2.3密码安全用户登录数据库的密码非常重要,一旦密码被窃听,数据库的安全就面临严重的威胁。

从Oracle 7.1开始,client 远程连接数据库,Oracle Net 会自动对通过网络传输的登录密码进行加密,保证密码不被明文传输而被窃听。

在Oracle7.1之前,可在sqlnet.ora中设置ora_encrypt_login=true。

此外,对密码进行严格的管理。

可以使用profile来管理口令的终止、重新使用和复杂性。

例如,可以限制一个口令的寿命、锁定口令过旧的帐户等。

也可以强制一个口令至少有一定程度的复杂性并锁定一个多次注册失败的帐户。

这样可以有效地防止黒客猜测帐户口令,减少口令安全隐患。

2.4 访问权限安全对帐户的访问权限进行严格控制,给予帐户需要的最少权限,包括系统权限和对象权限。

对象权限可以实施到数据库对象的字段级别。

2.5 日志记录Oracle的警告日志alertsid.log里记录有数据库的关键活动,如删除表空间等,出于安全的考虑,需有规律地检查警告日志。

2.6 加密为了保证敏感数据从client到server在传输过程中不被窃听,可以对数据进行加密,以密文进行传输。

2.7 管理员客户端安全为了防止恶意用户冒名顶替管理员从远端客户机连接数据库进行破坏,可以对远端数据库的IP地址进行限定。

当然这种方法如果和网络安全一起实施,会更加安全。

2.8 安全补丁Oracle虽然具有很高的安全性,但是不可避免还是有安全漏洞,一个比较安全的办法是时刻关注Oracle的安全公告,并及时安装安全补丁。

安全公告和补丁位置如下:/deploy/security/alerts.htm2.9 审计出于数据库的安全,需要实施审计以跟踪重要的或可疑的数据库活动。

审计通常被认为是最有效的安全机制,它确保系统的合法用户做他们应该做的事情,并且能够阻止用户滥用或误用访问权限。

通过审计,一个公司可以跟踪其各个用户的活动,从而发现安全上的缺陷。

另外,如果用户知道他们正在被跟踪审计,那么就可能降低他们滥用职权的可能性。

因为传统型的审计产生数量极大的数据,所以这就很难从中发现有用的信息,因此,Oracle9i引进了精确细化的审计。

使用这种广泛精确细化的审计,可以更容易地发现安全缺陷。

例如,如果为重复选择社会身份认证号码制定了一条审计策略,则当重复选择该社会身份认证号码时,就会自动发生警报,以警告可能被入侵的部门的系统管理员。

然后系统管理员就能采取终止非法数据库会晤的措施。

✓由服务器强制进行的审计捕获用户的活动、系统权限、语句或者对象✓触发器能够记录未被自动包含在审计追踪中的定制信息✓精细粒度的、可扩展的审计功能使机构能够定义具体的审计政策,以便在恶意入侵发生时,立刻识别、警告和解决这一入侵--而不管它是来自机构外部还是机构内部✓事件处理器提供了确定如何处理由触发器启动的某一审计事件的灵活性✓通过保存初始连接的登录用户及以该用户名义进行操作的用户的身份来审计多层系统中的活动第三章数据库安全配置手册3.1 Oracle数据库安全配置方法3.1.1 基本漏洞加固方法1、操作系统安全性2、用户环境文件3、内建帐户4、口令管理5、登陆口令6、口令文件验证7、系统权限是否有必要8、对象权限编号:008 名称:对象权限重要等级:高基本信息:对象级权限(object-level privilege)使用户可以访问不属于自己的数据。

可以使用角色来减少权限的管理。

显式权限也可以使用,并且在一些情况下是必须的。

权限通过grant命令创建,存于数据字典中。

对表、视图、序列(以及它们的同义词)的访问,加上执行过程、函数、软件包及类型的能力都可以授权给用户。

检测内容:✓检查对象权限建议操作:下表列出了可以授予对象的权限。

9、日志记录3.1.2 特定漏洞加固方法一、对传输数据进行加密如果需要对客户端和服务器端传输的数据进行加密,以防数据窃听,可以修改客户端和服务器端的sqlnet.ora文件,对传输的数据进行加密,以避免明文在网络上的传输。

具体请参阅Oracle Advanced Security Administrator’s Guide——Configuring Data Encryption and Integrity二、对于访问数据库的客户端IP地址进行配置。

数据库监听客户端IP地址的连接记录,存储在/$oracle/log/listener.log文件里,请管理员定期查看和分析该日志文件。

在/$oracle/network/admin目录下修改SQLNET.ORA文件,增加如下内容:tcp.validnode_checking=YEStcp.excluded_nodes=(192.168.0.1)对于访问数据库客户端IP的限制,借助操作系统或者防火墙等设备实现也是可行的。

三、安装最新补丁程序Oracle虽然具有很高的安全性,但是不可避免还有安全漏洞,一个比较安全的办法是时刻关注Oracle的安全公告,并及时安装安全补丁。

安全公告和补丁位置如下:m由于涉及Oracle数据库的业务都是非常关键的,在安装安全补丁前一定要做好备份工作,联系Oracle公司或者你的开发商,定时做补丁升级是非常必要的。

四、对敏感的数据库活动实施审计对敏感的数据库活动,如删除表等进行审计。

Oracle提供的数据库审计类型有:语句审计:监视由一个或者多个特定用户或者所有用户提交的SQL语句。

这种类型的审计范围非常广。

●特权审计:监视数据库里一个或者多个特定用户或者所有用户使用的系统权限,比如audit create table。

这种类型的审计范围是中等的。

●模式对象审计:监视一个模式里在一个或者多个对象上发生的行为,比如:audit insert into EMPLOYEES。

这种类型的审计是非常有重点的,范围狭窄。

设定初始化参数audit_trail为DB或OS。

DB表示将审计记录写到数据库的AUD$表里;OS表示将审计记录写到操作系统文件中,默认生成在$ORACLE_HOME/rdbms/audit目录,审计文件也可以用初始化参数AUDIT_另外指定。

启用审计在AUDIT_OPTIONS表里有144个可以审计的审计命令,如:create table, insert, select等。

根据实际需要确定要审计的类型,比如,若需知道什么时候一个新表被加到数据库,可通过下列命令启用审计:audit create table by <username>;查询审计select * from dba_audit_trail;五、用户管理5-1 过多的用户被授予DBA的权限用命令SELECT 的'DBA'选项列出所有被授予了DBA角色的用户,根据需要分配用户角色,命令:SELECT GRANTEE FROM DBA_ROLE_PRIVS WHERE GRANTED=’DBA’。

5-2 存在把权限授给PUBLIC的情况删除不需要的帐号,比如SCOTT等示例用户;对于不明确是否能删除的用户可以暂时锁定该用户,或赋予非常复杂的口令。

删除用户及其所有的数据对象命令:drop user dbuser cascade;取消用户角色权限:revoke connect from dbuser;应检查的用户名包括:SCOTT, DBSNMP, TRACESVR, CTXSYS, MDSYS, DEMO, CTXDEMO, APPLSYS, PO8, NAMES, SYSADM, ORDPLUGIN, OUTLN, ADAMS, BLAKE, JONES, CLARK, AURORA$ORB$UNAUTHENTICATED, APPS。

5-3 连接时使用空口令。

修改口令文件PROFILE,防止利用空口令或默认口令进行连接。

六、限制UTL_FILE的使用与应用系统开发商确认是否有用户需要使用UTL_FILE程序包。

如果没有用户使用,应收回普通用户对该包的执行权限。

如果确实有用户需要使用UTL_FILE包,应确保只有确实需要的用户才拥有UTL_FILE的执行权。

同时在init.ora中设定参数“UTL_”使用UTL_FILE包的程序确实需要访问的目录。

与应用系统开发商商议,是否可以改变DB_LINK的创建方式,在创建DB_LINK时不指定用户名和口令。

相关主题