Oracle—整改

Oracle—整改

注:以Oracle 19c为例

身份鉴别

检测项a

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

整改步骤

  1. 口令复杂度策略

    • SYS用户或其他具有SYSDBA权限的用户登录到数据库并执行

      @$ORACLE_HOME/rdbms/admin/utlpwdmg.sql
    • 对所有用户都启用默认的密码复杂度规则

      ALTER PROFILE default LIMIT PASSWORD_VERIFY_FUNCTION verify_function;
  2. 口令有效期策略

    ALTER PROFILE default LIMIT PASSWORD_LIFE_TIME 90;

整改完成附图

  • 口令复杂度策略

    oracle-rectification-1

  • 口令有效期策略

    oracle-rectification-2

检测项b

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

整改步骤

  1. 登录失败处理策略

    ALTER PROFILE default LIMIT FAILED_LOGIN_ATTEMPTS 10 PASSWORD_LOCK_TIME 15/1440;
  2. 登录连接超时自动退出策略

    ALTER PROFILE default LIMIT IDLE_TIME 15;

整改完成附图

  • 登录失败处理策略

    oracle-rectification-3

  • 登录连接超时自动退出策略

    oracle-rectification-4

检测项c

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

整改步骤

  • 修改sqlnet.ora文件,通常位于$ORACLE_HOME/network/admin/目录下

    ...
    # 启用服务器端加密
    SQLNET.ENCRYPTION_SERVER = REQUIRED
    # 指定支持的加密算法
    SQLNET.ENCRYPTION_TYPES_SERVER = AES256
    # 设置客户端加密(可选,建议与服务器端一致)
    SQLNET.ENCRYPTION_CLIENT = REQUIRED
    SQLNET.ENCRYPTION_TYPES_CLIENT = AES256
  • 重启监听器和数据库

    lsnrctl stop
    lsnrctl start
    SHUTDOWN IMMEDIATE;
    STARTUP;

整改完成附图

oracle-rectification-5

检测项d

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

注:Oracle自身一般无法实现,常以限制接入网段地址进行降危修正,具体可参照入侵防范c项

访问控制

检测项a

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

整改步骤

  1. 分配账户与对应的权限

    整改操作如下:

    • 新建系统管理员、安全管理员、审计管理员角色

      CREATE ROLE SYS_ADMIN_ROLE;
      CREATE ROLE SEC_ADMIN_ROLE;
      CREATE ROLE AUDIT_ADMIN_ROLE;
    • 分配对应的权限

      • 审计管理员
      GRANT CREATE SESSION TO AUDIT_ADMIN_ROLE;       -- 允许登录
      GRANT AUDIT ANY TO AUDIT_ADMIN_ROLE;            -- 允许配置和管理数据库的审计策略
      GRANT SELECT ON DBA_AUDIT_TRAIL TO AUDIT_ADMIN_ROLE;  -- 允许查看审计日志
      GRANT EXECUTE ON DBMS_FGA TO AUDIT_ADMIN_ROLE;  -- 允许配置和管理细粒度审计策略
      • 安全管理员
      GRANT CREATE SESSION TO SEC_ADMIN_ROLE;       -- 允许登录
      GRANT CREATE USER TO SEC_ADMIN_ROLE;          -- 允许创建用户
      GRANT ALTER USER TO SEC_ADMIN_ROLE;           -- 允许修改用户
      GRANT DROP USER TO SEC_ADMIN_ROLE;            -- 允许删除用户
      GRANT CREATE ROLE TO SEC_ADMIN_ROLE;          -- 允许创建角色
      GRANT DROP ANY ROLE TO SEC_ADMIN_ROLE;        -- 允许删除任何角色
      GRANT GRANT ANY ROLE TO SEC_ADMIN_ROLE;       -- 允许授予任何角色
      GRANT GRANT ANY PRIVILEGE TO SEC_ADMIN_ROLE;  -- 允许授予任何权限
      • 系统管理员
      GRANT CREATE SESSION TO SYS_ADMIN_ROLE;       -- 允许登录数据库
      GRANT ALTER DATABASE TO SYS_ADMIN_ROLE;       -- 允许修改数据库属性
      GRANT ALTER TABLESPACE TO SYS_ADMIN_ROLE;     -- 允许修改表空间属性
      GRANT CREATE TABLESPACE TO SYS_ADMIN_ROLE;    -- 允许创建新的表空间
      GRANT DROP TABLESPACE TO SYS_ADMIN_ROLE;      -- 允许删除表空间
      GRANT BACKUP ANY TABLE TO SYS_ADMIN_ROLE;     -- 允许备份任何表
    • 新建系统管理员、审计管理员、安全管理员账户

      CREATE USER ADMIN_SYS IDENTIFIED BY "Sys@admin123";
      CREATE USER ADMIN_SEC IDENTIFIED BY "Sec@admin123";
      CREATE USER ADMIN_AUDIT IDENTIFIED BY "Audit@admin123";
    • 分配角色

      GRANT SYS_ADMIN_ROLE TO ADMIN_SYS;
      GRANT SEC_ADMIN_ROLE TO ADMIN_SEC;
      GRANT AUDIT_ADMIN_ROLE TO ADMIN_AUDIT;
    • 启用审计

      AUDIT ALL BY ACCESS;
      AUDIT SELECT TABLE, UPDATE TABLE, INSERT TABLE, DELETE TABLE BY ACCESS;
  2. 限制默认账户的访问权限(二选一)

    • 禁用默认用户

      ALTER USER SCOTT ACCOUNT LOCK;
      ALTER USER ANONYMOUS ACCOUNT LOCK;
    • 重命名默认用户

整改完成附图

  1. 分配账户与对应的权限

    oracle-rectification-8

  2. 限制默认账户的访问权限

    • 禁用默认用户

      oracle-rectification-9

检测项b

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

整改步骤

整改操作如下(二选一):

  1. 重命名默认用户

    注:参照访问控制a项,限制默认账户的访问权限

  2. 修改默认账户密码

整改完成附图

  1. 禁用默认用户

    oracle-rectification-9

检测项c

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

整改步骤

  1. 禁用或删除多余账户(这里以USER_TEST为例)

    SQL> SELECT username, account_status FROM dba_users WHERE username IN ('USER_TEST');
    
    USERNAME
    --------------------------------------------------------------------------------
    ACCOUNT_STATUS
    ----------------------------------------------------------------
    USER_TEST  -- 多余账户
    OPEN

    整改操作如下:

    • 删除多余用户(这里为USER_TEST)

      DROP USER USER_TEST CASCADE;
  2. 避免共享用户

    注:仅存在一个有效账户的情况,可参照访问控制a项,添加三权分立账户

整改完成附图

oracle-rectification-8

检测项d

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

整改步骤

  • 注:参照访问控制a项,添加三权分立账户

检测项e

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

  • 默认符合,暂无整改说明

检测项f

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

  • 默认符合,暂无整改说明

检测项g

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

  • 默认不符合,暂无整改说明

安全审计

检测项a

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

整改步骤

  • 配置审计参数

    ALTER SYSTEM SET AUDIT_TRAIL = OS SCOPE=SPFILE;
    -- OS 将审计记录保存到操作系统文件中
    ALTER SYSTEM SET AUDIT_SYS_OPERATIONS = TRUE SCOPE=SPFILE;
    -- AUDIT_SYS_OPERATIONS=TRUE 所有以SYSDBA或SYSOPER权限连接的用户的操作都会被审计
    -- SCOPE=SPFILE 修改参数文件中的值(需要重启数据库生效)
    -- 默认情况下,审计文件存储在 $ORACLE_BASE/admin//adump 目录下
  • 启用标准审计

    AUDIT SESSION; -- 记录所有用户的登录尝试
    AUDIT ALL; -- 记录所有操作

整改完成附图

oracle-rectification-10

检测项b

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

  • a项开启默认符合,暂无整改说明

检测项c

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

整改步骤

  • SYS 用户登录数据库,执行以下SQL语句初始化审计清理设置:

    BEGIN
    DBMS_AUDIT_MGMT.INIT_CLEANUP(
      audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_ALL,
      default_cleanup_interval => 24 /* 清理间隔(小时) */
    );
    END;
    /
  • 设置标准数据库审计日志的归档时间戳:

    BEGIN
    DBMS_AUDIT_MGMT.SET_LAST_ARCHIVE_TIMESTAMP(
      audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD,
      last_archive_time => SYSTIMESTAMP - 181
    );
    END;
    /
  • 设置细粒度审计日志的归档时间戳

    BEGIN
    DBMS_AUDIT_MGMT.SET_LAST_ARCHIVE_TIMESTAMP(
      audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_FGA_STD,
      last_archive_time => SYSTIMESTAMP - 181
    );
    END;
    /
  • 设置操作系统审计日志的归档时间戳

    BEGIN
    DBMS_AUDIT_MGMT.SET_LAST_ARCHIVE_TIMESTAMP(
      audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_OS,
      last_archive_time => SYSTIMESTAMP - 181
    );
    END;
    /
  • 设置XML格式审计日志的归档时间戳

    BEGIN
    DBMS_AUDIT_MGMT.SET_LAST_ARCHIVE_TIMESTAMP(
      audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_XML,
      last_archive_time => SYSTIMESTAMP - 181
    );
    END;
    /
  • 启用自动清理策略,确保审计日志在180天后被删除:

    BEGIN
    DBMS_AUDIT_MGMT.CREATE_PURGE_JOB(
      audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_ALL,
      audit_trail_purge_interval => 24 /* 清理间隔(小时) */,
      audit_trail_purge_name => 'AUDIT_PURGE_JOB',
      use_last_arch_timestamp => TRUE
    );
    END;
    /
  • 查询清理策略是否生效:

    SELECT * FROM DBA_AUDIT_MGMT_CLEANUP_JOBS;
    SELECT AUDIT_TRAIL,LAST_ARCHIVE_TS,SYSTIMESTAMP - LAST_ARCHIVE_TS AS DAYS_SINCE_ARCHIVE FROM DBA_AUDIT_MGMT_LAST_ARCH_TS;

整改完成附图

oracle-rectification-11

检测项d

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

  • 默认符合,暂无整改说明

入侵防范

检测项a

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

  • 默认不适用,暂无整改说明

检测项b

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

  • 默认不适用,暂无整改说明

检测项c

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

整改步骤

  • 修改listener.ora文件,通常位于$ORACLE_HOME/network/admin/目录下

    ...
    TCP.VALIDNODE_CHECKING = YES
    # 举例允许连接的IP为:192.168.65.0/24, 10.0.0.5
    TCP.INVITED_NODES = (192.168.65.0/24, 10.0.0.5)

整改完成附图

oracle-rectification-7

检测项d

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

  • 默认符合,暂无整改说明

检测项e

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

  • 根据漏扫结果整改,不另作说明

检测项f

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

  • 默认不适用,暂无整改说明

恶意代码防范

检测项a

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

  • 默认不适用,暂无整改说明

可信验证

检测项a

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

  • 默认不适用,暂无整改说明

数据完整性

检测项a

应采用校验技术或密码技术保证重要数据在传输过程中的完整性,包括但不限于鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等;

整改步骤

  • 修改sqlnet.ora文件,通常位于$ORACLE_HOME/network/admin/目录下

    ...
    # 启用数据完整性校验
    SQLNET.CRYPTO_CHECKSUM_SERVER = REQUIRED
    # 指定支持的校验算法
    SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER = SHA256
    # 设置客户端数据完整性校验(可选,建议与服务器端一致)
    SQLNET.CRYPTO_CHECKSUM_CLIENT = REQUIRED
    SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT = SHA256
    SQLNET.OUTBOUND_CONNECT_TIMEOUT = 60
  • 重启监听器和数据库

    lsnrctl stop
    lsnrctl start
    SHUTDOWN IMMEDIATE;
    STARTUP;

整改完成附图

oracle-rectification-6

检测项b

应采用校验技术或密码技术保证重要数据在存储过程中的完整性,包括但不限于鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等。

  • 默认部分符合,暂无整改说明

数据保密性

检测项a

应采用密码技术保证重要数据在传输过程中的保密性,包括但不限于鉴别数据、重要业务数据和重要个人信息等;

整改步骤

  • 注:参照身份鉴别c项,启用服务器端加密

检测项b

应采用密码技术保证重要数据在存储过程中的保密性,包括但不限于鉴别数据、重要业务数据和重要个人信息等。

  • 默认部分符合,暂无整改说明

数据备份与恢复

检测项a

应提供重要数据的本地数据备份与恢复功能;

整改步骤

  • 虚拟资产配置快照策略

  • 实体资产提供自动备份脚本或手动备份策略

检测项b

应提供异地数据备份功能,利用通信网络将重要数据定/实时传送至备用场地。

整改步骤

  • 虚拟资产配置异地备份策略

检测项c

应提供重要数据处理系统的热冗余,保证系统的高可用性;

整改步骤

  • 虚拟资产配置冗余策略

  • 集群部署配置集群策略

剩余信息保护

检测项a

应保证鉴别信息所在的存储空间被释放或重新分配前得到完全清除;

  • 默认符合,暂无整改说明

检测项b

应保证存有敏感数据的存储空间被释放或重新分配前得到完全清除。

  • 默认符合,暂无整改说明

个人信息保护

检测项a

应仅采集和保存业务必需的用户个人信息;

  • 注:多数情况为缺少个人信息保护相关的管理制度文件,对应补充即可

检测项b

应禁止未授权访问和非法使用用户个人信息。

  • 注:多数情况为缺少个人信息保护相关的管理制度文件,对应补充即可
暂无评论

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇