admin 管理员组

文章数量: 887021


2024年2月7日发(作者:mvc模式流程)

等级保护测评 【数据库Oracle】 三级 详解测评要求项、测评方法及测评步骤

身份鉴别

a)应对数据库系统的用户进行身份标识和鉴别;

测评方法及步骤:

1)以默认口令或者常见口令尝试登录数据库,查看是否成功,查看是否需要口令以及是否存在空口令

$ sqlplus/nolog

SQL>connuser/password as sysdba

2)或者使用Oracle客户端管理控制台(Enterprise Manager Console)进行登录

3)默认口令包括sys/change_on_install;system/manager,scott/tiger,常用口令包括oracle:admin/oracle;sys:admin:oracle等。(更改用户口令alter

user user_name identified by password),或者用select * from

dba_users;查看账号口令;

b)数据库系统管理用户身份标识应具有不易被冒用的特点,口令应有复杂度要求并定期更换;

测评方法及步骤:

1)select username,profile fromdba_user;了解用户使用的profile

2)select * from dba_profiles whereprofile='default';查看系统本身的profile的配置参数都有哪些?

PASSWORD_VERIFY_FUNCTIONverify_function为密码复杂度验证函数已经开启。这个oracle默认verify_function()函数,要求口令密码最小长度4、不能和用户名相同、至少有一个字母、数字和特殊字母,旧密码和新密码至少有三位不同。如果你觉得这个要求还太低,那你就创建自己复杂的验证函数

3)检查中"-- Check for the minimum length of the

password"部分中"length (password)<"后的值;

c)应启用登录失败处理功能,可采取结束会话、限制非法登录次数和自动退出等措施;

测评方法及步骤:

1)select limitfrom dba_profiles

where resource_name='FAILED_LOGIN_ATTEMPTS

FAILED_LOGIN_ATTEMPTS:最大错误登录次数

PASSWORD_GRACE_TIME:口令失效后锁定 时间

PASSWORD_LIFE_TIME:口令有效时间

PASSWORD_LOCK_TIME:登录超过有效次数锁定时间

查看有无对各项进行时间/次数上的设置和限制;

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

测评方法及步骤:

1)询问管理员是否采取加密手段保证数据库的访问信息不被窃听

2)在9i中查看数据库安装目录下的adminDB_中REMOTE_OS_AUTHENT的赋值,确认是否允许管理员对数据库进行远程连接和管理,其他版本用命令“SHOW PARAMETERS AUTH;”记录是否允许远程访问

3)或者图形界面管理中查看打开Oracle客户端管理控制台(Enterprise Manager Console);添加被评估数据库的连接信息,使用sys或system用户登录数据库;在左侧菜单栏中打开“例程”,选中“配置”栏,再选择“一般信息”页面,点击“所有初始化参数”;在弹出的界面中,查看“remote_os_authent”参数行的设置,为是否允许远程连接,如实记录该原始数据或拷屏

4)查看lsnrctl status查看是否存在TCPS协议;

e)应为数据库系统的不同用户分配不同的用户名,确保用户名具有唯一性;

测评方法及步骤:

1)询问管理员,是否为不同的用户分配了不同的账户。可检索账户“selectusername,account_status from dba_users”,并询问是否建立制度,确保不同人员使用不同用户登录数据库系统;

f)应采用两种或两种以上组合的鉴别技术对管理用户进行身份鉴别;

测评方法及步骤:

1)询问管理员数据库是否采用了2种以上身份鉴别方式进行身份认证,如是否部署CA认证等第三方认证产品进行认证;

2)查看配置文件 db_1NETWORKADMIN$TNS_ADMIN/的,目录下或查看SQLNET_AUTHENTICATION_SERVICES的值,确认数据库管理员指定的鉴别方式是否与管理员回答的一致,值为NTS时,则为使用windows系统认证,当为none时,则需要双重身份认证。但是不为双因子认证;

此条中判断以第一条为准,第二条仅做参考,不对结果造成影响;

访问控制

a)应启用访问控制功能,依据安全策略控制用户对资源的访问;

测评方法及步骤:

1)linux下在数据库的操作系统中打开$ORACLE_HOMEbin目录,并找到可执行程序Oracle;

在操作系统中运行命令:ls –al oracle;查看其运行、读写权限;

2)访谈管理员是否有其他方式(如防火墙、ACL、IPsec等方式)进行端口/IP级的访问限制,或者其他方式对数据库访问的控制,并进行验证;

判定依据主要参考第三条,第一二条为辅助依据;

b)应根据管理用户的角色分配权限,实现管理用户的权限分离,仅授予管理用户所需的最小权限;

测评方法及步骤:

1)查看应用账户是否属于DBA组权限

2)select grantee

and

from dba_role_privs

grante

where

not grante_role='DBA'

in('SYS','SYSTEM','CTXSYS','WmSYS','SYSMAN');

c)应实现操作系统和数据库系统特权用户的权限分离;

测评方法及步骤:

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

登录操作系统,查看是否能对数据库系统进行操作;

d)应限制默认帐户的访问权限,重命名系统默认帐户,修改这些帐户的默认口令;

测评方法及步骤:

询问管理员:应尽量重命名数据库系统的默认账户,如果部分账户无法重命名,则应加强这些账户的口令强度,确保这些账户不被授权使用;

e)应及时删除多余的、过期的帐户,避免共享帐户的存在;

测评方法及步骤:

1、在sqlplus中执行命令

desc dba_users

selectusername,account_status

account_status='OPEN'

2、查看返回结果中是否存在scott、outln、ordsys等范例数据库账号,在windows中或者用图形用户界面找到安全性查看用户状态检查是否有过期、共享帐户存在;

f)应对重要信息资源设置敏感标记;

测评方法及步骤:

1)检查是否安装oracle label security模块(如无,下面步骤可省略)select username from dba_users;查看有无lbacsys的用户,如无,则无安装Oracle Label Security模块

2)查看是否创建策略:select policy_name,statusfrom

DBA_SA_POLICIES

3)查看标签创建情况:select * fromdba_sa_lables;

g)应依据安全策略严格控制用户对有敏感标记重要信息资源的操作;

测评方法及步骤:

登录sqlplus,查看用户的标签

from dba_users where

select * fromdba_sa_lables

select * fromdba_sa_tables_policies;可让管理员演示选择特定的用户和表进行验证敏感标记功能是否正确;

安全审计

a)审计范围应覆盖到服务器和重要客户端上的每个数据库用户;

测评方法及步骤:

检查并记录数据库操作审计的配置策略

show parametersaudit;查看数据库审计的目录及审计是否开启,审计级别

1.windows中打开Oracle客户端管理控制台(Enterprise Manager

Console)

2.添加被评估数据库的连接信息,使用sys或system用户登录数据库

3.在左侧菜单栏中打开“例程”,选中“配置”栏,再选择“一般信息”页面,点击“所有初始化参数”

4.在弹出的界面中,查看“audit_trail”参数行的设置,如实记录该原始数据或拷屏。如果为linux系统执行show parameters

audit_trail;查看是否开启审计功能

5.进行管理员和一般用户登录登出,查看审计日志是否能正确记录

6.以上条件不满足时,询问管理员是否有第三方数据库审计软件;

b)审计内容应包括重要用户行为、系统资源的异常使用和重要系统命令的使用等系统内重要的安全相关事件;

测评方法及步骤:

查看AUDIT_TRAIL的值为NONE为关闭审计功能,audit_sys_operations为YES审计系统重要操作;

c)审计记录应包括事件的日期、时间、类型、主体标识、客体标识和结果等;

测评方法及步骤:

select * $,select * fromdba_audit_trail,记录审计记录中事件的日期、时间、类型、主体标识、客体标识和结果等记录情况;

d)应能根据记录数据进行分析,并生产审计报表;

测评方法及步骤:

询问管理员是否安装并使用了oracle audit vault等日志分析工具并查看相关报表,或者是否采用了第三方数据库审计软件以及具有报表功能并定期生成报表;

e)应保护审计进程,避免受到未预期的中断;

测评方法及步骤:

询问是否严格限制数据库管理员权限,系统管理员能否进行与审计相关的操作。用户可以通过alter system set audit_trail='NONE'

scope=spfile;,查看是否成功;

f)应保护审计记录,避免受到未预期的删除、修改或覆盖等;

测评方法及步骤:

询问数据库管理员,是否严格限制用户访问审计记录的权限,如采用audit vault等,或者第三方审计系统,并检查是否定期对审计日志做备份;

资源控制

a)应通过设定终端接入方式、网络地址范围等条件限制终端登录;

测评方法及步骤:

方法一:人工审计

1.以文本文件的方式,打开操作系统中的数据库服务配置文件“”(数据库目录下的NETWORKADMIN)

查看是否存在如下内容

ode_checking=YES

ed_nodes={list of IP address}

d_nodes={list of IP address},如存在则对IP地址进行了限制

3.如实记录该原始数据或拷屏

4.如果没有在数据库系统上进行配置,询问是否在防火墙或者其他网络设备/安全设备上进行了相关的配置;

方法一:人工审计

1.以文本文件的方式,打开操作系统中的数据库服务配置文件“”;

2.查看“ADMIN_RESTRICTIONS_listener_name=”的设置(此项设置为防止对oracle listener的未经授权的管理,需要),如实记录该原始数据或拷屏,如为ON则符合,不存在则不符合;

b)应根据安全策略设置登录终端的操作超时锁定;

测评方法及步骤:

查看空闲超时设置,selectlimit from dba_profiles

where resource_name='IDLE_TIME'.查看超时设置,并记录或查看系统概要文件;

c)应限制单个用户对系统资源的最大或最小使用限度;

测评方法及步骤:

执行命令,查看用户使用的profile,select username,profile

fromdba_users,查看其限制,set lines 300

查看默认用户的并行会话数和CPU使用时间

select limitfrom dba_profiles where profile='DEFAULT';,或CPU_PER_SESSION,IDLE_TIME,'SESSIONS_PER_USER'等各设置

下面是全部可用的参数:

SESSIONS_PER_USER 每个用户名所允许的并行会话数

CPU_PER_SESSION 一个会话一共可以使用的CPU时间,单位是百分之一秒

CPU_PER_CALL 一次SQL调用(解析、执行和获取)允许使用的CPU时间

CONNECT_TIME 限制会话连接时间,单位是分钟

IDLE_TIME 允许空闲会话的时间,单位是分钟

LOGICAL_READS_PER_SESSION 限制会话对数据块的读取,单位是块

LOGICAL_READS_PER_CALL 限制SQL调用对数据块的读取,单位是块

COMPOSITE_LIMIT “组合打法”

PRIVATE_SGA 限制会话在SGA中Shared Pool中私有空间的分配;


本文标签: 是否 用户 查看 审计