admin 管理员组

文章数量: 887031


2024年1月15日发(作者:线的组词)

Oracle数据库系统安全基线规范

2019年10月

目 录

1

账号管理、认证授权 .................................................................................................. 1

1.1

账号 ...................................................................................................................... 1

1.1.1

ELK-Oracle-01-01-01 ...................................................................................... 1

1.1.2

ELK-Oracle-01-01-02 ...................................................................................... 2

1.1.3

ELK-Oracle-01-01-03 ...................................................................................... 3

1.1.4

ELK-Oracle-01-01-04 ...................................................................................... 4

1.1.5

ELK-Oracle-01-01-05 ...................................................................................... 5

1.1.6

ELK-Oracle-01-01-06 ...................................................................................... 7

1.1.7

ELK-Oracle-01-01-07 ...................................................................................... 8

1.1.8

ELK-Oracle-01-01-08 .................................................................................... 10

1.2

口令 .................................................................................................................... 11

1.2.1

ELK-Oracle-01-02-01 ..................................................................................... 11

1.2.2

ELK-Oracle-01-02-02 .................................................................................... 12

1.2.3

ELK-Oracle-01-02-03 .................................................................................... 14

1.2.4

ELK-Oracle-01-02-04 .................................................................................... 15

1.2.5

ELK-Oracle-01-02-05 .................................................................................... 16

2

日志配置 .................................................................................................................... 18

2.1.1

2.1.2

2.1.3

2.1.4

3

ELK-Oracle-02-01-01 .................................................................................... 18

ELK-Oracle-02-01-02 .................................................................................... 21

ELK-Oracle-02-01-03 .................................................................................... 22

ELK-Oracle-02-01-04 .................................................................................... 24

通信协议 .................................................................................................................... 25

3.1.1

ELK-Oracle-03-01-01 .................................................................................... 25

3.1.2

ELK-Oracle-03-01-02 .................................................................................... 26

4

设备其他安全要求 .................................................................................................... 28

4.1.1

ELK-Oracle-04-01-01 .................................................................................... 28

4.1.2

ELK-Oracle-04-01-02 .................................................................................... 29

1 账号管理、认证授权

1.1 账号

1.1.1

ELK-Oracle-01-01-01

编号

名称

实施目的

问题影响

ELK-Oracle-01-01-01

为不同的管理员分配不同的账号

应按照用户分配账号,避免不同用户间共享账号,提高安全性。

账号混淆,权限不明确,存在用户越权使用的可能。

select * from all_users;

系统当前状态 select * from dba_users;

记录用户列表

1、参考配置操作

create user abc1 identified by password1;

create user abc2 identified by password2;

实施步骤

建立role,并给role授权,把role赋给不同的用户

2、 补充操作说明

1、abc1和abc2是两个不同的账号名称,可根据不同用户,取不同的名称;

删除用户:例如创建了一个用户 A,要删除它可以这样做

回退方案

connect sys/密码 as sysdba;

drop user A cascade;//就这样用户就被删除了

判断依据

实施风险

重要等级

备注

标记用户用途,定期建立用户列表,比较是否有非法用户

★★★

1.1.2 ELK-Oracle-01-01-02

编号

名称

实施目的

问题影响

ELK-Oracle-01-01-02

删除或锁定无效账号

删除或锁定无效的账号,减少系统安全隐患。

允许非法利用系统默认账号

select * from all_users;

系统当前状态 select * from dba_users;

记录用户列表

1、参考配置操作

alter user username lock;//锁定用户

实施步骤

drop user username cascade;//删除用户

回退方案 删除新增加的帐户

首先锁定不需要的用户

判断依据

在经过一段时间后,确认该用户对业务确无影响的情况下,可以删除

实施风险

重要等级

备注

★★★

1.1.3 ELK-Oracle-01-01-03

编号

名称

实施目的

问题影响

系统当前状态

ELK-Oracle-01-01-03

限制超级管理员远程登录

限制具备数据库超级管理员(SYSDBA)权限的用户远程登录。。

允许数据库超级管理员远程非法登陆

查看spfile,内容

1、参考配置操作

在spfile中设置REMOTE_LOGIN_PASSWORDFILE=NONE来禁止SYSDBA用户从远程登陆。在中设置实施步骤

TICATION_SERVICES=NONE来禁用 SYSDBA 角色的自动登录。

回退方案 还原spfile,文件配置

判定条件

1. 不能通过Sql*Net远程以SYSDBA用户连接到数据库。

判断依据

2. 在数据库主机上以sqlplus ‘/as sysdba’连接到数据库需要输入口令。

检测操作

1. 以Oracle用户登陆到系统中。

2. 以sqlplus ‘/as sysdba’登陆到sqlplus环境中。

3. 使用show parameter命令来检查参数REMOTE_LOGIN_PASSWORDFILE是否设置为NONE。

Show parameter REMOTE_LOGIN_PASSWORDFILE

4. 检查在

$ORACLE_HOME/network/admin/文件中参数TICATION_SERVICES是否被设置成NONE。

实施风险

重要等级

备注

★★★

1.1.4 ELK-Oracle-01-01-04

编号

名称

实施目的

问题影响

ELK-Oracle-01-01-04

权限最小化

在数据库权限配置能力内,根据用户的业务需要,配置其所需的最小权限。

账号权限越大,对系统的威胁性越高

select * from user_sys_privs;

系统当前状态

select * from user_role_privs;

select * from user_tab_privs;

记录用户拥有权限

1、 参考配置操作

grant 权限 to username;

revoke 权限 from username;

实施步骤

2、 补充操作说明

用第一条命令给用户赋相应的最小权限

用第二条命令收回用户多余的权限

回退方案

判断依据

实施风险

重要等级

备注

还原添加或删除的权限

业务测试正常

1.1.5 ELK-Oracle-01-01-05

编号

名称

实施目的

问题影响

ELK-Oracle-01-01-05

数据库角色

使用数据库角色(ROLE)来管理对象的权限。

账号管理混乱

select * from dba_role_privs;

系统当前状态 select * from user_role_privs;

记录用户拥有的role

一.创建角色,修改角色

1.创建角色,不指定密码:

create role testrole;

2.创建角色,指定密码:

create role testrole identified by passwd;

3.修改角色:

alter role testrole identified by passwd;

4. 给角色授予权限。

Grant select on Table_name to testrole;

把角色赋予用户:(特别说明,授予角色不是实时的。如下:)

grant testrole to User_Name;

二、起用角色:给用户赋予角色,角色并不会立即起作用。

1.角色不能立即起作用。必须下次断开此次连接,下次连接才能起作用。

2.或者执行命令:有密码的角色set role testrole

identified by passwd 立即生效;

3.无密码的角色:set role testrole;

回退方案

删除相应的Role

revoke role_name from user_name

实施步骤

判断依据

实施风险

重要等级

备注

对应用用户不要赋予DBA Role或不必要的权限

1.1.6 ELK-Oracle-01-01-06

编号

名称

实施目的

问题影响

ELK-Oracle-01-01-06

用户profile

对用户的属性进行控制,包括密码策略、资源限制等。

账号安全性低.

SELECT profile FROM dba_users WHERE

系统当前状态

username=’user_name’;

记录用户赋予的profile

可通过下面类似命令来创建profile,并把它赋予一个用户

SQL> show parameter resource_limit

SQL> alter system set resource_limit=true;

实施步骤

CREATE PROFILE profile_name LIMIT

FAILED_LOGIN_ATTEMPTS 6

PASSWORD_LIFE_TIME 60

PASSWORD_REUSE_TIME 60

PASSWORD_REUSE_MAX 5

PASSWORD_VERIFY_FUNCTION verify_function

PASSWORD_LOCK_TIME 1/24

PASSWORD_GRACE_TIME 90;

ALTER USER user_name PROFILE profile_name;

回退方案

alter user dinya profile default;

恢复默认

1. 可通过设置profile来限制数据库账户口令的复杂程度,口令生存周期和账户的锁定方式等。

2. 可通过设置profile来限制数据库账户的CPU资源占用。

判断依据 4、检测操作

1. 以DBA用户登陆到sqlplus中。

2. 查询视图dba_profiles和dba_usres来检查profile是否创建。

实施风险

重要等级

备注

1.1.7 ELK-Oracle-01-01-07

编号 ELK-Oracle-01-01-07

名称

实施目的

问题影响

数据字典保护

启用数据字典保护,只有SYSDBA用户才能访问数据字典基础表。

数据库安全性低.

Show parameter O7_DICTIONARY_ACCESSIBILITY

系统当前状态

记录当前状态

通过设置下面初始化参数来限制只有SYSDBA权限的用户才能访问数据字典。

实施步骤

alter

scope=spfile;

system set

O7_DICTIONARY_ACCESSIBILITY=FALSE

回退方案 修改O7_DICTIONARY_ACCESSIBILITY为原来属性

以普通用户登陆到数据库,不能查看X$开头的表,比如:

select * from sys. x$ksppi;

检测操作

1. 以Oracle用户登陆到系统中。

2. 以sqlplus ‘/as sysdba’登陆到sqlplus环境中。

判断依据

3. 使用show parameter命令来检查参数O7_DICTIONARY_ACCESSIBILITY是否设置为FALSE。

Show

parameter O7_DICTIONARY_ACCESSIBILITY

实施风险 高

重要等级

备注

1.1.8 ELK-Oracle-01-01-08

编号

名称

实施目的

问题影响

系统当前状态

ELK-Oracle-01-01-08

检查DBA组用户

限制在DBA组中的操作系统用户数量,通常DBA组中只有Oracle安装用户。

影响组用户管理

Cat /etc/passwd

参考配置操作

通过/etc/passwd文件来检查是否有其它用户在DBA组中。

删除用户:#userdel username;

锁定用户:

1) 修改/etc/shadow文件,用户名后加*LK*

实施步骤

2) 将/etc/passwd文件中的shell域设置成/bin/false

3) #passwd -l username

只有具备超级用户权限的使用者方可使用,#passwd -l

username锁定用户,用#passwd –d username解锁后原有密码失效,登录需输入新密码,修改/etc/shadow能保留原有密码。

回退方案

还原/etc/passwd文件

判定条件

判断依据

无其它用户属于DBA组。

检测操作

通过/etc/passwd文件来检查是否有其它用户在DBA组中。

实施风险

重要等级

备注

1.2 口令

1.2.1 ELK-Oracle-01-02-01

编号

名称

ELK-Oracle-01-02-01

缺省密码长度复杂度限制

对于采用静态口令进行认证的数据库,口令长度至少6位,实施目的

并包括数字、小写字母、大写字母和特殊符号4类中至少2类。

问题影响 增加密码被暴力破解的成功率

SELECT profile FROM dba_users WHERE

系统当前状态 username=’user_name’;

记录用户赋予的profile

1、参考配置操作

为用户建profile,调整PASSWORD_VERIFY_FUNCTION,指定密码复杂度

实施步骤 示例:

SQL>CREATE OR REPLACE FUNCTION my_password_verify

(username VARCHAR2 ,password

VARCHAR2 ,old_password VARCHAR2 ) RETURN BOOLEAN

IS

2 BEGIN

3 IF LENGTH(password) < 6 THEN

4

raise_application_error(-20001,''Password must be at

least 6 characters long'');

5 END IF;

6 RETURN(TRUE);

7 END;

SQL> create profile TEST_PROFILE limit

2 password_verify_function

MY_PASSWORD_VERIFY;

回退方案 alter user user_name profile default;

1、 判定条件

修改密码为不符合要求的密码,将失败

判断依据

2、 检测操作

alter user user_name identified by passwd;将失败

实施风险

重要等级

备注

★★★

1.2.2 ELK-Oracle-01-02-02

编号 ELK-Oracle-01-02-02

名称

实施目的

问题影响

缺省密码生存周期限制

对于采用静态口令认证技术的设备,帐户口令的生存期不长于90天,减少口令安全隐患。

密码被非法利用,并且难以管理

SELECT profile FROM dba_users WHERE

系统当前状态 username=’user_name’;

记录用户赋予的profile

1、 参考配置操作

为用户建相关profile,指定PASSWORD_GRACE_TIME为90天

2、 补充操作说明

在90天内,需要修改密码

实施步骤

回退方案 alter user user_name profile default;

3、 判定条件

到期不修改密码,密码将会失效。连接数据库将不会成功

判断依据

4、 检测操作

connect username/password报错

实施风险

重要等级

备注

★★★

1.2.3 ELK-Oracle-01-02-03

编号

名称

实施目的

问题影响

ELK-Oracle-01-02-03

密码重复使用限制

对于采用静态口令认证技术的设备,应配置设备,使用户不能重复使用最近5次(含5次)内已使用的口令。

密码破解的几率增加

SELECT profile FROM dba_users WHERE

系统当前状态 username=’user_name’;

记录用户赋予的profile

1、 参考配置操作

为用户建profile,指定PASSWORD_REUSE_MAX为5

2、 补充操作说明

当前使用的密码,必需在密码修改5次后才能再次被使用

实施步骤

回退方案

alter user user_name profile default;

3、 判定条件

重用修改5次内的密码,将不能成功

4、 检测操作

alter user username identified by password1;如果password1在5次修改密码内被使用,该操作将不能成功

判断依据

实施风险

重要等级

备注

1.2.4 ELK-Oracle-01-02-04

编号

名称

实施目的

问题影响

ELK-Oracle-01-02-04

密码重试限制

对于采用静态口令认证技术的设备,应配置当用户连续认证失败次数超过6次(不含6次),锁定该用户使用的账号。

允许暴力破解密码

SELECT profile FROM dba_users WHERE

系统当前状态 username=’user_name’;

记录用户赋予的profile

1、 参考配置操作

为用户建profile,指定FAILED_LOGIN_ATTEMPTS为6

2、 补充操作说明

如果连续6次连接该用户不成功,用户将被锁定

实施步骤

回退方案

alter user user_name profile default;

3、 判定条件

连续6次用错误的密码连接用户,第7次时用户将被锁定

判断依据

4、 检测操作

connect username/password,连续6次失败,用户被锁定

实施风险

重要等级

备注

1.2.5 ELK-Oracle-01-02-05

编号

名称

实施目的

问题影响

系统当前状态

ELK-Oracle-01-02-05

修改默认密码

更改数据库默认帐号的密码。

可能被破解密码

询问管理员账号密码,并记录

参考配置操作

1. 可通过下面命令来更改默认用户的密码:

ALTER USER user_name IDENTIFIED BY passwd;

2. 下面是默认用户密码列表:

CTXSYS CTXSYS

DBSNMP DBSNMP

LBACSYS LBACSYS

实施步骤

MDDATA MDDATA

MDSYS MDSYS

DMSYS DMSYS

OLAPSYS MANAGER

ORDPLUGINS ORDPLUGINS

ORDSYS ORDSYS

OUTLN OUTLN

SI_INFORMTN_SCHEMA SI_INFORMTN_SCHEMA

SYS CHANGE_ON_INSTALL

SYSMAN CHANGE_ON_INSTALL

SYSTEM MANAGER

回退方案 ALTER USER user_name IDENTIFIED BY passwd;

判定条件

不能以用户名作为密码或使用默认密码的账户登陆到数据库。

检测操作

判断依据

1. 以DBA用户登陆到sqlplus中。

2. 检查数据库默认账户是否使用了用户名作为密码或默认密码。

实施风险

重要等级

备注

2 日志配置

2.1.1 ELK-Oracle-02-01-01

编号

名称

ELK-Oracle-02-01-01

启用日志记录功能

数据库应配置日志功能,对用户登录进行记录,记录内容包实施目的 括用户登录使用的账号、登录是否成功、登录时间以及远程登录时用户使用的IP地址。

问题影响

系统当前状态

无法对用户的登陆进行日志记录

create table login_log --

登入登出信息表

(

session_id int not null, --

sessionid

login_on_time date, --

实施步骤

登入时间

login_off_time date, --

登出时间

user_in_db varchar2(30), --

登入的db user

machine varchar2(20), -- 机

器名

ip_address varchar2(20), -- ip地址

run_program varchar2(20) -- 以何程序登入

);

create or replace trigger login_on_info

-- 记录登入信息的触发器

after logon on database

Begin

insert

login_log(session_id,login_on_time,login_of

f_time,user_in_db,machine,ip_address,run_program)

select

AUDSID,sysdate,null,_user,machine,SYS_CO

NTEXT('USERENV','IP_ADDRESS'),program

from v$session where AUDSID =

into

USERENV('SESSIONID'); --當前SESSION

END;

create or replace trigger login_off_info --

记录登出信息的触发器

before logoff on database

Begin

update login_log set login_off_time =

sysdate

where session_id = USERENV('SESSIONID');

--当前SESSION

exception

when others then

null;

END;

ALTER TRIGGER 名称 DISABLE;

回退方案 drop trigger 名称;

判定条件

登录测试,检查相关信息是否被记录

判断依据

补充说明

触发器与AUDIT会有相应资源开消,请检查系统资源是否充足。特别是RAC环境,资源消耗较大。

实施风险

重要等级

备注

★★★

2.1.2 ELK-Oracle-02-01-02

编号

名称

实施目的

问题影响

系统当前状态

ELK-Oracle-02-01-02

记录用户对设备的操作

数据库应配置日志功能,记录用户对数据库的操作

无法对用户的操作进行日志记录

create table employees_log(

who varchar2(30),

action varchar2(20));

when date);

create or replace trigger biud_employ_copy

before insert or update or delete

on employees_copy

实施步骤

declare

l_action employees_%type;

begin

if inserting then

l_action:='insert';

elsif updating then

l_action:='delete';

elsif deleting then

l_action:='update';

else

raise_application_error(-2001,'you

shoule never ever get this error.');

end if;

insert into

employees_log(who,action,when)

values(user,l_action,sysdate);

end biud_employ_copy;

ALTER TRIGGER 名称 DISABLE;

回退方案 drop trigger 名称;

判断依据

实施风险

重要等级

备注

2.1.3 ELK-Oracle-02-01-03

编号

名称

ELK-Oracle-02-01-03

记录系统安全事件

实施目的

问题影响

系统当前状态

通过设置让系统记录安全事件,方便管理员分析

无法记录系统的各种安全事件

参考配置操作

create table jax_event_table(eventname

varchar2(30),time date);

create trigger tr_startup

after startup ondatabase

begin

insertinto jax_event_table

实施步骤

values(ora_sysevent,sysdate);

end;

create trigger tr_shutdown

beforeshutdownondatabase

begin

insertinto jax_event_table

values(ora_sysevent,sysdate);

end;

ALTER TRIGGER 名称 DISABLE;

回退方案 drop trigger 名称;

判断依据

实施风险

记录系统安全事件

重要等级

备注

2.1.4 ELK-Oracle-02-01-04

编号

名称

实施目的

问题影响

ELK-Oracle-02-01-04

数据库审计策略

根据业务要求制定数据库审计策略

日志被删除后无法恢复。

show parameter audit_sys_operations;

系统当前状态 show parameter audit_trail;

查看返回值,并记录.

1、参考配置操作

SQL> alter system set audit_sys_operations=TRUE

scope=spfile;

实施步骤

SQL> alter system set audit_trail=db scope=spfile;

SQL> show parameter audit;

SQL> audit all on table_name;

回退方案

noaudit all on table_name;

恢复audit_sys_operations, audit_trail属性

判定条件

对审计的对象进行一次数据库操作,检查操作是否被记录。

判断依据

检测操作

1. 检查初始化参数audit_trail是否设置。

2. 检查dba_audit_trail视图中或$ORACLE_BASE/admin/adump目录下是否有数据。

补充说明

AUDIT会有相应资源开消,请检查系统资源是否充足。特别是RAC环境,资源消耗较大

实施风险

重要等级

备注

3 通信协议

3.1.1 ELK-Oracle-03-01-01

编号

名称

实施目的

问题影响

系统当前状态

ELK-Oracle-03-01-01

信任IP连接监听器

设置只有信任的IP地址才能通过监听器访问数据库。

数据库不安全IP访问

查看$ORACLE_HOME/network/admin/

参考配置操作

只需在服务器上的文件实施步骤

$ORACLE_HOME/network/admin/中设置以下行:

ode_checking = yes

d_nodes = (ip1,ip2…)

回退方案

还原$ORACLE_HOME/network/admin/文件

判定条件

在非信任的客户端以数据库账户登陆被提示拒绝。

检测操作

判断依据

检查$ORACLE_HOME/network/admin/文件中是否设置参数ode_checking和d_nodes。

实施风险

重要等级

备注

★★

3.1.2 ELK-Oracle-03-01-02

编号

名称

实施目的

问题影响

系统当前状态

ELK-Oracle-03-01-02

网络数据传输安全

使用Oracle提供的高级安全选件来加密客户端与数据库之间或中间件与数据库之间的网络传输数据

数据传输的不安全性增加

记录检查

$ORACLE_HOME/network/admin/文件

参考配置操作

1. 在Oracle Net Manager中选择“Oracle Advanced

Security”。

2. 然后选择Encryption。

3. 选择Client或Server选项。

实施步骤

4. 选择加密类型。

5. 输入加密种子(可选)。

6. 选择加密算法(可选)。

7. 保存网络配置,被更新。

回退方案

还原$ORACLE_HOME/network/admin/文件

判定条件

通过网络层捕获的数据库传输包为加密包。

判断依据

检测操作

检查$ORACLE_HOME/network/admin/文件中是否设置tion等参数

实施风险

重要等级

备注

4 设备其他安全要求

4.1.1 ELK-Oracle-04-01-01

编号

名称

实施目的

问题影响

系统当前状态

ELK-Oracle-04-01-01

监听器密码

为数据库监听器(LISTENER)的关闭和启动设置密码。

增加数据库安全隐患

查看$ORACLE_HOME/network/admin/文件中参数PASSWORDS_LISTENER值

参考配置操作

$ lsnrctl

LSNRCTL> change_password

Old password: Not displayed

New password: Not displayed

实施步骤

Reenter new password: Not displayed

Connecting to

(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(H

OST=prolin1)(PORT=1521)(IP=FIRST)))

Password changed for LISTENER

The command completed successfully

LSNRCTL> save_config

回退方案

set password

取消密码

判定条件

判断依据

使用lsnrctl start或lsnrctl stop命令起停listener需要密码

检测操作

检查$ORACLE_HOME/network/admin/文件中是否设置参数PASSWORDS_LISTENER。

实施风险

重要等级

备注

★★

4.1.2 ELK-Oracle-04-01-02

编号

名称

实施目的

问题影响

系统当前状态

ELK-Oracle-04-01-02

连接超时限制

在某些应用环境下可设置数据库连接超时,比如数据库将自动断开超过10分钟的空闲远程连接。

空闲远程连接无法断开

记录检查

$ORACLE_HOME/network/admin/文件

参考配置操作

在中设置下面参数:

实施步骤

_TIME=10

回退方案

还原$ORACLE_HOME/network/admin/文件

判定条件

判断依据

10分钟以上的无任何操作的空闲数据库连接被自动断开

检测操作

检查$ORACLE_HOME/network/admin/文件中是否设置参数_TIME。

实施风险

重要等级

备注


本文标签: 用户 密码 数据库 记录 操作