一、审计分类
Oracle中审计总体上可分为“标准审计”和“细粒度审计”后者也称为“基于政策的审计”,在Oracle10G之后功能得到很大增强。其中标准审计可分为用户级审计和系统级审计。用户级审计是任何Oracle用户可设置的审计,主要是用户针对自己创建的数据库表或视图进行审计,记录所有用户对这些表或视图的一切成功和(或)不成功的访问要求以及各种类型的SQL操作。系统级审计只能由DBA设置,用以监测成功或失败的登录要求、监测GRANT和REVOKE操作以及其他数据库级权限下的操作。
二、审计用途
通常用于以下活动:
- 确保行为的准确性。包括对特定模式、表、行货影响特定内容的行为
- 根据账号探测到非预期操作的用户
- 调查可疑的活动。比如某个用户删除了表中数据,安全管理员可能决定审计数据库连接和所有成功的、不成功的对数据库中所有表的行删除操作。
- 将非授权用户的行为通知审计员。
- 监控和汇总特定数据库活动信息。比如数据库管理员收集哪些表被更新、进行了哪些逻辑i/o、当前有多少用户连接等
- 探测某个授权的问题或者控制执行。比如你可以创建审计策略,规定不要生成审计信息,因为数据通过其他方式保护。
- 这样,当有审计信息生成时,你就知道其他的安全控制失效了。
- 定位审计要求。
三、审计的内容
- 一般活动
审计sql语句、权限、模式对象、函数、存储过程、包、触发器、网络活动。
比如,可以在某个用户执行update、delete语句时进行审计。
oracle将审计记录写入audit_trail初始化参数执行的位置。 - 默认的,安全相关的sql语句和权限
oracle提供的一系列默认审计设置。
结果写入audit_trail参数指定位置。 - 特定的,细粒度活动
对于特定范围的数据,比如value>7800的,特定IP的
可以将设计记录写到数据库审计跟踪或xml格式的操作系统审计跟踪中 - sys管理用户
可以对sysdba或sysoper权限连接的用户直接指定的sql进行审计。不包括pl/sql过程、函数。
四、审计参数
- 查看参数
show parameter audit_trail; - 参数值有四种
- NONE:关闭审计功能
- DB:默认值 可以通过 SYS.AUD$ 进行查询
- OS:审计信息写入到操作系统,文件路径通过 audit_file_dest 参数控制
- DB,EXTENDED:额外记录 SQL 语句到 SYS.AUD$.SQL_TEXT
- XML:10G 开始新增 XML XML,EXTENDED
五、审计相关表
AUD$,默认创建在SYSTEM表空间,建议move到单独的表空间下
- 确认是否有表
如果查询的时候发现表不存在,说明审计相关的表还没有安装,需要安装。SELECT * FROM SYS.AUD$; -- 没有记录返回 SELECT * FROM DBA_AUDIT_TRAIL; -- 没有记录返回
- 安装
审计表安装在SYSTEM表空间。所以要确保SYSTEM表空间又足够的空间存放审计信息。@$ORACLE_HOME/rdbms/admin/cataudit.sql
- 迁移审计表至其它(USERS)表空间
ALTER TABLE sys.aud$ MOVE TABLESPACE USERS; ALTER TABLE sys.aud$ MOVE LOB(sqlbind) store as(TABLESPACE USERS); ALTER TABLE sys.aud$ MOVE LOB(SQLTEXT) store as(TABLESPACE USERS); ALTER TABLE sys.I_AUD1 REBUILD tablespace USERS;