资源预览内容
第1页 / 共22页
第2页 / 共22页
第3页 / 共22页
第4页 / 共22页
第5页 / 共22页
第6页 / 共22页
第7页 / 共22页
第8页 / 共22页
第9页 / 共22页
第10页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Oracle数据库安全配置基线加固操作指导书佛山供电局信息中心2014年4月目录1.1 Oracle数据库安全配置基线 21.1.1 确保数据库多余用户已锁定 21.1.2 口令力口密31.1.3 数据库SYSDBA 帐号登录控制 31.1.4 口令应有复杂度要求 51.1.5 应启用登录失败处理功能 91.1.6 网络通信加密101.1.7 应对数据库主机管理员帐号进行控制 101.1.8 依据安全策略控制用户对资源的访问 121.1.9 实现管理用户的权限分离 131.1.10 应对数据库数据字典保护 141.1.11 确保安全审计配置符合安全审计策略的要求 151.1.12 应保护审计记录避免受到破坏 171.1.13 数据库系统应遵循最小安装的原则 171.1.14 应设置监听口令 171.1.15 应设置监听服务空闲连接超时时间 191.1 Oracle数据库安全配置基线1.1.1 确保数据库多余用户已锁定基线要求查看Oracle用户列表,确保数据库多余用户已锁定基线标准SYS/SYSMAN/SYSTEM和单独创建的业务账户外,其余账户均已锁定检查方法利用sqlplus登录进oracle数据库执行下列语句查看所有用户:select * from all_users;加固方法根据需要执行下列语句:alter user username(需要锁定的用户名)lock;(锁定用户)drop user username (需要删除的用户名)cascade;(删除用户)一般不要去删除1.1.2 口令加密基线要求口令加密基线标准Sqlnet.ora 文件中的 ORA_ENCRYPT_LOGIN=TRUE init.ora 文件中的 dblink_encrypt_long=TRUE检查方法检测 $ORACLE_HOMEnetworkadmin目 录下的 Sqlnet.ora 文件中的ORA_ENCRYPT_LOGIN确保设为TRUE保证客户端口令力口密检测 $ORACLE_HOME/dbfe下的 init.ora 文件中的 dblink_encrypt_long 参数确保设为TRUE保证服务器口令加密加固方法设置 $ORACLE_HOMEnetworkadmin目 录下的 Sqlnet.ora 文件中的ORA_ENCRYPT_LOGIN为TRUE保证客户端口令力口密设置$ORACLE_HOME/dbfe下的 init.ora 文件中的 dblink_encrypt_long参数为TRUE保证服务器口令加密1.1.3数据库SYSDBA帐号登录控制基线要求数据库SYSDBA帐号登录控制基线标准禁止远程登录(同时禁止远程和自动登录会sys用户无法登录数据库)检查方法1、远程登录利用sqlplus登录进oracle数据库使用 show parameter 命令来检查参数 REMOTE_LOGIN_PASSWORDFI“置为 NONE执行语句:Show parameter REMOTE_LOGIN_PASSWORDFILE;Ml 2 、自动登录在服务器上查找 SQLNET.ORA文件,一般是$ORACLE_HOME/network/admin目录中,不过有时路径会不一样(按实际情况查找,直接采用搜索功能也可)。查看该文件 SQLNET.AUTHENTICATION_SERVICES,确保为 none加固方法1、远程登录在 spfile 中设置 REMOTE_LOGIN_PASSWORDFILE=NONE SYSDBAi户从远程登陆 alter spfile REMOTE_LOGIN_PASSWORDFILE=NONE执行下列四个步骤:1、conn / as sysdba;2、 alter system set remote_login_passwordfile=none scope=spfile;3、shutdown immediate;(注意这里要重启才生效)4、Startup;Dadr通匕店写a inountpd.口甘.SQL shnu parwrer rfmoteogin_passuttrdF11 e;MAULlFLrriwt n _ 1 nii n pa-s iniiB(l f 1 Ip5trinj,型:匚、QL2、自动登录在$ORACLE_HOMEnetworkadmin 目录下的 Sqlnet.ora 文件中设置SQLNET.AUTHENTICATION_SERVICES=(NONE)- lii草率文静g嗡IS通格式加重片旧书尉限Jit sqlntc.ora NtiMrk ComllgurAtln 111#: D:oriaci?|ijediuct.l9.1 -BVlb_l upti n r)lnrt .(irnIt Generated Uy Oracle canf iguration tools.中 M K T . 制 ITH1s HT rtflTI 限二底 HUT DENA IF 5. DI RECTO RV PiTH- (THIS HAWS, FZCOHKCT)%! lii t . rscp!rf_t iiw id1.1.4 口令应有复杂度要求基线要求数据库系统管理用户身份标识应具有不易被冒用的特点,口令应有复杂度要求 并定期更换;基线标准PASSWORD_LIFE_TIME: 口令有效时间password_life_time= 90PASSWORD_LOCK_TIME:登录超过有效次数锁定时间password_lock_time=10*1/1440PASSWORD_REUSE_MAX: 口令历史记录保留次数 password_reuse_ max=5PASSWORD_REUSE_TIME: 口令再次被使用的间隔时间password_reuse_ time= 365检查方法利用sqlplus登录进oracle数据库查询视图dba_profiles和dba_usres来检查profile确保已修改。执行语句查看:select * from dba_profiles order by PROFILE;加固方法密码长度检测:创建函数CREATE OR REPLACE FUNCTION my_verify_function(username varchar2,password varchar2,old_password varchar2)RETURN boolean ISn boolean;m integer;differ integer;isdigit boolean;ischar boolean;ispunct boolean;digitarray varchar2(20);punctarray varchar2(25);chararray varchar2(52);BEGINdigitarray:= 0123456789,;chararray:=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ; punctarray:=!#$%&()*+,-/:;?_;-Check if the password is same as the usernameIF NLS_LOWER(password) = NLS_LOWER(username) THENraise_application_error(-20001, Password same as or similar to user); END IF;-Check for the minimum length of the passwordIF length(password) 8 THENraise_application_error(-20002, Password length less than 4);END IF;-Check if the password is too simple. A dictionary of words may be-maintained and a check may be made so as not to allow the words-that are too simple for the password.IF NLS_LOWER(password) IN (welcome, database, account, user, password, oracle, computer, abcd) THEN raise_application_error(-20002, Password too simple);END IF;- -Check if the password contains at least one letter, one digit and one- -punctuation mark.- -1. Check for the digit isdigit:=FALSE;m := length(password);FOR i IN 1.10 LOOPFOR j IN 1.m LOOPIF substr(password,j,1) = substr(digitarray,i,1) THEN isdigit:=TRUE;GOTO findchar;END IF;END LOOP;END LOOP;IF isdigit = FALSE THEN raise_application_error(-20003, Password should contain at least one digit, one character and one punctuation);END IF;- -2. Check for the characterischar:=FALSE;FOR i IN 1.length(chararray) LOOPFOR j IN 1.m LOOPIF substr(password,j,1) = substr(chararray,i,1) THEN ischar:=TRUE;GOTO findpunct;END IF;END LOOP;END LOOP;IF ischar = FALSE THENraise_application_error(-20003, Password should contain at least one digit, one character and one punctuation);END IF;- -3. Check for the punctuation ispunct:=FALSE;FOR i IN 1.length(punctarray) LOOPFOR j IN 1.m LOOPIF substr(password,
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号