大家好,本次测评Orcale环境在我的个人终端上(win11)进行,使用的Orcale版本为oracle23ai(最新版),数据库管理工具为navicat12 ,数据库刚开始使用,里面未进行操作都是默认策略。本人也是第一次测评Orcale,如有错误请大家多多指教
一、身份鉴别
a) 应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换;
查看用户身份标识,用户名、用户id、用户状态:select username,user_id,account_status from dba_users;
查看密码复杂度是否开启:select limit from dba_profiles where profile='DEFAULT'and resource_name='PASSWORD_VERIFY_FUNCTION';
查看密码有效期,单位:天
b) 应具有登录失败处理功能,应配置并启用结束会话、限制非法登录次数和当登录连接超时自动退出等相关措施;
查看是否启用登录失败限制策略,执行:select LIMIT from dba_profiles where RESOURCE_NAME='FAILED_LOGIN_ATTEMPTS'AND PROFILE ='DEFAULT';
这条命令不是很好查询,建议使用下面这条
查看配置策略:select lower(limit),lower(resource_name) from dba_profiles;
-
failed_login_attempts //登录失败次数
-
password_lock_time //失败锁定时间,单位天
-
idle_time //登录连接超时
c)当进行远程管理时,应采取必要措施、防止鉴别信息在网络传输过程中被窃听
首先在服务器中查找sqlnet.ora的配置文件,cat打开:
查找以下策略:
QLNET.ENCRYPTION_SERVER = REQUIRED ----加密级别
SQLNET.ENCRYPTION_TYPES_SERVER = RC4_256 ----加密算法
SQLNET.CRYPTO_CHECKSUM_SERVER = REQUIRED --- 一致性能校验
d)应采用口令、密码技术、生物技术等两种或两种以上组合的鉴别技术对用户进行身份鉴别,且其中一种鉴别技术至少应使用密码技术来实现
一般默认不符合
二、访问控制
a)应对登录的用户分配账户和权限
每个用户的权限:select * from dba_privs;
b)应重命名或删除默认账户,修改默认账户的默认口令
查询用户名select username from dba_users;
1)登录验证sys的口令是否为CHANGE_ON_INSTALL
2)登录验证system的口令是否为manager
3)登录验证dbsnmp的口今是否为dbsnmp
c)应及时删除或停用多余的、过期的账户,避免共享账户的存在
查询用户和用户状态。查看返回结果中是否存在scott. out1n、 ordsys 等范例数据库帐号
select username,account_status from dba_users
d)应授予管理用户所需的最小权限,实现管理用户的权限分离
询问是否由不同员工分别担任操作系统管理员与数据库管理员
e)应由授权主体配置访问控制策略,访问控制策略规定主体对客体的访问规则
询问数据库管理员,数据库系统是否由特定账户进行配置访问控制策略,具体访问控制策略是什么
f)访问控制的粒度应达到主体为用户级或进程级,客体为文件、数据库表级
询问数据库管理员, 访问控制的粒度主体是否用户级或进程级,客体是否为文件、数据库表级
g)应对重要主体和客体设置安全标记,并控制主体对有安全标记信息资源的访问
检查是否安装Oracle Lable Security模块
三、安全审计
a)应启用安全审计功能,审计覆盖到每个用户,对重要的用户行为和重要安全事件进行审计
select value from v$parameter where name='audit_trail'
DB或DB_EXTENED为开启了审计,没开启为none
b)审计记录应包括事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息
我这里默认没有开启,一般a项开启的话这里会有记录
可以记录一条日志内容,确认其包括事件发生的日期与时间、触发事件的主体与客体、事件的类型、事件成功或失败、身份鉴别事件中请求的来源(如末端标识符)、事件的结果等内容
c)应对审计记录进行保护,定期备份,避免受到未预期的删除、修改或覆盖等
询问是否有数据库审计设备,并将该数据库资产加入进去,或其他备份方式
d)应对审计进程进行保护,防止未经授权的中断
核查企业是否进行三权分立,只有审计管理员可管理审计功能
四、入侵防范
a)应遵循最小安装的原则,仅安装需要的组件和应用程序
不适用
b)应关闭不需要的系统服务、默认共享和高危端口
不适用
c)应通过设定终端接入方式或网络地址范围对通过网络进行管理的管理终端进行限制
需要到sqlnet.ora配置文件中查看是否配置了tcp.validnode_checking参数,这个参数默认是没有的。
tcp.validnode_checking=yes
tcp.invited_nodes已配置参数ip列表
d)应提供数据有效性检验功能,保证通过人机接口输入或通过通信接口输入的内容符合系统设定要求
不适用
e) 应能发现可能存在的已知漏洞,并在经过充分测试评估后,及时修补漏洞
通过漏扫软件或设备进行扫描
f)应能够检测到对重要节点进行入侵的行为,并在发生严重入侵事件时提供报警
不适用
五、恶意代码防范
a)应采用免受恶意代码攻击的技术措施或主动免疫可信验证机制及时识别入侵和病毒行为,并将其有效阻断
不适用
六、可信验证
a)可基于可信根对计算设备的系统引导程序、系统程序、重要配置参数和应用程序等进行可信验证,并在应用程序的关键执行环节进行动态可信验证,在检测到其可信性受到破坏后进行报警,并将验证结果形成审计记录送至安全管理中心
只有少数企业可以做到,一般不适用
七、数据完整性
a) 应采用校验技术或密码技术保证重要数据在传输过程中的完整性,包括但不限于鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等;
核查数据库远程管理是否采用 SSL 安全连接等安全加密协议
b)应采用校验技术或密码技术保证重要数据在存储过程中的完整性,包括但不限于鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等
核查是否采用了 SM3、SHA256、SHA512等摘要算法对鉴别口令数据进行完整性计算后存储在数据表中
八、数据保密性
a) 应采用密码技术保证重要数据在传输过程中的保密性,包括但不限于鉴别数据、重要业务数据和重要个人信息等;
核查数据库在传输过程中是否采用了加密协议
b)应采用密码技术保证重要数据在存储过程中的保密性,包括但不限于鉴别数据、重要业务数据和重要个人信息等
核查数据库系统用户鉴别信息(如口令)是否以密文形式存储,Oracle数据库系统一般对用户口令进行 SHA 加密后存储。
九、数据备份
a) 应提供重要数据的本地数据备份与恢复功能;
核查是否按照备份策略对重要数据进行定期本地备份
b) 应提供异地实时备份功能,利用通信网络将重要数据实时备份至备份场地;
核查是否通过网络将重要配置数据、重要业务数据实时备份至异地
c) 应提供重要数据处理系统的热冗余,保证系统的高可用性。
核查数据库是否采用RAC,MHA等形式的高可用方案,冗余部署必须以双活、双机、热备的形式来实现