42-Oracle 23 ai 安全新特性(Audit统一审计)

小伙伴们业务和安全运维中需要数据库审计都是由哪些模块来实现的,专门的第三方产品吗?在医疗领域防统方等业务场景和数据库的审计集合很是紧密。

在Oracle逐个版本的演进中,Oracle 23ai 的审计特性在安全领域的重大革新,延续传统审计仅支持可用,新的完全使用统一审计功能,维度更多,策略灵活。

一、Oracle审计技术架构演进

  1. 标准审计(9i-19c)​
  • 原理​:基于语句、权限、对象三层监控:
    • 语句审计​:跟踪特定SQL类型(如AUDIT TABLE监控所有DDL)
    • 权限审计​:记录系统权限使用(如AUDIT DELETE ANY TABLE)
    • 对象审计​:针对特定对象操作(如AUDIT INSERT ON hr.employees)
  • 存储​:记录存于SYS.AUD$表或操作系统文件(由AUDIT_TRAIL=DB/OS控制)
    • 审计记录可存于数据库表​(如SYS.AUD$或12c+的UNIFIED_AUDIT_TRAIL)或操作系统文件​(路径由AUDIT_FILE_DEST参数指定)
    • 支持扩展记录(AUDIT_TRAIL=DB_EXTENDED可捕获完整的SQL文本及绑定变量)
  1. 细粒度审计(FGA,9i+)​
  • 行级监控​:通过DBMS_FGA.ADD_POLICY定义基于内容的审计策略(如监控salary > 10000的查询)
  • 局限​:仅支持SELECT语句,DML操作无法覆盖
  1. 统一审计(12c+)​
  • 架构革新​:合并标准审计与FGA,策略统一管理,通过策略化配置(如CREATE AUDIT POLICY)实现集中管理,显著提升效率:
CREATE AUDIT POLICY policy_name ACTIONS SELECT ON hr.employees;

--Audit policy created.
  • 性能优化​:审计日志集中存储在UNIFIED_AUDIT_TRAIL视图,查询效率提升
  • Oracle强烈建议12.2及以上版本用户立即迁移至统一审计。

、技术特点

1. 精准可控
  • 可限定审计范围:按用户(BY user)、操作结果(WHENEVER SUCCESSFUL/NOT SUCCESSFUL)或频率(BY ACCESS/SESSION)精细化控制
  • ​特权操作强制审计​:启用AUDIT_SYS_OPERATIONS=TRUE后,所有SYS及SYSDBA操作必被记录(存于OS文件,防篡改)
​2. ​低侵入高兼容
  • 审计策略独立于应用逻辑,无论用户通过程序或工具(如SQL*Plus)访问,行为均被捕获
  • 符合C2级安全标准及GDPR、PCI DSS等法规要求,直接支撑合规审计
3. ​性能可调优
  • 支持审计表分区、定期清理日志,避免存储膨胀
  • 敏感操作聚焦(如列级或FGA策略)减少冗余日志,平衡安全与性能

三、23ai全新审计架构

1. 传统审计彻底弃用
  • 删除默认传统审计配置
  • 以下参数被废弃(设置时触发ORA-32004/ORA-32006警告):
  • AUDIT_TRAIL, AUDIT_SYS_OPERATIONS, AUDIT_FILE_DEST, AUDIT_SYSLOG_LEVEL
2. 强制统一审计模式
  • 取消uniaud_on/uniaud_off选项,统一审计始终启用
  • 预定义策略默认激活​:
    • - ORA_SECURECONFIG(安全配置变更)
    • - ORA_LOGIN_LOGOUT(登录登出)
    • - ORA_DV_SCHEMA_CHANGES(字典敏感列访问)
    • - ORA_DV_DEFAULT_PROTECTION(数据库保险箱变更)
    • - ORA$DICTIONARY_SENS_COL_ACCESS(字典敏感列访问)

四、Oracle 23ai核心新特性

1. ​列级精准审计
  • 原理​:仅监控指定敏感列的操作(如salary更新)
-- 创建策略审计sal、ename列的SELECT操作
CREATE AUDIT POLICY employee_pii_access ACTIONS SELECT(sal, ename) ON scott.emp;
-- 追加审计sal列的UPDATE操作
ALTER AUDIT POLICY employee_pii_access ADD ACTIONS UPDATE(sal) ON scott.emp;
-- 审计empid列的INDEX操作
CREATE AUDIT POLICY employee_pii_access1 ACTIONS INDEX(empid) ON scott.emp;
--以上为示例
CREATE AUDIT POLICY emp_salary_policy
  ACTIONS UPDATE(salary), SELECT(salary) ON hr.employees;
--Audit policy created.
  -- 仅审计薪资字段
AUDIT POLICY emp_salary_policy;
--Audit succeeded.

-- 1. 创建测试表(SYSDBA)
CREATE TABLE employees (
    id      NUMBER PRIMARY KEY,
    name    VARCHAR2(50),
    salary  NUMBER
);
INSERT INTO employees VALUES (1, 'Alice', 10000);

-- 2. 创建审计策略(SYSDBA)
CREATE AUDIT POLICY audit_salary 
  ACTIONS SELECT(salary) ON employees;  -- 仅监控 salary 查询
AUDIT POLICY audit_salary;

-- 3. 模拟用户查询
SELECT salary FROM employees WHERE id=1;  -- 被审计
SELECT name FROM employees WHERE id=1;    -- 不被审计

-- 4. 查看审计记录
SELECT event_timestamp, dbusername, sql_text 
FROM unified_audit_trail 
WHERE object_name='EMPLOYEES';
2. ​区块链表集成
  • 原理​:
    • 通过CREATE BLOCKCHAIN TABLE创建防篡改表,每行生成SHA-256哈希链
  • 场景​:金融交易日志、医疗存证等司法取证场景
CREATE BLOCKCHAIN TABLE audit_logs (
  log_id      NUMBER GENERATED ALWAYS AS IDENTITY,
  action      VARCHAR2(50),
  user_name   VARCHAR2(30)
)
NO DROP UNTIL 30 DAYS IDLE
NO DELETE UNTIL 16 DAYS AFTER INSERT  -- 添加此行,保留期最少16天
HASHING USING "SHA2_512" VERSION "v1";  -- 指定哈希算法可以有不同的版本(必填)
--Table created.
INSERT INTO audit_logs (action, user_name) VALUES ('SALARY_UPDATE', 'ADMIN');
COMMIT;
--
INSERT INTO audit_logs (action, user_name) VALUES ('SALARY_UPDATE', 'ADMIN');
1 row created.
SYS@FREE> COMMIT;
Commit complete.

五、统一审计策略检查 

SELECT POLICY_NAME, AUDIT_CONDITION, OBJECT_NAME 
FROM audit_unified_policies 
WHERE OBJECT_TYPE = 'Table'; 

-- 检查已启用的表级策略

、传统审计的兼容性与过渡

  • 升级兼容性​23ai保留现有传统审计配置,继续生成审计记录,但禁止新增或修改传统审计设置(仅允许删除)。
  • 迁移强制要求
    • 禁用所有传统审计设置:执行 NOAUDIT 命令
    • 关闭传统审计参数:
AUDIT_TRAIL = None
AUDIT_SYS_OPERATIONS = False

 FGA策略处理​细粒度审计(FGA)策略自动迁移,审计记录将输出至统一审计线索。

、迁移操作指南

  1. 基础场景
  • 启用核心预定义策略:ORA_SECURECONFIG + ORA_LOGIN_LOGOUT
  • 关闭传统审计参数
迁移价值​:通过统一审计实现精细化管控(如列级操作追踪),同时降低传统审计的维护成本。预定义策略的强制启用大幅提升基础安全水位。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值