网络安全等保:Oracle数据库测评

本文阅读 14 分钟

以下结果以Oracle 11g为例,通过PL/SQL进行管理,未进行任何配置、按照等保2.0标准,2021报告模板,三级系统要求进行测评。

一、身份鉴别

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

sysdba是Oracle数据库的最高权限管理员。通常使用sqlplus或PL/SQL 管理软件进行管理,PL/SQL 为第三方管理软件,但SQL查询语句一样。

注:sysdba如果是本地管理,乱输密码也能登录成功,需要改sqlnet.ora文件。

  1. 管理员登录数据库时是是否需要输入用户名/口令,不存在空口令;

img

  1. 使用 Select username,account_status from dba_users; 显示所有能登录数据库的用户信息:(),那些是open那些是locked,UID是否唯一

img

  1. 通过命令 select * from dba_profiles where resource_type=‘password’;SELECT LIMIT FROM DBA_PROFILES WHERE PROFILE=‘DEFAULT’ AND RESOURCE_NAME=‘PASSWORD_VERIFY_FUNCTION’;如果为NULL则为未设置密码复杂度要求。

为了感谢广大读者伙伴的支持,准备了以下福利给到大家:

img

若有设置应为

(1)PASSWORD_LOGIN_ATTEMPTS =  登录尝试次数; (2)PASSWORD_LIFE_TIME = unlimited 未设置口令有效期; (3)PASSWORD_ROUSE_MAX = unlimited 未设置重新启用一个先前用过的口令前必须对该口令进行重新设置的次数(重复用的次数); (4)PASSWORD_VERIFY_FUNCITON = NULL,未设置口令复杂度校验函数; (5)PASSWORD_GRACE_TIME=,口令修改的宽限期天数:7;

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

  1. 通过输入 SELECT LIMIT FROM DBA_PROFILES WHERE PROFILE=‘DEFAULT’ AND RESOURCE_NAME=‘FAILED_LOGIN_ATTEMOTS’;, 查询结果若为’UNLIMITED’则无登录重试次数限制,超过此值用户被锁定。可以通过ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS 10(重试次数10次)

img

  1. 通过输入 SELECT LIMIT FROM DBA_PROFILES WHERE PROFILE=‘DEFAULT’ AND RESOURCE_NAME=‘PASSWORD_LOCK_TIME’;, 查询结果若为’unlimited’则无登录失败次数锁定限制。可以通过ALTER PROFILE DEFAULT LIMIT PASSWORD_LOCK_TIME 1/24(重试失败后锁定一天)

img

  1. 通过输入 SELECT LIMIT FROM DBA_PROFILES WHERE PROFILE=‘DEFAULT’ AND RESOURCE_NAME=‘IDLE_TIME’;, 查询结果若为’UNLIMITED’则无登录超时限制。

img

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

采用sqlplus或PL/SQL连接数据库,对数据库进行管理,客户端与服务器端之间通信是加密的,故Oracle该项默认符合。

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

经访谈管理员,是否采用双因子身份鉴别技术,鉴别技术是什么 。默认都不符合。

二、访问控制

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

通过输入Select username,account_status from dba_users;语句,主要查看数据库存在那些可用用户,至少得有两个,该测评项就需要Oracle中存在至少两个账户,且这两个账户的权限不一样。

1.为用户分配了账户和权限及相关设置情况,主要看可用账户(例如采用“用户权限列表”); 2.是否已禁用或限制匿名、默认账户的访问权限。如只有MGMT_UIEW,SYSTEM,SYS,DBSNMP为启用状态,其他均为启用状态,则为符合。

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

在Oracle中默认用户最常用的就是SYS和SYSTEM这两个账户。 1.是否已经重命名SYS、SYSTEM、DBSNMP等默认帐户名或已修改默认口令,sys默认口令为CHANGE_ON_INSTALL;SYSTEM:MANAGER;DBSNMP的默认口令为:DBSNMP。可以登录测试。

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

访谈管理员是否存在多余或过期账户,管理员用户与账户之间是否一一对应通过输入Select username,account_status from dba_users;查看是否存在默认帐户SCOTT/OUTLN/ORDSY等用户,不存在acount_status为expired的账户。访谈管理员是否存在共享账户等。示例不符合。

img

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

  1. 通过输入Select username,account_status from dba_users;查看状态为open的用户的用途。是否进行角色划分,是否有多个用户进行管理数据库; 2. 通过输入 select * from dba_tab_privs where grantee=‘SYS’  ORDER BY GRANTEE;查看SYS最高权限授予给那些用户,得知管理用户的权限是否已进行分离;

img

  1. 通过访谈管理员、管理用户权限是否为其工作任务所需的最小权限,是否存在相应的用户权限表。 4. 通过输入select granted_role from dba_role_privs where grantee=‘PUBLIC’; 返回值(  ) 得知public是否被授权给用户,有就不符合 ; 5. 通过在命令窗口输入Show parameter O7_DICTIONARY_ACCESSIBILITY;返回值(是否为false);(该参数设置为false为符合,如果用户具有了any table权限,则可以访问除sys用户之外的其他用户的对象,也就无权访问数据字典基表。)

img

TIPS: sql语句在 PL/sql的文件–》sql窗口执行,show等命令语句在命令窗口执行。sqlplus则不区分。

综上判断符合程度。

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

通过访谈管理员,是否由特定账户为登录用户分配角色和权限。是否存在具体的访问规则。

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

1.通过访谈数据库管理员,是否制定数据库访问控制策略,访问控制的粒度为数据库表级。此项默认符合。

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

通过访谈数据库管理员: 是否对重要主体和客体设置安全标记。 oracle自身应该不具备这个功能,可能要依靠操作系统或者第三方的什么软件如Oracle_Label_Security来实现了。该项一般默认都不符合。

三、安全审计

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

Oracle自带有审计功能,可以通过audit_trail参数来开启使用。 1. 通过输入 show parameter audit_trail;返回值默认为DB,即为普通用户开启审计功能,若为none则为未开启状态;

img

  1. 通过输入 select from dba_stmt_audit_opts;和select from dba_priv_audit_opts;返回结果如User_Name为空值,对这些重要事件开启审计,并且这个审计是针对所有用户的,符合要求。

img

img

  1. 通过输入 show parameter audit_sys_operations;返回结果  audit_sys_operations          boolean     FALSE  则未对SYSDBA或SYSOPER特权连接时直接发出的SQL语句进行审计,需要开启,默认为false。

img

综上分析判断符合程度。

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

通过输入 select * from aud$; 查看审计日志的格式,默认符合。(输入show parameter dump_dest 得出backgroup_dump_dest的值为日志文件的位置。)。下图没有显示完全。

img

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

  1. 通过访谈管理员, 是否采取技术措施对审计记录进行定期备份,采用的技术措施及备份策略是怎么样的?如通过syslog端口导入到日志服务器。 2. 是否只有特定的管理员拥有对审计记录的操作权限,普通用户无法访问审计记录。

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

Oracle默认符合此项。 1. 通过查看sysdba、sysoper权限被授予给了谁,非管理员账户是否可以中断审计进程,审计进程是否进行了保护。 2. 通过输入alter system set audit_trail=none; 得出无法成功即符合。示例为sysdba最高权限管理员登录,能够进行操作。需要通过一个普通用户登录,查看此条命令是否能够执行,若能此项就不符合。

img

四、入侵防范

a) 应遵循最小安装的原则,仅安装需要的组件和应用程序

通过输入select * from v$option;得知安装的组件是否多余。value为true为安装了。[图片上传失败…(image-c9a1b2-1634546762405)]

b) 应关闭不需要的系统服务、默认共享和高危端口

此项不适用,数据库不涉及此项。

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

通过查看oracle的安装路径中的sqlnet.ora文件查看tcp.validnode_checking/tcp/invited_nodes的配置是否为: tcp.validnode_checking=yes tcp,invited_nodes=()  得知是否设置了远程连接IP。

大部分未设置,基本都是通过远程管理操作系统间接远程数据库。

d) 应提供数据有效性检验功能,保证通过人机接口输入或通过通信接口输入的内容符合系统设定要求8

此项不适用,数据库不涉及此项。

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

1、 访谈管理员是否定期或不定期进行漏洞扫描或渗透测试,周期为 (  ); 2、通过本次漏洞扫描是否发现与数据库相关的高危漏洞,若存在,是否及时进行漏洞修补。

f) 应能够检测到对重要节点进行入侵的行为,并在发生严重入侵事件时提供报警

此项不适用,数据库不涉及此项。

五、恶意代码防范

应采用免受恶意代码攻击的技术措施或主动免疫可信验证机制及时识别入侵和病毒行为,并将其有效阻断

此项不适用,数据库不涉及此项。

六、可信验证

可基于可信根对计算设备的系统引导程序、 系统程序、重要配置参数和应用程序等进行可信验证,并在应用程序的关键执行环节进行动态可信验证,在检测到其可信性受到破坏后进行报警,并将验证结果形成审计记录送至安全管理中心

通过访谈管理员,是否采取了可信技术,一般都是未采取。可信技术主要是基于可信芯片、可信根,硬件层面较多。但是现在市面上的产品尚未大量普及。

七、其他控制点

数据完整性、数据保密性、数据备份与恢复、剩余信息保护、个人信息保护均不在此处考虑,放在安全计算环境中的五类数据中统一体现。

本文为互联网自动采集或经作者授权后发布,本文观点不代表立场,若侵权下架请联系我们删帖处理!文章出自:https://blog.csdn.net/kali_Ma/article/details/120833235
-- 展开阅读全文 --
KillDefender 的 Beacon 对象文件 PoC 实现
« 上一篇 02-09
Web安全—逻辑越权漏洞(BAC)
下一篇 » 03-13

发表评论

成为第一个评论的人

热门文章

标签TAG

最近回复