这是3级等保中oracle的检查方法,剩下的检查项可通过询问的方式进行检查。
1.身份鉴别
a.1 查看数据库用户
select username,account_status from dba_users;
b.1 检查用户的profile
select username,account_status,profile from dba_users;
b.2 检查密码策略
select profile,resource_name,limit from dba_profiles where resource_type='PASSWORD' and profile='DEFAULT';
推荐值:
口令被修改后原有口令被修改多少次才允许重新使用: PASSWORD_REUSE_MAX=6
口令被修改后原有口令隔多少天被重新使用: PASSWORD_LIFE_TIME=1800
口令有效期:PASSWORD_REUSE_TIME=90
口令复杂度校验函数:PASSWORD_VERIFY_FUNCTION=VERIFY FUNCTION
c 登录失败
推荐值:
多少次被锁: FAILED_LOGIN_ATTEMPTS=3
口令修改宽限期:PASSWORD_GRACE_TIME=10
账户被锁定后,等待时间:PASSWORD_LOCK_TIME=1/1440 (1/1440=1分钟)
2.访问控制
d.1 检查PUBLIC
select granted_role from dba_role_privs where grantee='PUBLIC';
推荐值:
null
d.2 数据字典访问
Show parameter 07_DICTIONARV_ACCESSIBILITY
推荐值
false
e 删除多余或过多账户
select username,account_status from dba_users where username='SCOTT' or username='CTXSYS' or username='DMSYS' or username='OLAPSYS';
3.安全审计
a.1 启用审计
show parameter audit_sys_operations;
推荐值:
audit_sys_operations=TRUE
a.2 启用审计
show parameter audit_trail;
推荐值:
audit_trail=os或db
b 关键操作审计
select * from dba_stmt_audit_opts;
推荐值:
f 审计记录保护
select grantee from dba_tab_privs where table_name='AUD$' and grantee not in('DELETE_CATALOG_ROLE') and grantee not in (select grantee from dba_role_privs where granted_role='DBA');
推荐值:
null
4.资源控制
select resource_name,limit from dba_profiles where profile='DEFAULT' and resource_type='KERNEL';
推荐值
idle_time=10