Oracle数据库系统加固规范.doc

上传人:最*** 文档编号:1562097 上传时间:2019-10-28 格式:DOC 页数:32 大小:319.50KB
返回 下载 相关 举报
Oracle数据库系统加固规范.doc_第1页
第1页 / 共32页
Oracle数据库系统加固规范.doc_第2页
第2页 / 共32页
Oracle数据库系统加固规范.doc_第3页
第3页 / 共32页
点击查看更多>>
资源描述
Oracle数据库系统加固规范 目 录 1 账号管理、认证授权 .1 1.1 账号 .1 1.1.1 SHG-Oracle-01-01-01.1 1.1.2 SHG-Oracle-01-01-02.2 1.1.3 SHG-Oracle-01-01-03.3 1.1.4 SHG-Oracle-01-01-04.4 1.1.5 SHG-Oracle-01-01-05.5 1.1.6 SHG-Oracle-01-01-06.7 1.1.7 SHG-Oracle-01-01-07.8 1.1.8 SHG-Oracle-01-01-08.10 1.2 口令 .11 1.2.1 SHG-Oracle-01-02-01.11 1.2.2 SHG-Oracle-01-02-02.12 1.2.3 SHG-Oracle-01-02-03.14 1.2.4 SHG-Oracle-01-02-04.15 1.2.5 SHG-Oracle-01-02-05.16 2 日志配置 .18 2.1.1 SHG-Oracle-02-01-01.18 2.1.2 SHG-Oracle-02-01-02.21 2.1.3 SHG-Oracle-02-01-03.22 2.1.4 SHG-Oracle-02-01-04.24 3 通信协议 .25 3.1.1 SHG-Oracle-03-01-01.25 3.1.2 SHG-Oracle-03-01-02.26 4 设备其他安全要求 .27 4.1.1 SHG-Oracle-04-01-01.27 4.1.2 SHG-Oracle-04-01-02.29 1 账号管理、认证授权账号管理、认证授权 1.1 账号账号 1.1.1 SHG-Oracle-01-01-01 编号 SHG-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 SHG-Oracle-01-01-02 编号 SHG-Oracle-01-01-02 名称 删除或锁定无效账号 实施目的 删除或锁定无效的账号,减少系统安全隐患。 问题影响 允许非法利用系统默认账号 系统当前状态 select * from all_users; select * from dba_users; 记录用户列表 实施步骤 1、参考配置操作 alter user username lock;/锁定用户 drop user username cascade;/删除用户 回退方案 删除新增加的帐户 判断依据 首先锁定不需要的用户 在经过一段时间后,确认该用户对业务确无影响的情况下, 可以删除 实施风险 高 重要等级 备注 1.1.3 SHG-Oracle-01-01-03 编号 SHG-Oracle-01-01-03 名称 限制超级管理员远程登录 实施目的 限制具备数据库超级管理员(SYSDBA)权限的用户远程登 录。 。 问题影响 允许数据库超级管理员远程非法登陆 系统当前状态 查看 spfile,sqlnet.ora 内容 实施步骤 1、参考配置操作 在 spfile 中设置 REMOTE_LOGIN_PASSWORDFILE=NONE 来禁 止 SYSDBA 用户从远程登陆。在 sqlnet.ora 中设置 SQLNET.AUTHENTICATION_SERVICES=NONE 来禁用 SYSDBA 角 色的自动登录。 回退方案 还原 spfile,sqlnet.ora 文件配置 判断依据 判定条件 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/sqlnet.ora 文件中参数 SQLNET.AUTHENTICATION_SERVICES 是否被设置成 NONE。 实施风险 高 重要等级 备注 1.1.4 SHG-Oracle-01-01-04 编号 SHG-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 SHG-Oracle-01-01-05 编号 SHG-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 SHG-Oracle-01-01-06 编号 SHG-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 SHG-Oracle-01-01-07 编号 SHG-Oracle-01-01-07 名称 数据字典保护 实施目的 启用数据字典保护,只有 SYSDBA 用户才能访问数据字典基 础表。 问题影响 数据库安全性低. 系统当前状态 Show parameter O7_DICTIONARY_ACCESSIBILITY 记录当前状态 实施步骤 通过设置下面初始化参数来限制只有 SYSDBA 权限的用户才 能访问数据字典。 alter system set O7_DICTIONARY_ACCESSIBILITY=FALSE scope=spfile; 回退方案 修改 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 SHG-Oracle-01-01-08 编号 SHG-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 SHG-Oracle-01-02-01 编号 SHG-Oracle-01-02-01 名称 缺省密码长度复杂度限制 实施目的 对于采用静态口令进行认证的数据库,口令长度至少 6 位, 并包括数字、小写字母、大写字母和特殊符号 4 类中至少 2 类。 问题影响 增加密码被暴力破解的成功率 系统当前状态 SELECT profile FROM dba_users WHERE username=user_name; 记录用户赋予的 profile 实施步骤 1、参考配置操作 为用户建 profile,调整 PASSWORD_VERIFY_FUNCTION,指 定密码复杂度 示例: SQLCREATE OR REPLACE FUNCTION my_password_verify (username VARCHAR2 ,password VARCHAR2 ,old_password VARCHAR2 ) RETURN BOOLEAN IS 2 BEGIN 3 IF LENGTH(password) 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 SHG-Oracle-01-02-02 编号 SHG-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 SHG-Oracle-01-02-03 编号 SHG-Oracle-01-02-03 名称 密码重复使用限制 实施目的 对于采用静态口令认证技术的设备,应配置设备,使用户 不能重复使用最近 5 次(含 5 次)内已使用的口令。 问题影响 密码破解的几率增加 系统当前状态 SELECT profile FROM dba_users WHERE username=user_name; 记录用户赋予的 profile 实施步骤 1、参考配置操作 为用户建 profile,指定 PASSWORD_REUSE_MAX 为 2、补充操作说明 当前使用的密码,必需在密码修改次后才能再次被使用 回退方案 alter user user_name profile default; 判断依据 3、判定条件 重用修改次内的密码,将不能成功 4、检测操作 alter user username identified by password1;如果 password1 在次修改密码内被使用,该操作将不能成功 实施风险 低 重要等级 备注 1.2.4 SHG-Oracle-01-02-04 编号 SHG-Oracle-01-02-04 名称 密码重试限制 实施目的 对于采用静态口令认证技术的设备,应配置当用户连续认 证失败次数超过 6 次(不含 6 次) ,锁定该用户使用的账号。 问题影响 允许暴力破解密码 系统当前状态 SELECT profile FROM dba_users WHERE username=user_name; 记录用户赋予的 profile 实施步骤 1、参考配置操作 为用户建 profile,指定 FAILED_LOGIN_ATTEMPTS 为 2、补充操作说明 如果连续次连接该用户不成功,用户将被锁定 回退方案 alter user user_name profile default; 判断依据 3、判定条件 连续次用错误的密码连接用户,第次时用户将被锁定 4、检测操作 connect username/password,连续次失败,用户被锁定 实施风险 中 重要等级 备注 1.2.5 SHG-Oracle-01-02-05 编号 SHG-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 SHG-Oracle-02-01-01 编号 SHG-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 into login_log(session_id,login_on_time,login_of f_time,user_in_db,machine,ip_address,run_program ) select AUDSID,sysdate,null,sys.login_user,machine,SYS_CO NTEXT(USERENV,IP_ADDRESS),program from v$session where AUDSID = 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 SHG-Oracle-02-01-02 编号 SHG-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_log.action%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 SHG-Oracle-02-01-03 编号 SHG-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 SHG-Oracle-02-01-04 编号 SHG-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 SHG-Oracle-03-01-01 编号 SHG-Oracle-03-01-01 名称 信任 IP 连接监听器 实施目的 设置只有信任的 IP 地址才能通过监听器访问数据库。 问题影响 数据库不安全 IP 访问 系统当前状态 查看$ORACLE_HOME/network/admin/sqlnet.ora 实施步骤 参考配置操作 只需在服务器上的文件 $ORACLE_HOME/network/admin/sqlnet.ora 中设置以下行: tcp.validnode_checking = yes tcp.invited_nodes = (ip1,ip2) 回退方案 还原$ORACLE_HOME/network/admin/sqlnet.ora 文件 判断依据 判定条件 在非信任的客户端以数据库账户登陆被提示拒绝。 检测操作 检查$ORACLE_HOME/network/admin/sqlnet.ora 文件中是否 设置参数 tcp.validnode_checking 和 tcp.invited_nodes。 实施风险 高 重要等级 备注 3.1.2 SHG-Oracle-03-01-02 编号 SHG-Oracle-03-01-02 名称 网络数据传输安全 实施目的 使用 Oracle 提供的高级安全选件来加密客户端与数据库之 间或中间件与数据库之间的网络传输数据 问题影响 数据传输的不安全性增加 系统当前状态 记录检查 $ORACLE_HOME/network/admin/sqlnet.ora 文件 实施步骤 参考配置操作 1. 在 Oracle Net Manager 中选择“Oracle Advanced Security”。 2. 然后选择 Encryption。 3. 选择 Client 或 Server 选项。 4. 选择加密类型。 5. 输入加密种子(可选) 。 6. 选择加密算法(可选) 。 7. 保存网络配置,sqlnet.ora 被更新。 回退方案 还原$ORACLE_HOME/network/admin/sqlnet.ora 文件 判断依据 判定条件 通过网络层捕获的数据库传输包为加密包。 检测操作 检查$ORACLE_HOME/network/admin/sqlnet.ora 文件中是否 设置 sqlnet.encryption 等参数 实施风险 高 重要等级 备注 4 设备其他安全要求设备其他安全要求 4.1.1 SHG-Oracle-04-01-01 编号 SHG-Oracle-04-01-01 名称 监听器密码 实施目的 为数据库监听器(LISTENER)的关闭和启动设置密码。 问题影响 增加数据库安全隐患 系统当前状态 查看$ORACLE_HOME/network/admin/listener.ora 文件中参数 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/listener.ora 文件中是否 设置参数 PASSWORDS_LISTENER。 实施风险 高 重要等级 备注 4.1.2 SHG-Oracle-04-01-02 编号 SHG-Oracle-04-01-02 名称 连接超时限制 实施目的 在某些应用环境下可设置数据库连接超时,比如数据库将 自动断开超过 10 分钟的空闲远程连接。 问题影响 空闲远程连接无法断开 系统当前状态 记录检查 $ORACLE_HOME/network/admin/sqlnet.ora 文件 实施步骤 参考配置操作 在 sqlnet.ora 中设置下面参数: SQLNET.EXPIRE_TIME=10 回退方案 还原$ORACLE_HOME/network/admin/sqlnet.ora 文件 判断依据 判定条件 10 分钟以上的无任何操作的空闲数据库连接被自动断开 检测操作 检查$ORACLE_HOME/network/admin/sqlnet.ora 文件中是否 设置参数 SQLNET.EXPIRE_TIME。 实施风险 高 重要等级 备注
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!