等保测评oracle数据库加固

控制点

安全要求

要求解读

测评方法

预期结果或主要证据

身份鉴别

a)应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换

应检查Oracle数据库的口令策略配置,查看其身份鉴别信息是否具有不易被冒用的特点,例如,口令足够长,口今复杂(如规定字符应混有大,小写字母数字和特殊字符),口令定期更新,新旧口令的替换要求

1)访谈数据库管理员系统用户是否已设置密码,并查看登录过程中系统账户是否使用了密码进行验证登录

2)查看是否启用口令复杂度函数: select limit from dba_profiles where profile= ' DEFAULT' and resource_name=' PASSWORD_VERIFY_FUNCTION'

3)检查utlpwdmg.sql 中“-- Check for the minimum length of the password“部分中“length(password)<"后的值

4) PASSWORD_LIFE_TIME(口令过期时限)

1)需要登录密码

2)dba_profiles 策略中PASSWORD_VERIFY_FUNCTION'的值不为UNLLIMITED

3)utlpwdmg.sql 中“-- Check for the minimum length of the password“部分中“length(password)<"后的值为8或以上

4)dba_profiles策略中 PASSWORD_LIFE_TIME不为UNLIMITED

b)应具有登录失败处理功能,应配置并启用结束会话、限制非法登录次数和当登录连接超时自动退出等相关措施

应检查数据库系统,查看是否已配置了鉴别失败处理功能,并设置了非法登录次数的限制值,对超过限制值的登录终止其鉴别会话或临时封闭帐号。查看是否设置网络登录连接超时,并自动退出

1)查看是否启用登录失败限制策略,执行: select limit from dba_profiles where profile= ' DEFAULT' and resource name=' FAILED_LOGIN_ATTEMPTS

2)查看是否启用登录失败锁定策略,执行: select limit from dba_profiles where profile= 'DEFAULT' and resource_ name= PASSWORD_ LOCK_TIME"

3)查看是否启用登录超时退出策略,执行:select limit from dba_profiles= 'DEFAULT and resource name= 'IDLE_ TIME'

1)dba_pofiles策略中 FAILED_LOGIN_ATTEMPTS不为UNLIMITED

2)dba_pofiles策略中 PASSWORD_LOCK_TIME不为UNLIMITED

3)dba_pofiles策略中IDLE_ TIME不为UNLIMITED

c)当进行远程管理时,应采取必要措施、防止鉴别信息在网络传输过程中被窃听

为了防止包括鉴别信息在内的敏感信息在网络传输过程中被窃听,应限制从远程管理数据,如果业务模式需要从远程进行管理,则应提供包括SSH在内的方式对传输数据进行加密

1)查看initsSID.ora (%ORAClE_HOMEdb_1NETWORKADMIN)中REMOTE_0S _AUTHENT的赋值

2)查看listene.ora (%ORAClE_HOMEdb_1NETWORKADMIN)文件中的"LISTENER”-"DESCRIPTION "-"ADDRESS_LIST"-"ADDRESS"- "PROTOCOL"项目的

赋值 

3)执行show parameter remote_login_passwordfile

1)符合,且本项为false, 则符合(为true,远程操作系统认证。

2)应存在以下项目: PROTOCOL=TCPS (实际为TCP)

3)结果应为NONE,远程无法登录,Exclusive (唯 一的数据库密码文件登录

d)应采用口令、密码技术、生物技术等两种或两种以上组合的鉴别技术对用户进行身份鉴别,且其中一种鉴别技术至少应使用密码技术来实现

Oracle不能集成其他身份鉴别措施,应通过对操作系统层面实现双因素,强化数据库安全

查看和询问系统管理员在登录数据库的过程中使用了哪些身份鉴别方法,是否采用了两种或两种以上组合的鉴别技术,如口令、数字证书Ukey. 令牌、指纹等,是否有一种鉴别方法使用密码技术

除口令之外,采用了另外一种鉴别机制,此机制采用了密码技术,如调用了密码机或采取SM1-SM4等算法

访问控制

a)应对登录的用户分配账户和权限

应检查数据库系统的安全策略,查看业务数据的管理员是否具有系统管理功能,业务数据库的操作人员是否具有删除数据库表或存储过程的权限

查看每个登录用户的角色和权限,是否是该用户所需的最小权限

MGMT_UIEW, SYS, SYSTEM, DBSNMP, SYSMAN是open的状态,其他都是锁定

b)应重命名或删除默认账户,修改默认账户的默认口令

1)在oracle系统安装时存在部分默认口今,如

SYS:CHANGE_ON_INSTALL

SYSTEM:MANAGER

2)常用口令:

oracle:oracle/admin/ora92(ora+版本)

sys: oracle/admin

system: oralce/admin

1)登录验证sys的口令是否为CHANGE_ON_INSTALL

2)登录验证system的口令是否为manager

3)登录验证dbsnmp的口今是否为dbsnmp

1)2)3)使用默认口令无法登陆数据库账户

c)应及时删除或停用多余的、过期的账户,避免共享账户的存在

应删除数据库中多余的过期的账户,如测试帐号等

1)在sqIplus中执行命令: select username , account_ status_from dba users

2)查看返回结果中是否存在scott. out1n、 ordsys 等范例数据库帐号

3)针对上述命令获得的用户帐号,查看是否存在过期账户,询问数据库管理员是否每一个账户均为正式、有效的账户

4)针对上述命令获得的用户帐号,询问是否存在多人共享账户的情况

1)不存在示例帐户

2)应不存在acount status 为“expired"的帐户;所有帐户均为必要的管理帐户或者数据库应用程序帐户(不存在测试帐户/临时账户)

3)每一个数据库帐户与实际用户应为一一对应关系

4)不存在多人共享帐户的情况

d)应授予管理用户所需的最小权限,实现管理用户的权限分离

在Oracle数据库中,尽量将数据库系统特权用户的权限进行分离

询问是否由不同员工分别担任操作系统管理员与数据库管理员

由不同员工分别担任操作系统管理员与数据库管理员

d)应由授权主体配置访问控制策略,访问控制策略规定主体对客体的访问规则

应检查数据库系统的安全策略,查看是否明确主体(如用户)以用户和/或用户组的身份规定对客体(如文件或系统设备,目录表和存取控制表等)的访问控制,覆盖范围是否包括与信息安全直接相关的主体(如用户)和客体(如文件,数据库表等)及它们之间的操作[如读、写或执行)

询问数据库管理员,数据库系统是否由特定账户进行配置访问控制策略,具体访问控制策略是什么

由特定账户进行配置访问控制策略,并根据用户角色限制账户权限

e)访问控制的粒度应达到主体为用户级或进程级,客体为文件、数据库表级

明确提出访问控制的粒度要求,重点目录的访问控制的主体可能为某个用户或某个进程,应能够控制用户或进程对文件、数据库表等客体的访问

询问数据库管理员, 访问控制的粒度主体是否用户级或进程级,客体是否为文件、数据库表级

由管理用户进行用户访问权限分配进行设置,依据访问控制策略,对各类文件和数据库表级进行访问

f)应对重要主体和客体设置安全标记,并控制主体对有安全标记信息资源的访问

应通过Oracle数据库或其它措施对重要的信息资源设置敏感标记,从而实现强制访问控制功能

1)检查是否安装Oracle Lable Security模块

2)查看是否创策略:SELECT policy_name,status form DBA_SA_POLICIES

3)查看是否创建级别: SELECT * form dba_sa_levels ORDER BY level_number

4)查看标签创建情况: select * from dba_sa_labels.

5)询问重要数据存储表格名称

6)查看策略与模式|表的对应关系: select * from dba_sa_tables policles, 判断是否针对重要信息资源设置敏感标签

1)返回的用户用户中应存在'LBACSYS'

2)存在状态为"enable' 的标签策略

3) -4)返回结果不为空

5)重要资源所在的表格名称

6)返回结果应不为空,且项目包含5)的结果

安全审计

a)应启用安全审计功能,审计覆盖到每个用户,对重要的用户行为和重要安全事件进行审计

应检查数据库系统是否开启安全审计功能,查着当前审计范围是否覆盖到每个用户

1)执行: selecet value form v$parameter where name='audit_trail', 查看是否开启审计功能

2)用不同的用户登录数据库系统并进行不同的操作,在Oracle数据库中查看日志记录是否满足要求。

1) audit_trail 结果应不为pone

2)可在Oracle数据库中查看不同的用户登录数据库系统并进行不同的操作日志记录。

b)审计记录应包括事件的日期和时间,用户、事件类型,事件是否成功及其他与审计相关的信息

应检查数据库系统,查看审计策略是否覆盖系统内重要的安全相关事件,例如,用户登录系统、自主访问控制的所有操作记录、重要用户行为(如增加/删除用户,删除库表)等

1)show parameter audit_trail

?>show parameter audit_sys_operations

3)select sel,upd,del,ins,gra from dba_obj_audit _opts

4)select sel,upd,del,ins,gra from dba_stmt_audit _opts

5)select sel,upd,del,ins,gra from dba_priv_audit _opts

6)记录一条日志内容,确认其包括事件发生的日期与时间、触发事件的主体与客体、事件的类型、事件成功或失败、身份鉴别事件中请求的来源(如末端标识符)、事件的结果等内容

1)应不为none

2)应为true

3)返回对象审计选项,应不全部为“-/-”

4)返回语句审计选项,应不全部为“-/-”

5)返回特权审计选项,应不全那为“-/-”

6)默认满足

c)应对审计记录进行保护,定期备份,避免受到未预期的删除、修改或覆盖等

应检查Oracle数据库系统, 查看是否对日志进行了权限设置,非授权人员不能对日志进行操作,另外,应防止审计日志空间不够而导致无法记录日志的情况发生

是否严格限制用户访问审计记录的权限,如采用audit vault 等

安全审计管理员定期对审计记录进行备份,对审计记录的维护和导出由专人负责

d)应对审计进程进行保护,防止未经授权的中断

对于Oracle数据库系统默认符合,但是如果采取了第三方工具,则应检查数据库系统,查看未授权用户是否能中断审计进程

1)询问是否严格限制管理员权限

2)用户可以通过alter system set audit_trail=none并重启实例关闭审计功能,查看是否成功

1)已限制管理员审计功能权限

2)测试其他人员无法对审计进程开启、关闭操作,并记录

入侵防范

a)应通过设定终端接入方式或网络地址范围对通过网络进行管理的管理终端进行限制

Oracle数据库限制远程连接IP地址

查看在sqlnet. ora文件中是否配置参数: tcp.validnode_checking ,tcp,invited_nodes

tcp.validnode_checking=yes

tcp.invited_nodes=() #运维访问的IP列表,各IP之间用逗号分隔

在sqlnet. ora文件中tcp.validnode_checking=yes

tcp.invited_nodes已配置参数ip列表

b) 应能发现可能存在的已知漏洞,并在经过充分测试评估后,及时修补漏洞

攻击者可能利用操作系统存在的安全漏洞对系统进行攻击,应对系统进行漏洞扫描,及时发现系统中存在的已知漏洞,并在经过充分测试评估后更新系统补丁,.避免遭受由系统漏洞带的风险

访谈Oracle补丁升级机制,查看补丁安装情况:

#cd $ORACLE HOME/0patch

opatch lsinventory

返回OPatch version信息和OUI version信息

数据备份恢复

a)应提供重要数据处理系统的热冗余,保证系统的高可用性

数据库系统至少达到以下的备份要求:提供本地实时备份的功能,当数发生错误时,能及时恢复数据

1)询间系统管理员数据库的备份和恢复策略是什么,查看是否达到上述要求

2)检查相关文档和配置,查看是否与系统管理员回答的一致

)核查备份结果与备份策略一致

2)核查近期恢复测试记录能够进行正常的数据恢复

b)应提供异地实时备份功能,利用通信网络将重要数据实时备份至备份场地

应提供灾备中心,对重要的数据提供异地数据级备份,保证当本地系统发生灾难性后果不可恢复的,利用异地保存的数据对系统数据能进行恢复

1)询问系统管理员是否提供异地数据备份功能,是否定时批量传送至备用场地

2)如果条件允许,则查看其实现技术措施的配置情况

1)已部署异地备份机房,并符合备份策略通过网络定期进行异地备份

2)查看实现的配置结果与备份策略一致

原文地址:https://www.cnblogs.com/zh2000/p/15219013.html