您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > Oracle数据库系统安全配置手册
附件四:Oracle数据库系统安全配置本标准适用于Unix/Linux操作系统下的Oracle数据库系统,版本为8i、9i、10g。1安全补丁的更新加固目的及时更新数据库的安全补丁,减少数据库系统可能受到的攻击。加固方法查看,下载并安装相关的安全补丁。参考Oracle厂商建议,仅对已发现的特定漏洞或缺陷安装相应补丁。2$ORACLE_HOME/bin目录权限保护加固目的确保对$ORACLE_HOME/bin目录的访问权限尽可能少加固方法运行命令:chown–Roracle:dba$ORACLE_HOME/bin验证:ls–l$ORACLE_HOME/bin确保该目录下的文件属主为oracle用户,且其他用户没有写权限。3Oracle数据字典的保护加固目的设置保护后,可防止其他用户(具有‘ANY’systemprivileges)使用数据字典时,具有相同的‘ANY’权限。加固方法使用文本方式,打开数据库配置文件initsid.ora;更改以下参数O7_DICTIONARY_ACCESSIBILITY=。1.Oracle9i、10g:缺省值是False2.Oracle8i:缺省值是True,需要改成False3.如果用户必须需要该权限,赋予其权限SELECTANYDICTIONARY验证:SQLshowparameterO7_DICTIONARY_ACCESSIBILITYNAMETYPEVALUE----------------------------------------------------------------------------O7_DICTIONARY_ACCESSIBILITYbooleanFALSE4加强访问控制加固目的设置正确识别客户端用户,并限制操作系统用户数量(包括管理员权限、root权限、普通用户权限等)加固方法1.使用文本方式,打开数据库配置文件initsid.ora;设置参数REMOTE_OS_AUTHENT值为FALSE(SAP系统不可设置为False)2.在数据库的账户管理中删除不必要的操作系统账号设置(需重启数据库):altersystemsetremote_os_authent=falsescope=spfile;验证:SQLshowparameterremote_os_authentNAMETYPEVALUE----------------------------------------------------------------------------remote_os_authentbooleanFALSE5监听程序的管理加固目的通过设置listener.ora文件中的参数ADMIN_RESTRICTIONS_listener_name来防止远程对监听程序的非授权管理。加固方法在listener.ora文件中,设置ADMIN_RESTRICTIONS_(listener_name)=ON。LISTENER加访问密码:(only9i)$ORACLE_HOME/network/admin/listener.oraPASSWORDS_LISTENER=10g:(监听默认为本地操作系统帐号认证,即禁止远程管理)验证:Lsnrctlstatus,查看输出SecurityON:LocalOSAuthentication6关闭Extproc功能加固目的由于extproc存在安全问题允许用户不进行身份认证就可以调用系统函数,因此,如果不需要该功能必须关闭。加固方法修改TNSNAMES.ORA和LISTENER.ORA文件,删除以下条目:icache_extprocPLSExtprocExtproctnsnames.ora:#EXTPROC_CONNECTION_DATA=#(DESCRIPTION=#(ADDRESS_LIST=#(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC0))#)#(CONNECT_DATA=#(SID=PLSExtProc)#(PRESENTATION=RO)#)#)listener.ora:#(SID_DESC=#(SID_NAME=PLSExtProc)#(ORACLE_HOME=/opt/oracle/product/10.2.0/db_1)#(PROGRAM=extproc)#)#(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC0))7密码文件管理加固目的配置密码文件的使用方式加固方法使用文本方式,打开数据库配置文件initsid.ora;设置参数REMOTE_LOGIN_PASSWORD_FILE=NONE.(只能使用OS)None:使得oracle不使用密码文件,只能使用OS认证,不允许通过不安全网络进行远程管理。Exclusive:可以使用唯一的密码文件,但只限一个数据库。密码文件中可以包括除了sys用户的其他用户。Shared:可以在多个数据库上使用共享的密码文件。但是密码文件中只能包含sys用户。设置:(需重启数据库)altersystemsetremote_login_passwordfile=nonescope=spfile;验证:SQLshowparameterremote_login_passwordfileNAMETYPEVALUE----------------------------------------------------------------------------remote_login_passwordfilestringNONE8用户账号管理加固目的为了安全考虑,应用锁定Oracle当中不需要的用户;或改变缺省用户的密码。加固方法锁定不需要的用户,使用SQL语句:ALTERUSERuserPASSWORDEXPIRE;注意锁定MGMT_VIEW、DBSNMP、SYSMAN帐号或修改密码。(如果要使用DBConsole,DBSNMP、SYSMAN不能锁定,请修改密码)DIP、EXFSYS、OUTLN、TSMSYS、WMSYS默认已锁定,请验证。9最小权限使用规则加固目的1.应该只提供最小权限给用户(包括SYSTEM和OBJECT权限)2.从PUBLIC组中撤回不必要的权限或角色。(如:UTL_SMTP、UTL_TCP、UTL_HTTP、UTL_FILE、DBMS_RANDON、DBMS_SQL、DBMS_SYS_SQL、DBMS_BACKUP_RESTORE)加固方法撤销不需要的权限和角色,使用SQL语句REVOKEEXECUTEONSYS.UTL_HTTPFROMPUBLIC;REVOKEEXECUTEONSYS.UTL_FILEFROMPUBLIC;REVOKEEXECUTEONSYS.UTL_SMTPFROMPUBLIC;REVOKESELECTONALL_USERSFROMPUBLIC;验证:OEM管理器中,安全性-用户-PUBLIC-已授予的对象权限colppformata35SELECTs.privilege||'ON'||s.owner||'.'||NVL(l.longname,s.table_name)pp,s.grantableFROMsys.dba_tab_privss,javasnmlWHEREs.table_name=l.short(+)ANDs.grantee='PUBLIC'ands.privilege='EXECUTE'ands.table_namelike'UTL%';10DBSNMP用户的保护加固目的Oracle数据库系统如果采用典型安装后,自动创建一个叫做DBSNMP的用户,该用户允许Oracle系统的智能代理(intelligentAgent),该用户的缺省密码也是“DBSNMP”。如果忘记修改该用户的口令,任何人都可以通过该用户存取数据库系统。其他有威胁的帐号还有:CTXSYS,MDSYS,ORDPLUGINS,ORDSYS,OUTLN等。加固方法锁定该账号,或者更换密码11SYS用户加固目的Oracle数据库系统安装后,自动创建一个叫做SYS的数据库管理员用户,当该用户sysdba方式连接数据库时,便具有全部系统权限,因而对它的保护尤为重要。加固方法更换SYS用户密码,符合密码复杂度要求;新建一个DBA用户,作为日常管理使用。12密码策略加固目的在Oracle,我们可以通过修改用户概要文件来设置密码的安全策略,可以自定义密码的复杂度。在概要文件中有以下参数是和密码安全有关心的:FAILED_LOGIN_ATTEMPTS:最大错误登录次数PASSWORD_GRACE_TIME:口令失效后锁定时间PASSWORD_LIFE_TIME:口令有效时间PASSWORD_LOCK_TIME:登录超过有效次数锁定时间PASSWORD_REUSE_MAX:口令历史记录保留次数PASSWORD_REUSE_TIME:口令历史记录保留时间PASSWORD_VERIFY_FUNCTION:口令复杂度审计函数加固方法解释:PASSWORD_LIFE_TIME:口令有效时间口令使用期限(应用系统帐号暂不修改)。password_grace_time指的是在你的密码已经过期以后,第一次登录时间开始往后统计,使系统可以使用的日期限度.PASSWORD_REUSE_TIME是重用密码的最小时间间隔,单位是天。可以给出整数或分数,如1/1440表示1分钟(出于效率的考虑,oracle不会每分钟都去进行检查,一般来说,有5分钟左右的误差,因此如果这个数小于1/144则没有多大的意义)。PASSWORD_REUSE_MAX是重用密码前更换密码的最小次数。ALTERPROFILEdefaultLIMITFAILED_LOGIN_ATTEMPTS60;ALTERPROFILEdefaultLIMITPASSWORD_LOCK_TIME0.5;修改Oracle提供的验证函数文件$ORACLE_HOME/rdbms/admin/utlpwdmg.sql其中IFlength(password)4一行改为8,并将最后一段修改为ALTERPROFILEDEFAULTLIMITFAILED_LOGIN_ATTEMPTS60PASSWORD_LOCK_TIME30/1440PASSWORD_VERIFY_FUNCTIONverify_function;执行startutlpwdmg.sql设置后,密码复杂度必须包含字母、数字、标点(密码不区分大小写),最小长度为8。最大错误登录次数为60次,账号锁定时间为30分钟验证:OEM-》安全性-》概要文件select*fromdba_profiles;创建验证函数:CREATEORREPLACEFUNCTIONverify_function(usernamevarchar2,passwordvarchar2,old_passwordvarchar2)RETURNbooleanISnboolean;minteger;differinteger;isdigitboolean;ischarboolean;ispunctboolean;digitarrayvarchar2(20);punctarrayvarchar2(25);chararrayvarchar2(52);BEGINdigitarray:='0123456789';chararray:='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';punctarray:='!#$%&()``*+,-/:;=?_';--CheckifthepasswordissameastheusernameIFNLS_LOWER(password)=NLS_LOWER(username)THENraise_application_error(-20001,
本文标题:Oracle数据库系统安全配置手册
链接地址:https://www.777doc.com/doc-2884899 .html