Oracle数据库
- 身份鉴别
- 查看登陆失败连接超时
- 访问控制
- 安全审计
- 入侵防范
- 数据备份恢复
- 个人信息保护
- 查看数据库版本
select* from v$version;
select * from product_component_version;
身份鉴别
- 查看登录数据库的用户信息
select username,account_status from dba_users;
注:1.为用户分配了账户和权限及相关设置情况,主要看可用账户(例如采用“用户权限列表”);
2.是否已禁用或限制匿名、默认账户的访问权限。
如只有MGMT_UIEW,SYSTEM,SYS,DBSNMP为启用状态,其他均为启用状态,则为符合。
- 查看口令复杂度
select * from dba_profiles where resource_type='password';
注:若为NULL则为未设置
PASSWORD_LOGIN_ATTEMPTS = | 登录尝试次数 |
PASSWORD_LIFE_TIME = unlimited | 未设置口令有效期 |
PASSWORD_ROUSE_MAX = unlimited | 未设置重新启用一个先前用过的口令前必须对该口令进行重新设置的次数(重复用的次数) |
PASSWORD_VERIFY_FUNCITON = NULL | 未设置口令复杂度 |
PASSWORD_GRACE_TIME= | 口令修改的宽限期天数 |
查看登陆失败连接超时
select * from dba_profiles;
注:查看FAILED_LOGIN_ATTEMPTS和PASSWORD_LOCK_TIME参数即可,其最小值分别为10(次)和1(天),某账户即连续登录失败10次则锁定1天。
SELECT LIMIT FROM DBA_PROFILES WHERE PROFILE= ' DEFAULT' AND RESOURCE_NAME='FAILED_LOGIN_ATTEMPTS';
注:查询结果若为’UNLIMITED’则无登录重试次数限制,可以通过ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS 10(重试次数10次)
SELECT LIMIT FROM DBA_PROFILES WHERE PROFILE= 'DEFAULT' AND RESOURCE_NAME= 'PASSWORD_ LOCK_TIME';
注: 查询结果若为’UNLIMITED’则无登录失败次数锁定限制,可以通过ALTER PROFILE DEFAULT LIMIT PASSWORD_LOCK_TIME 1/24(重试失败后锁定一天)
SELECT LIMIT FROM DBA_PROFILES WHERE PROFILE='DEFAULT' AND RESOURCE_NAME='IDLE_TIME';
注:查询结果若为’UNLIMITED’则无登录超时限制
访问控制
- 查看能登录数据库的用户信息:
select username,account_status from dba_users;
注:1.看可用账户及对应权限;
2.是否已禁用或限制匿名、默认账户的访问权限。如只有MGMT_UIEW,SYSTEM,SYS,DBSNMP为启用(OPEN)状态,其他均未启用(expired&locked)状态,则为符合。
3.访谈管理员是否已经重命名SYS、SYSTEM、DBSNMP等默认帐户名或是否修改默认口令,核查是否存在多余、过期账户
* SYS默认口令为CHANGE_ON_INSTALL;
* SYSTEM:MANAGER;
* DBSNMP的默认口令为:DBSNMP。可以登录测试。
- g) 应对重要主体和客体设置安全标记,并控制主体对有安全标记信息资源的访问
通过访谈数据库管理员: 是否对重要主体和客体设置安全标记。 oracle自身应该不具备这个功能,可能要依靠操作系统或者第三方的什么软件如Oracle_Label_Security来实现了。该项一般默认都不符合。
安全审计
show parameter audit_trail;
注:返回值默认为DB,即为普通用户开启审计功能,若为none则为未开启状态;
select * from dba_stmt_audit_opts;和select * from dba_priv_audit_opts;
注:返回结果如User_Name为空值,对这些重要事件开启审计并且这个审计是针对所有用户的,符合要求
show parameter audit_sys_operations;
注:返回结果 audit_sys_operations boolean FALSE 则未对SYSDBA或SYSOPER特权连接时直接发出的SQL语句进行审计,默认为FALSE
- 查看审计记录
javascriptselect * from aud$;
默认符合。
(输入show parameter dump_dest 得出backgroup_dump_dest的值为日志文件的位置)
- 是否对审计记录进行定期备份,采用的技术措施及备份策略是怎么样的?如通过syslog端口导入到日志服务器。
- d) 应对审计进程进行保护,防止未经授权的中断
注:Oracle默认符合此项。
入侵防范
- c) 应通过设定终端接入方式或网络地址范围对通过网络进行管理的管理终端进行限制
注:通过查看oracle的安装路径中的sqlnet.ora文件查看tcp.validnode_checking/tcp/invited_nodes的配置是否为:
tcp.validnode_checking=yes
tcp,invited_nodes=() 得知是否设置了远程连接IP。
大部分未设置,基本都是通过远程管理操作系统间接远程数据库。
- e)应能发现可能存在的已知漏洞,并在经过充分测试评估后,及时修补漏洞;
注:访谈是否进行定期漏扫
数据备份恢复
- 是否对数据库进行本地备份,具体备份位置,备份周期,并且是否做过恢复性测试
- 是否做了异地实时备份(异地位置)
- 是否对数据库采用热冗余方式部署
个人信息保护
- 个人信息加密措施(具体加密算法)