oracle安全基线Word格式文档下载.docx
- 文档编号:18764194
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:26
- 大小:571.92KB
oracle安全基线Word格式文档下载.docx
《oracle安全基线Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《oracle安全基线Word格式文档下载.docx(26页珍藏版)》请在冰豆网上搜索。
使用showparameter命令来检查参数REMOTE_LOGIN_PASSWORDFILE确保设置为NONE。
执行语句:
ShowparameterREMOTE_LOGIN_PASSWORDFILE;
2、自动登录
在服务器上查找SQLNET.ORA文件,一般是$ORACLE_HOME/network/admin目录中,不过有时路径会不一样(按实际情况查找,直接采用搜索功能也可)。
查看该文件SQLNET.AUTHENTICATION_SERVICES的值,确保为none
在spfile中设置REMOTE_LOGIN_PASSWORDFILE=NONE来禁止SYSDBA用户从远程登陆。
alterspfileREMOTE_LOGIN_PASSWORDFILE=NONE
执行下列四个步骤:
1、conn/assysdba;
2、altersystemsetremote_login_passwordfile=nonescope=spfile;
3、shutdownimmediate;
(注意这里要重启才生效)
4、Startup;
2、自动登录
在$ORACLE_HOME\network\admin目录下的Sqlnet.ora文件中设置SQLNET.AUTHENTICATION_SERVICES=(NONE)
一.1.4口令应有复杂度要求
数据库系统管理用户身份标识应具有不易被冒用的特点,口令应有复杂度要求并定期更换;
PASSWORD_LIFE_TIME:
口令有效时间
password_life_time=90
PASSWORD_LOCK_TIME:
登录超过有效次数锁定时间password_lock_time=10*1/1440
PASSWORD_REUSE_MAX:
口令历史记录保留次数
password_reuse_max=5
PASSWORD_REUSE_TIME:
口令再次被使用的间隔时间
password_reuse_time=365
查询视图dba_profiles和dba_usres来检查profile确保已修改。
执行语句查看:
select*fromdba_profilesorderbyPROFILE;
密码长度检测:
创建函数
CREATEORREPLACEFUNCTIONmy_verify_function
(usernamevarchar2,
passwordvarchar2,
old_passwordvarchar2)
RETURNbooleanIS
nboolean;
minteger;
differinteger;
isdigitboolean;
ischarboolean;
ispunctboolean;
digitarrayvarchar2(20);
punctarrayvarchar2(25);
chararrayvarchar2(52);
BEGIN
digitarray:
='
0123456789'
;
chararray:
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
punctarray:
='
!
"
#$%&
()``*+,-/:
<
=>
?
_'
--Checkifthepasswordissameastheusername
IFNLS_LOWER(password)=NLS_LOWER(username)THEN
raise_application_error(-20001,'
Passwordsameasorsimilartouser'
);
ENDIF;
--Checkfortheminimumlengthofthepassword
IFlength(password)<
8THEN
raise_application_error(-20002,'
Passwordlengthlessthan4'
--Checkifthepasswordistoosimple.Adictionaryofwordsmaybe
--maintainedandacheckmaybemadesoasnottoallowthewords
--thataretoosimpleforthepassword.
IFNLS_LOWER(password)IN('
welcome'
'
database'
account'
user'
password'
oracle'
computer'
abcd'
)THEN
Passwordtoosimple'
--Checkifthepasswordcontainsatleastoneletter,onedigitandone
--punctuationmark.
--1.Checkforthedigit
isdigit:
=FALSE;
m:
=length(password);
FORiIN1..10LOOP
FORjIN1..mLOOP
IFsubstr(password,j,1)=substr(digitarray,i,1)THEN
=TRUE;
GOTOfindchar;
ENDLOOP;
IFisdigit=FALSETHEN
raise_application_error(-20003,'
Passwordshouldcontainatleastonedigit,onecharacterandonepunctuation'
--2.Checkforthecharacter
findchar>
>
ischar:
FORiIN1..length(chararray)LOOP
IFsubstr(password,j,1)=substr(chararray,i,1)THEN
GOTOfindpunct;
IFischar=FALSETHEN
Passwordshouldcontainatleastone
digit,onecharacterandonepunctuation'
--3.Checkforthepunctuation
findpunct>
ispunct:
FORiIN1..length(punctarray)LOOP
IFsubstr(password,j,1)=substr(punctarray,i,1)THEN
GOTOendsearch;
IFispunct=FALSETHEN
endsearch>
--Checkifthepassworddiffersfromthepreviouspasswordbyatleast
--3letters
IFold_passwordISNOTNULLTHEN
differ:
=length(old_password)-length(password);
IFabs(differ)<
3THEN
length(old_password)THEN
ELSE
=length(old_password);
=abs(differ);
FORiIN1..mLOOP
IFsubstr(password,i,1)!
=substr(old_password,i,1)THEN
=differ+1;
IFdiffer<
raise_application_error(-20004,'
Passwordshoulddifferbyat
least3characters'
--Everythingisfine;
returnTRUE;
RETURN(TRUE);
END;
/
引用密码复杂度函数:
alterprofileDEFAULTlimitPASSWORD_VERIFY_FUNCTIONmy_verify_function;
临时性取消密码长度策略命令:
alterprofileDEFAULTlimitPASSWORD_VERIFY_FUNCTIONNULL;
口令有效期:
修改命令:
ALTERPROFILEDEFAULTLIMITPASSWORD_LIFE_TIME180;
查询命令:
select*fromdba_profileswhereresource_name='
PASSWORD_LIFE_TIME'
一.1.5应启用登录失败处理功能
应启用登录失败处理功能,可采取结束会话、限制非法登录次数和自动退出等措施;
连续5次登录失败后锁定用户
利用sqlplus登录进oracle数据库。
执行语句查看:
查看FAILED_LOGIN_ATTEMPTS的值。
执行下列语句:
ALTERPROFILEDEFAULTLIMIT
FAILED_LOGIN_ATTEMPTS5;
修改后:
再次查看
一.1.6网络通信加密
网络通信加密
启用网络通信加密
如果采取远程管理,确保采用加密的方式。
Oracle远程管理加密可以通过OracleNetManager(网络管理器)工具实现,确保使用该工具进行远程管理
Oracle远程管理通过OracleNetManager(网络管理器)工具实现
一.1.7应对数据库主机管理员帐号进行控制
应对数据库主机管理员帐号进行控制。
禁止使用oracle或administrator作为数据库主机管理员帐号
首先,利用sqlplus登录进oracle数据库
方法一:
cmd--输入命令sqlplus/assysdba进入到数据库中
方法二:
登录方式一:
1、打开oracle客户端:
2、登录oracle:
3、注意:
hoststring(主机字符串)就是准备登录的数据库名,一般默认登录开启的那个数据库,所以通常不用填。
4、登入后界面:
运行---输入sqlplusw。
一.1.8依据安全策略控制用户对资源的访问
应启用访问控制功能,依据安全策略控制用户对资源的访问;
1、数据库相关文件目录权限设置
2、关闭XDB服务,禁止PL/SQL外部过程(独立)
3、数据库安装、数据文件、备份等目录的权限应&
lt;
755,windows平台则everyone用户没有写权限;
1、检查数据库安装、数据文件、备份等目录,权限应<
=755,windows则everyone用户没有写权限;
2、确保没有开启XDB服务、不准许PL/SQL外部过程:
a)在SQL*Plus:
showparameterdispatcher;
或者通过安信通数据库扫描,查看确保没有“开启XDB服务”漏洞。
b)查看侦听器配置文件$ORACLE_HOME\network\admin目录下的LISTENER.ORA文件,是否存在ExtProc项,或者通过安信通数据库扫描,查看确保没有“注册了ExtProc服务”漏洞。
1、linux下用chmod设置相应目录权限
2.修改dispatchers参数,
Altersystemsetdispatchers=’’scope=spfile;
3、编辑$ORACLE_HOME\network\admin目录下的LISTENER.ORA文件,删除或注释如下内容:
icache_extproc、PLSExtproc、Extproc
一.1.9实现管理用户的权限分离
应根据管理用户的角色分配权限,实现管理用户的权限分离,仅授予管理用户所需的最小权限;
应用账户没有DBA组权限
public角色权限设置
1、查看确保不存在应用账户属于DBA组权限,
在SQL*Plus:
selectgranteefromdba_role_privswheregranted_role='
DBA'
andgranteenotin('
SYS'
'
SYSTEM'
CTXSYS'
WKSYS'
SYSMAN'
2、使用命令:
select*fromdba_role_privs;
查看用户
对于如下权限:
EXECUTE_CATALOG_ROLE
DELETE_CATALOG_ROLE
DBA_(all),
查看确保只赋DBAs(dba_role_privs)
3、使用命令,connsys/change_on_install;
select*fromV$PWFILE_USERS;
检查哪些用户具有SYSDBA、SYSOPER权限
4、使用命令查看哪些权限授予给了public角色:
SELECTGRANTOR,OWNER,TABLE_NAME,PRIVILEGEFROMDBA_TAB_PRIVSWHEREGRANTEE='
PUBLIC'
确保PUBLIC用户组没有不需要的权限和角色(如:
UTL_SMTP、UTL_TCP、UTL_HTTP、UTL_FILE、DBMS_RANDON、DBMS_SQL、DBMS_SYS_SQL、DBMS_BACKUP_RESTORE)(注:
允许部分模块单独开放)
1、锁定不应该赋予dba权限的应用账户
2、使用命令撤销用户相应权限,如revokeEXECUTE_CATALOG_ROLEfrom<
用户名>
并记录结果。
4、从PUBLIC用户组撤销所有不需要的权限和角色(如:
UTL_SMTP、UTL_TCP、UTL_HTTP、UTL_FILE、DBMS_RANDON、DBMS_SQL、DBMS_SYS_SQL、DBMS_BACKUP_RESTORE)
使用revokeselect(权限)on表名frompublic撤销相应权限
一.1.10应对数据库数据字典保护
应对数据库数据字典保护。
限制只有SYSDBA权限的用户才能访问数据字典
使用showparameter命令来检查参数O7_DICTIONARY_ACCESSIBILITY确保设置为FALSE。
执行语句:
ShowparameterO7_DICTIONARY_ACCESSIBILITY;
通过设置下面初始化参数
执行:
conn/assysdba;
altersystemsetO7_DICTIONARY_ACCESSIBILITY=FALSEscope=spfile;
shutdownimmediate;
Startup;
一.1.11确保安全审计配置符合安全审计策略的要求
应检查主要数据库管理系统,查看确保安全审计配置符合安全审计策略的要求;
审计记录符合安全策略要求
1、查看确保开启审计,在SQL*Plus:
Selectvaluefromv$parameterwherename='
audit_trail'
2、审计日志应包括:
登录日志记录(建议),并检查$ORACLE_BASE/admin/adump目录下确保有数据
3、日志审计策略应OS级别,在SQL*Plus:
(注:
此项会导致日志暴涨,严重影响数据库性能)
4、通过第三方审计管理数据库,包括Pl/sql工具
(南网IT安全基线)
1、执行语句:
Conn/assysdba;
altersystemsetaudit_trail=db(os)scope=spfile;
修改后要重启:
查看:
showparameteraudit_trail;
通过设置参数audit_trail=db或os来启用数据库审计
注意:
(DB启用数据库审计并引导所有审计记录到数据库的审计跟踪
OS启用数据库审计并引导所有审计记录到操作系统的审计跟踪。
可以用AUDIT_FILE_DEST
初始化参数来指定审计文件存储的目录。
2、createtablelogin_log--登入登出信息表
(
session_idintnotnull,--sessionid
login_on_timedate,--登入时间
login_off_timedate,--登出时间
user_in_dbvarchar2(30),--登入的dbuser
machinevarchar2(20),--机器名
ip_addressvarchar2(20),--ip地址
run_programvarchar2(20)--以何程序登入
createorreplacetriggerlogin_on_info--记录登入信息的触发器
afterlogonondatabase
Begin
insertintologin_log(session_id,login_on_time,login_of
f_time,user_in_db,machine,ip_address,run_program)
selectAUDSID,sysdate,null,sys.login_user,machine,SYS_CO
NTEXT('
USERENV'
IP_ADDRESS'
),program
fromv$sessionwhereAUDSID=USERENV('
SESSIONID'
--當前SESSION
createorreplacetriggerlogin_off_info--记录登出信息的触发器
beforelogoffondatabase
updatelogin_logsetlogin_off_time=sysdate
wheresession_id=USERENV('
--当前SESSION
exception
whenothersthen
null
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- oracle 安全 基线