目录
审计篇见:https://www.topunix.com/post-7535.html
一、审计相关内容了解后,需要做到的
1、描述DBA在安全和审计方面的职责
2、启用统- -审核
3、创建统- -的审核策略
4、保持审计跟踪
二、数据库安全
1、一个安全的系统确保它所包含的数据的保密性。有几个安全方面:
--限制对数据和服务的访问 --对用户进行身份验证 --监测可疑活动
三、监测遵守情况
1、监控或审计必须是安全程序的一个组成部分。
2、审查以下内容:
--强制审计
--标准数据库审核
--基于价值的审计
--细粒度审核(FGA)
3、审计的活动类型
可以审核以下类型的活动:
--用户帐户、角色和特权 --对象操作 --应用程序.上下文值 --Oracle数据泵 --Oracle Database Real应用程序安全性 --Oracle数据库存储库 --Oracle标签安全性 --Oracle恢复管理器 -Oracle SQL*Loader直接路径事件
4、强制审计的活动
--创建/更改/删除审核策略 --审核/无审核 --执行 -DBMS FGA -DBMS AUDIT MGMT --根据AUDSYS审核跟踪表更改表 --数据库运行期间的管理用户(SYS、SYSDBA、 SYSOPER、 SYSASM,SYSBACKUP、SYSDG和SYSKM) 的执行语句
四、关于传统审计、统一审计以及混合审计
1、传统审计(12C之前)的启用和配置,依赖于初始化参数
AUDIT_TRAIL AUDIT_FILE_DEST AUDIT_SYS_OPERATIONS AUDIT_SYSLOG_LEVEL UNIFIED_AUDIT_SGA_QUEUE_SIZE
2、传统审计的参数说明
AUDIT_TRAIL启用或禁用数据库审计(参数值有NONE/FALSE,DB/TRUE,DB_EXTENDED,OS。
当设置该参数为NONE或FALSE时,将禁止数据库审计; 当设置该参数为OS时,将激活数据库审计,并将审计记录写入到OS审计跟踪文件中; 当设置该参数为DB或TRUE时,将激活数据库审计,并将审计记录写入到数据字典SYS.AUD$中; 当设置该参数为DB_EXTENDED时,不仅将审计记录写入到数据字典SYS.AUD$中,还会填充该数据字典的SQLBIND和SQLTEXT列。
取值说明:
none 禁用数据库审计
os 启用数据库审计,并将数据库审计记录定向到操作审计记录 db 启用数据库审计,并将数据库所有审计记录定向到数据库的SYS.AUD$表 db,extended 启用数据库审计,并将数据库所有审计记录定向到数据库的SYS.AUD$表。另外,填充SYS.AUD$表的SQLBIND 列和SQLTEXT CLOB 列。 xml 启用数据库审计,并将所有记录写到XML格式的操作系统文件中。 xml,extended 启用数据库审计,输出审计记录的所有列,包括SqlText和SqlBind的值。
你可以使用SQL语句AUDIT来设置审计选项,不管如何设置此参数。
用法举例:
3、混合模式审计
12C之后,为了兼容之前的审计模式,创建新数据库时,默认使用混合模式审计。也就是两种模式同时使用。
但如果要使用新的统一审计模式,需要单独开启。默认的传统审计仍然可以使用。
4、统一审计的优点
(1) 启用统一审计后,不再依赖于先前版本中使用的初始化参数
- AUDIT_TRAIL
- AUDIT_FILE_DEST
- AUDIT_SYS_OPERATIONS
- AUDIT_SYSLOG_LEVEL
- UNIFIED_AUDIT_SGA_QUEUE_SIZE
(2)审计记录格式和存放位置统一
所有审计记录(包括对SYS的审计记录)都采用统一格式存放在同一位置,无须查看不同位置和查找不同格式的审计记录。
(3) 提升了审计记录的管理和安全性
(4)整体审计性能大大提高。
默认情况下,审计记录会自动写入AUDSYS
架构中的内部关系表。
(5)简单的审计策略管理方式
可以创建命名审计策略,以审计第一节列出的受支持组件及SYS用户。此外,可以在策略中构建条件和排除项。
如果使用Oracle Audit Vault和Database Firewall,统一审计跟踪可以极大地方便收集审计数据,因为所有数据都来自同一位置。
关于统一审计内容:https://www.topunix.com/post-7535.html
五、审计使用
1、了解审计实施
12C之前,使用的是常规的审核方式
--创建新数据库时,默认为混合模式审核。 --混合模式审计支持使用: -Oracle数据库12c前版本的审核功能 --统一的审核功能 --Oracle的建议是迁移到纯统一-审计。 --查询v$OPTION确定数据库是否已迁移到unified Auditing (结果为TRUE说明从混合模式转到了纯统一模式) SQL>SELECT VALUE FROM V$OPTION WHERE PARAMETER = 'Unified Auditing';
2、管理审核所需的角色
必须授予用户以下角色之- -以执行审核:
--AUDIT_ ADMIN使用户能够:
-创建统一 -的细粒度审核策略 -执行AUDIT和NOAUDIT SQL语句 -查看审核数据 -管理审核跟踪(AUDSYS schema中的表)
--AUDIT_ VIEWER使用户能够:
-查看和分析审计数据 -执行DBMS_ AUDIT_ UTIL PL/SQL包
3、数据库审核流程
4、配置审核信息
(1)配置审核方法
方法 说明 统一审核策略 将审核设置分组到策略中 预定义的统一-审核策略 常用的与安全相关的审核设置 定义必须满足的特定条件 细粒度审核策略/进行审核
(2)创建统一审核策略语法:
使用“CREATE AUDIT POLICY ”语句创建统一的审核策略:
五、创建审核策略
1、创建审核策略1:全系统审核选项
(1)系统特权:
CREATE AUDIT POLICY audit_ syspriv_ pol1 PRIVILEGES SELECT ANY TABLE, CREATE LIBRARY
(2)动作:
CREATE AUDIT POLICY audit actions po12 ACTIONS AUDIT,ALTER TRIGGER
(3)角色:
CREATE AUDIT POLICY audit role_ po13 ROLES mgr_ role
(4)系统权限、操作和角色:
CREATE AUDIT POLICY audit_ mixed po14 PRIVILEGES DROP ANY TABLE ACTIONS CREATE TABLE,DROP TABLE,TRUNCATE TABLE ROLES emp_role
2、创建审核策略2:对象特定的操作
根据对象特定的选项创建审核策略。
CREATE AUDIT POLICY audit objpriv_ po15 ACTIONS SELECT, UPDATE, LOCK ON hr . employees CREATE AUDIT POLICY audit objpriv_ pol6 ACTIONS ALL CREATE AUDIT POLICY audit_ objpriv po17 ACTIONS EXECUTE, GRANT ON hr.raise salary_ proc
3、创建审核策略3:指定条件
(1)每次会话的条件和评估
CREATE AUDIT POLICY audit mixed po15 ACTIONS RENAME ON hr。employees ALTER ON hr. jobs, WHEN 'SYS CONTEXT (''USERENV'',''SESSION USER'')=''JIM'' EVALUATE PER SESSION
(2)每个语句的条件和评估
CREATE AUDIT POLICY audit objpriv_ po16 ACTIONS ALTER ON OE. ORDERS WHEN ' SYS CONTEXT( ''USERENV'',''CLIENT IDENTIFIER'' )=''OE'' EVALUATE PER STATEMENT
(3)每个实例的条件和评估
CREATE AUDIT POLICY audit objpriv po17 ROLES dba WHEN SYS CONTEXT(''USERENV'',''INSTANCE NAME'')=''sales'', EVALUATE PER INSTANCE
六、启用和禁用审核策略
1、启用审核策略
--应用于所有用户。
AUDIT POLICY audit syspriv_ pol1 ;
--仅适用于某些用户。
AUDIT POLICY audit pol2 BY scott, oe; AUDIT POLICY audit_ pol3 BY sys;
--排除部分用户。
AUDIT POLICY audit po14 EXCEPT jim, george;
-根据失败或成功的操作审核记录。
AUDIT POLICY audit syspriv po11 WHENEVER suCCESSFUL ; AUDIT POLICY audit objipriv po12 WHENEVER NOT SUCCESSFUL AUDIT POLICY audit po15 BY j oe WHENEVER SUCCESSFUL ;
2、用NOAUDIT命令禁用审核策略。
SQL>noaudit policy audit 策略名称
七、审核CDB和PDB中的操作
八、修改统一审核策略
1、可以修改启用和禁用的统一审核策略。
2、使用ALTER AUDIT POLICY语句修改统一-审核策略 :
ALTER AUDIT POLICY select_ emp po1 ADD ACTIONS select on hr.job_ history
九、仅审核顶级报表
十、查看审核策略信息
SQL> SELECT policy_ name,audit option, condition eval_opt FROM audit__unified_policies; SQL> SELECT policy_ name,enabled opt, user_name , success , failure FROM audit_unified_enabled_ policies;
十一、价值基础审计
十一、细粒度审计
1、根据内容监测数据访问
2、审核SELECT, INSERT, UPDATE, DELETE和MERGE
3、可以链接到表或视图中的一个或多个列
4、可执行程序
5、通过DBMS_ FGA封装管理
十二、FGA策略
十三、审计的DML语句:注意事项
十四、FGA指南
--若要审核所有行,请使用nul1审核条件。 --若要审核所有列,请使用null审核列。 --策略名称必须唯一。 --创建策略时,审核的表或视图必须已经存在。 --如果审核条件语法无效,则当审核的对象被访问时会抛出ORA-28112错误 --如果表中不存在已审核列,则不审核任何行。 --如果事件处理程序不存在,则不会返回任何错误,并且审核记录仍为创建。
十五、存档和清楚审计跟踪
1、定期归档和清除审计线索,以防止其增长过大。
2、通过以下方式创建存档:
-将审核跟踪记录复制到数据库表
-使用Oracle Audit存储库和数据库防火墙
3、通过以下方式清除审计跟踪:
--通过使用
dbms audit mgmt.create purge job PL/ SQL过程
--通过使用dbms_ audit mgmt.clean_ audit trail PL/SQL手动程序
十六、存档和清楚审计跟踪
1、排定自动清除作业:
dbms_audit mgmt.create_purge_job (audit_trail_type =>dbms_audit mgmt . audit_trail_unified, AUDIT_Trail_PURGE_INTERVAL=> 12 , AUDIT_TRAIL_PURGE NAME => ' audit trail pj ', USE_LAST_ARCH_TIMESTAMP => TRUE, CONTAINER= =>dbms_audit_mgmt . container_current) ;
2、手动清除审核记录:
dbms_audit_mgmt.clean_audit_rai1(AUDIT_TRAIL_TYPE= =>dloms_audit_mgmt.audit_trail_unified)