fag oracle 审计_oracle审计

审计

1.审计是什么?

审计就是对选定用户在数据库中操作进行监控和记录。包括数据库用户和非数据库层次用户。(非数据库层次用户就是使用client_identifier属性标识的应用用户。

要对这些用户进行审计,可以使用fine-grained audit policy)。可以对单个操作进行审计,比如sql语句的执行类型,或者包括用户名、应用、时间等的结合。

你既可以审计成功的活动,也可以审计失败的。

要使用审计,需要开启并配置必要的审计项。审计的结果存储到数据字典表或操作系统文件中。

oracle推荐使用和配置审计。审计是一种有效的内部强制控制,可以是你的设置符合规范要求。它使你能够监控商业操作,找到违反公司规范的活动。

这些行为在数据库和应用中被严格控,确保在日程上应用补丁并阻止特定修改。

将审计设置为默认,就可以生成审计记录。要精心选择审计,确保符合商业应用需求。

2.为什么要进行审计

通常用于以下活动:

1)确保行为的准确性。包括对特定模式、表、行货影响特定内容的行为

2)根据账号探测到非预期操作的用户

3)调查可疑的活动。比如某个用户删除了表中数据,安全管理员可能决定审计数据库连接和所有成功的、不成功的对数据库中所有表的行删除操作。

4)将非授权用户的行为通知审计员。

5)监控和汇总特定数据库活动信息。比如数据库管理员收集哪些表被更新、进行了哪些逻辑i/o、当前有多少用户连接等

6)探测某个授权的问题或者控制执行。比如你可以创建审计策略,规定不要生成审计信息,因为数据通过其他方式保护。

这样,当有审计信息生成时,你就知道其他的安全控制失效了。

7)定位审计要求。

3.保护数据库审计痕迹

oracle将审计信息写入到sys.aud$和sys.fga_log$表。有管理员权限的用户可以删除这两个表的内容。同时,管理员未授权(非预期)的行为也可以被审计。

其他保护数据库审计痕迹的方法有:

1)设置07_dictionary_accessibility参数为false(默认)。这样,sysdba用户才可以对sys.aud$、sys.fga_log$进行删除。

2)如果安装了oracle vault,在system.aud$表创建一个范围(create a realm arcound the system.aud$ table)。默认aud$表在system用户下,通过同义词同步到sys。

4.总是被记录到标准和细粒度审计的活动

当开启标准审计时(audit_trail是db或 db,extended时),oracle审计所有非sys用户的dml操作。(即使没对sys.aud$和sys.fga$设置审计选项也会这样做)。

通常,sys以外的用户无法访问这些表,除非被显式授权。如果非sys用户篡改了这两个表,oracle为每个这样的操作记录一行。

如果设置了aduit_sys_operations=true,oracle也会在这两个表中审计sys用户的DML操作。这样,所有sys操作被写入到audit_file_dest参数指定的路径。如果audit_file_dest未设置,将其写入到基于操作系统的某个位置。

5.所有平台上都会被审计的活动

oracle总是审计特定的数据库相关操作,并将其写入操作系统审计文件中。包括一些sysdba或sysoper权限的行为。这叫做强制审计。

即使开启了审计跟踪(设置audit_trail=DB),数据库仍会将强制记录写入操作系统文件中。

默认的审计跟踪文件放在$ORACLE_BASE/admin/$ORACLE_SID/adump路径下(unix和windows)。windows下还会将其写入事务表(windows event viewer)。

你可以通过修改audit_file_Dest修改该路径。

强制审计的内容:

数据库启动 该信息存在操作系统审计跟踪中,因为启动过程中数据库的审计跟踪还无法访问

sysdba和sysoper登录

数据库关闭

如果设置了audit_syslog_level参数,强制行为写入到UNIX系统日志。

6.分布式数据库的审计

实例只审计直接连接的用户行为。本地oracle数据库不能审计远程数据库发生的行为。

实际环境中,只应该对敏感的、最关系的数据进行审计。(比如薪水)。而且要定期删除审计信息。

二、审计的类型

1.一般活动

审计sql语句、权限、模式对象、函数、存储过程、包、触发器、网络活动。

比如,可以在某个用户执行update、delete语句时进行审计。

oracle将审计记录写入audit_trail初始化参数执行的位置。

2.默认的,安全相关的sql语句和权限

oracle提供的一系列默认审计设置。

结果写入audit_trail参数指定位置。

3.特定的,细粒度活动

对于特定范围的数据,比如value>7800的,特定IP的

可以将设计记录写到数据库审计跟踪或xml格式的操作系统审计跟踪中

4.sys管理用户

可以对sysdba或sysoper权限连接的用户直接指定的sql进行审计。不包括pl/sql过程、函数。

三、标准审计

普通用户可以使用audit语句在自己的模式下进行审计,使用noaudit清除配置。

使用audit语句不受audit_trail参数限制。

如果审计被禁用了,下一次将开启。

对其他模式下的对象进行审计,需要audit any system权限

审计system权限,需要audit system权限

如果07_dictionary_accessibility参数为false,只有sysdba权限用户可以对sys.aud$和sys.fga_log$进行dml操作。

审计信息与事务是独立的,即使相关事务回滚了,审计记录仍存在。

语句和权限的审计需要在会话开启之前设置。已经开启的会话不受这些审计设置影响。

相反,对模式对象的审计立即生效。

audit_trail参数决定是否创建审计跟踪、将审计活动写到操作系统文件、或禁用审计。

开启或关闭标准审计,需要管理员权限登录数据库,执行alter system语句。需要重启实例。

使用show parameter显示audit_trail当前的设置。

audit_trail参数有以下几个值可供设置:

DB:直接审计记录记录到数据库审计跟踪(sys.aud$表),前置的和sys的跟踪记录放到操作系统跟踪文件中。

只读方式打开库时,若audit_trail设置为DB,将被自动改为OS。

DB,extended:与DB相似,但在sys.aud$表中包含CLOB字段的记录。这样可以看到绑定变量的信息。

设置语句:ALTER SYSTEM SET AUDIT_TRAIL=DB,EXTENDED SCOPE=SPFILE;

只读方式打开库时,若audit_trail设置为DB,将被自动改为OS。

OS: 所有审计记录放到操作系统文件中。oracle推荐方式。

这种方式需要设置audit_file_Dest、audit_Sys_operations、audit_Syslog_level

XML:以xml格式写入操作系统跟踪文件。

XML,extended:与xml形式相似,但包含所有sql和sql绑定信息

NONE:禁用标准审计

<
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值