Oracle数据库系统加固规范

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1. 1. 3 01- 01- 03 01-01-03
实施风险 重要等级 备注
不能通过 Sql*Net 远程以 SYSDBA用户连接到数据 库。 2. 在数据库主机上以 sqlplus ‘/as sysdba ’连 接到数据库需要输入口令。 检测操作 1. 以 Oracle 用户登陆到系统中。 2. 以 sqlplus ‘/as sysdba ’登陆到 sqlplus 环 境中。 3. 使 用 show parameter 命 令 来 检 查 参 数 REMOTE_LOGIN_PASSWORD是F否IL设E 置为 NON。E Show parameter REMOTE_LOGIN_PASSWORDFILE 4. 检查在 $ORACLE_HOME/network/admin文/ 件中参数是否被 设置成 NON。E 高 ★★★
实施步骤
一个用户 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;
二、起用角色:给用户赋予角色,角色并不会立即 起作用。 1.角色不能立即起作用。必须下次断开此次连接, 下次连接才能起作用。 2. 或者执行命令:有密码的角色 set role testrole identified by passwd 立即生效; 3.无密码的角色: set role testrole ;

失败
实施风险 重要等级 备注
低 ★★★
1. 2. 2 SHG- Or acl e- 01- 02- 02
编号
SHG-Oracle-01-02-02
名称
缺省密码生存周期限制
实施目的
对于采用静态口令认证技术的设备,帐户口令的生 存期不长于 90 天,减少口令安全隐患。
问题影响
密码被非法利用,并且难以管理
实施风险

重要等级

备注
1. 2 口 令
1. 2. 1 SHG- Or acl e- 01- 02- 01
编号 名称
SHG-Oracle-01-02-01 缺省密码长度复杂度限制
对于采用静态口令进行认证的数据库,口令长度至
实施目的
少 6 位,并包括数字、小写字母、大写字母和特殊
符号 4 类中至少 2 类。
3.修改角色:
alter role testrole identified by passwd; 4. 给角色授予权限。 Grant select on Table_name to testrole;
把角色赋予用户:(特别说明,授予角色不是实时的。 如下:) grant testrole to User_Name;
示例 :
SQL>CREATE OR
REPLACE FUNCTION
实施步骤
my_password_verify VARCHAR2
(username ,password
VARCHAR2 ,old_password VARCHAR2 ) RETURN
BOOLEAN IS
2 BEGIN
3 IF LENGTH(password) < 6 THEN
select ? * ? from ? all_users; ?
系统当前状态 select ? * ? from ? dba_users;
记录用户列表
1、参考配置操作
实施步骤
create user abc1 identified by password1; create user abc2 identified by password2; 建立 role ,并给 role 授权,把 role 赋给不同的用 户
用第二条命令收回用户多余的权限
回退方案
还原添加或删除的权限
判断依据
业务测试正常
实施风险

重要等级

备注
1. 1. 5 SHG- Or acl e- 01- 01- 05
编号
SHG-Oracle-01-01-05
名称
数据库角色
实施目的
使用数据库角色( ROLE)来管理对象的权限。
问题影响
账号管理混乱
问题影响
增加密码被暴力破解的成功率
SELECT profile
FROM dba_users WHERE
系统当前状态 username=’user_name’;
记录用户赋予的 profile
1、参考配置操作
为 用 户 建 profile
,调整
PASSWORD_VERIFY_FUNC,T指IO定N 密码复杂度
参考配置操作
通过 /etc/passwd 文件来检查是否有其它用户在
DBA组中。
删除用户: #userdel username;
实施步骤
锁定用户: 1) 修改 /etc/shadow 文件,用户名后加 *LK*
2) 将 /etc/passwd 文 件 中 的 shell 域 设 置 成
/bin/false
问题影响
数据库安全性低 .
Show parameter O7_DICTIONARY_ACCESSIBILITY
系统当前状态 记录当前状态
实施步骤
通过设置下面初始化参数来限制只有 SYSDBA权限
的用户才能访问数据字典。
alter
system
set
Βιβλιοθήκη Baidu
O7_DICTIONARY_ACCESSIBILITY=FALSE scope=spfile;
回退方案
alter user user_name profile default;
判断依据
3、 判定条件 到期不修改密码,密码将会失效。连接数据库将不
回退方案
2、 补充操作说明 1、abc1 和 abc2 是两个不同的账号名称,可根据不 同用户,取不同的名称; 删除用户:例如创建了一个用户 A ,要删除它可以 这样做
connect sys/ 密码 as sysdba;
drop user A cascade;
1. 1. 2 01- 01- 02 01-01-02
1. 1. 4 SHG- Or acl e- 01- 01- 04
编号
SHG-Oracle-01-01-04
名称
权限最小化
实施目的
在数据库权限配置能力内,根据用户的业务需要, 配置其所需的最小权限。
问题影响
账号权限越大 , 对系统的威胁性越高
select * from user_sys_privs;
实施风险 重要等级 备注
2. 查询视图 dba_profiles 和 dba_usres 来检查 profile 是否创建。 高 ★
1. 1. 7 SHG- Or acl e- 01- 01- 07
编号
SHG-Oracle-01-01-07
名称
数据字典保护
实施目的
启用数据字典保护, 只有 SYSDBA用户才能访问数据 字典基础表。
select * from dba_role_privs;
系统当前状态 select * from user_role_privs;
记录用户拥有的 role
一.创建角色 , 修改角色
1. 创建角色,不指定密码:
实施步骤
create role testrole ; 2.创建角色,指定密码:
create role testrole identified by passwd;
回退方案 判断依据
修改 O7_DICTIONARY_ACCESSIBILI为TY原来属性 以普通用户登陆到数据库,不能查看 X$开头的表, 比如: select * from sys. x$ksppi; 检测操作 1. 以 Oracle 用户登陆到系统中。 2. 以 sqlplus ‘/as sysdba ’登陆到 sqlplus 环 境中。 3. 使 用 show parameter 命 令 来 检 查 参 数 O7_DICTIONARY_ACCESSIBILI是TY否设置为 FALSE。 Show parameter O7_DICTIONARY_ACCESSIBILITY
系统当前状态
select * from user_role_privs; select * from user_tab_privs;
记录用户拥有权限
1、 参考配置操作
grant 权限 to username;
实施步骤
revoke 权限 from username; 2、 补充操作说明
用第一条命令给用户赋相应的最小权限
SELECT profile
FROM dba_users WHERE
系统当前状态 username=’user_name’;
记录用户赋予的 profile
1、 参考配置操作
为用户建相关 profile ,指定 PASSWORD_GRACE_TIME
实施步骤
为 90 天
2、 补充操作说明
在 90 天内,需要修改密码
Oracle数据库系统加固规范
目录
1 账号管理、认证授权
1. 1 账号 1. 1. 1 SHG- Or acl e- 01- 01- 01
编号
SHG-Oracle-01-01-01
名称
为不同的管理员分配不同的账号
实施目的
应按照用户分配账号,避免不同用户间共享账号 , 提高安全性。
问题影响
账号混淆, 权限不明确, 存在用户越权使用的可能。
实施风险

重要等级

备注
1. 1. 8 SHG- Or acl e- 01- 01- 08
编号
SHG-Oracle-01-01-08
名称
检查 DBA组用户
实施目的
限制在 DBA组中的操作系统用户数量,通常 DBA组 中只有 Oracle 安装用户。
问题影响
影响组用户管理
系统当前状态 Cat /etc/passwd
回退方案 判断依据
删除相应的 Role revoke ? role_name ? from ? user_name 对应用用户不要赋予 DBA Role 或不必要的权限
实施风险

重要等级

备注
1. 1. 6 SHG- Or acl e- 01- 01- 06
编号
SHG-Oracle-01-01-06
?????
2???
password_verify_function
MY_PASSWORD_VERIFY;
alter user user_name profile default;
1、 判定条件
修改密码为不符合要求的密码,将失败
2、 检测操作
alter user user_name identified by passwd;
3) #passwd -l username
只有具备超级用户权限的使用者方可使用, #passwd
回退方案 判断依据
-l username 锁定用户 , 用#passwd –d username 解 锁后原有密码失效,登录需输入新密码,修改 /etc/shadow 能保留原有密码。 还原 /etc/passwd 文件 判定条件 无其它用户属于 DBA组。 检测操作 通过 /etc/passwd 文件来检查是否有其它用户在 DBA组中。
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
ALTER USER user_name PROFILE profile_name;
回退方案 判断依据
alter user dinya profile default; 恢复默认 1. 可通过设置 profile 来限制数据库账户口令的 复杂程度,口令生存周期和账户的锁定方式等。 2. 可通过设置 profile 来限制数据库账户的 CPU资 源占用。 4、检测操作 1. 以 DBA用户登陆到 sqlplus 中。
名称
用户 profile
实施目的
对用户的属性进行控制,包括密码策略、资源限制 等。
问题影响
账号安全性低 .
SELECT profile
FROM dba_users WHERE
系统当前状态 username=’user_name’;
记录用户赋予的 profile
可通过下面类似命令来创建 profile ,并把它赋予
相关文档
最新文档