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

Oracle数据库安全配置规范

Oracle数据库安全配置规范1概述1.1目的本规范明确了oracle数据库安全配置方面的基本要求。

为了提高oracle数据库的安全性而提出的。

1.2范围本规范适用于XXXXX适用的oracle数据库版本。

2配置标准2.1账号管理及认证授权2.1.1按照用户分配账号[目的]应按照用户分配账号,避免不同用户共享账号。

[具体配置]create user abc1 identified bypassword1;createuser abc2 identifiedby password2;建立role,并给role授权,把role赋给不同的用户删除无关账号。

[检测操作]2.1.2删除无用账号[目的]应删除或锁定与数据库运行、维护等工作无关的账号。

[具体配置]alter user usernamelock;drop user username cascade;[检测操作]2.1.3限制DBA远程登入[目的]限制具备数据库超级管理员(SYSDBA)权限的用户远程登录。

[具体配置]1.在spfile中设置REMOTE_LOGIN_PASSWORDFILE=NONE来禁止SYSDBA用户从远程登陆。

2.在sqlnet.ora中设置SQLNET.AUTHENTICATION_SERVICES=NONE来禁用SYSDBA角色的自动登入。

[检测操作]1.以Oracle用户登入到系统中。

2.以sqlplus‘/assysdba’登入到sqlplus环境中。

3.使用showparameter 命令来检查参数REMOTE_LOGIN_PASSWORDFILE是否设置为NONE。

Show parameter REMOTE_LOGIN_PASSWORDF ILE4.检查在$ORACLE_HOME/network/admin/sqlnet.ora文件参数SQLNET.AUTHENTICATION_SERVICES是否被设置成NONE.2.1.4最小权限[目的]在数据库权限配置能力内,根据用户的业务需要,配置其所需的最小权限。

[具体配置]!给用户赋相应的最小权限grant 权限to username;!收回用户多余的权限revoke权限from username;[检测操作]2.1.5数据库角色[目的]使用数据库角色(ROLE)来管理对象的权限。

[具体配置]1.使用Create Role命令创建角色。

2.使用Grant命令将相应的系统、对象或Role的权限赋予应用用户。

[检测操作]1.以DBA用户登入到sqlplus中。

2.通过查询dba_role_privs、dba_sys_privs和dba_tab_privs等视图来检查是否使用ROLE来管理对象权限。

2.1.6用户属性[目的]对用户的属性进行控制,包括密码策略、资源限制等。

[具体配置]可通过下面类似命令来创建profile,并把它赋予一个用户CREATE PROFILEapp_user2LIMITFAILED_LOGIN_ATTEMPTS 6PASSWORD_LIFE_TIME 60PASSWORD_REUSE_TIME60PASSWORD_REUSE_MAX5PASSWORD_VERIFY_FUNCTION verity_functionPASSWORD_LOCK_TIME 1/24PASSWORD_GRACE_TIME 90;ALTER USER jd PROFILEapp_user2;!可通过设置profile来限制数据库账户口令的复杂程度,口令生产周期和账户的锁定方式等。

!可通过设置profile来限制数据库账户的CPU资源占用。

[检测操作]2.1.7数据字典保护[目的]启用数据字典保护,只有SYSDBA用户才能访问数据字典基础表。

[具体配置]通过设置下面初始化参数来限制只有SYSDBA权限的用户才能访问数据字典。

O7_DICTIONARY_ACCESSIBILITY=FALSE[检测操作]以普通dba用户登入到数据库,不能查看X$开头的表,比如:select * from sys,x$ksppi;1:以Oracle用户登入到系统中。

2:以sqlplus ‘/as sysdba’登入到sqlplus环境中。

3:使用show parameter 命令来检查参数O7_DICTIONARY_ACCESSIBILITY是否设置为FALSE。

Show parameter O7_DICTIONARY_ACCESSIBILITY2.1.8DBA组操作系统用户数量[目的]限制在DBA组中的操作系统用户数量,通常DBA组中只有Oracle安装用户。

[具体配置]通过/etc/passwd 文件来检查是否有其它用户在DBA组中。

[检测操作]无其它用户属于DBA组。

或者通过/etc/passwd文件来检查是否有其它用户在DBA组中。

2.2口令2.2.1口令复杂度[目的]对于采用静态口令进行认证的数据库,口令长度至少6位,并包括数字、小写字母、大写字母和特殊符号4类中至少2类。

[具体配置]为用户建profile,调整PASSOWRD_VERIFY_FUNCTION,指定密码复杂度[检测操作]修改密码为不符合要求的密码,将失败。

Alter user abcd1 identifiedby abcd1;将失败2.2.2口令期限[目的]对于采用静态口令认证技术的数据库,账户口令的生存期不长于90天。

[具体配置]为用户建相关profile,指定PASSWORD_GRACE_TIME为90天。

[检测操作]到期不修改密码,密码将会失败。

连接数据库将不会成功connect username/password报错2.2.3口令历史[目的]对于采用静态口令认证技术的数据库,应配置数据库,使用户不能重复使用最近5次(含5次)内使用的口令。

[具体配置]为用户建profile,指定PASSWORD_REUSE_MAX为5[检测操作]alter user username identified by password;如果password1在5次修改密码内被使用,改操作将不成功。

2.2.4失败登录次数[目的]对于采用静态口令认证技术的数据库,应配置当用户连续认证失败次数超过6次(不含6次),锁定该用户使用的账号。

[具体配置]为用户建profile,指定FAILED_LOGIN_ATTEMPTS为6[检测操作]connectusername/password,连续6次失败,用户被锁定。

连续6次用错误的密码连接用户,第7次时用户将被锁定。

2.2.5默认账号的密码[目的]更改数据库默认账号的密码。

[具体配置]ALTER USER XXX IDENTIFIED BY XXX; 下面是默认用户列表:ANONYMOUSCTXSYSDBSNMPDIPDMSYSEXFSYSHRLBACSYSMDDATAMDSYSMGMT_VIEWODMODM_MTROEOLAPSYSORDPLUGINSORDSYSOUTLNPMQSQS_ADMQS_CBQS_CBADMQS_CSQS_ESQS_OSQS_WSRMANSCOTTSHSI_INFORMTN_SCHEMA SYSSYSMANSYSTEMTSMSYSWK_TESTWKPROXYWKSYSWMSYSXDB[检测操作]不能以用户名作为密码或使用默认密码的账户登入到数据库。

或者1.以DBA用户登入到sqlplus中。

2.检查数据库默认账户是否使用了用户名作为密码或默认密码。

2.2.6遵循操作系统账号策略[目的]Oracle软件账户的访问控制可遵循操作系统账户的安全策略,比如不要共享账户、强制定期修改密码、密码需要有一定的复杂度等。

[具体配置]使用操作系统以及的账户安全管理来保护Oracle软件账户。

[检测操作]每3个月自动提示更改密码,过期后不能登入。

每3个月强制修改Oracle软件账户密码,并且密码需要满足一定的复杂程度,符合操作系统的密码需要。

2.3日志2.3.1登录日志[目的]数据库应配置日志功能,对用户登入进行记录,记录内容包括用户登入使用的账号、登入是否成功、登入时间以及远程登入时使用的IP地址。

[具体配置]创建ORACLE登入触发器,记录相关信息,但对IP地址的记录会有困难1.建表LOGON_TABLE2.建触发器CREATE TRIGGER TRI_LOGONAFTER LOGONON DATABASEBEGININSERTINTO LOGON_TABLE VALUES(SYS_CONTEXT(‘USERENV’,’S ESSION_USER’),SYSDATE);END;触发器与AUDIT会有相应资源开消,请检查系统资源是否充足。

特别是RAC 环境,资源消耗较大。

[检测操作]2.3.2操作日志[目的]数据库应该配置日志功能,记录用户对数据库的操作,包括但不限于以下内容:账号创建、删除和权限修改、口令修改、读取和修改数据库配置、读取和修改业务用户的话费数据、身份数据、涉及通信隐私数据。

记录需要包含用户账号,操作时间,操作内容以及操作结果。

[具体配置]创建ORACLE登入触发器,记录相关信息,但对IP地址的记录会有苦难1.建表LOGON_TABLE2.建触发器CREATE TRIGGER TRI_LOGONAFTER LOGON ON DATABASEBEGININSERT INTOLOGON_TABLEVALUES (SYS_CONTEXT(‘USERENV’,’SESSIO_USER’),SYSDATE);END;#触发器与AUDIT会有相应资源开消,请检查系统资源是否充足。

特别是RAC环境,资源消耗较大。

[检测操作]2.3.3安全事件日志[目的]数据库应配置日志功能,记录对与数据库相关的安全事件。

[具体配置]创建ORACLE登入触发器,记录相关信息,但对IP地址的记录会有困难1.建表LOGON_TABlE2.建触发器CREATE TRIGGERTRI_LOGONAFTER LOGON ONDATABASEBEGININSERT INTO LOGON_TABLE VALUES (SYS_CONTEXT(‘USER ENV’,’SESSION_USER’),SYSDATE);END;触发器与AUDIT会有相应的资源开消,请检查系统资源是否充足。

特别是RAC 环境,资源消耗较大。

[检测操作]2.3.4数据库审计策略[目的]根据业务要求制定数据库审计策略。

[具体配置]1.通过设置参数audit_trail=db或os来打开数据库审计。

2.然后可以使用Audit命令对相应的对象进行审计设置。

[检测操作]对审计的对象进行一次数据库操作,检查操作是否被记录。

相关主题