ITPub博客

首页 > 数据库 > Oracle > Oracle 统一审计- Best 实践一

Oracle 统一审计- Best 实践一

翻译 Oracle 作者:Haoword_wang 时间:2024-02-17 16:53:20 0 删除 编辑

Oracle 数据库开启审计最 Best 实践

一 Best实践指南:

1.作为常规审计规则,设计审计策略以收集满足“需求导向”的需求所需的信息量,同时满足关注的安全问题。例如,审计数据库中的每个表

是不切实际的,但是需要审计包含敏感数据(如工资)的列的表。对于统一的和细粒度的审计,我们可以使用一些机制来设计审计策略,将重

点放在要审计的特定活动上。

2.定期归档和清除审计跟踪数据。可以使用DBMS_AUDIT_MGMT包使用不通的方式清除审计记录。应定期审查收集到的审计记录,并根据

需求站点的保留策略建立收集和保留审计记录的系统。除了DBMS_AUDIT_MGMT之外,Oracle Data Safe、Oracle Audit Vault和Database Firewall还提供了一些特性,使我们能够管理审计跟踪数据的归档和清除。


二 审计开启指导:

2.1审计内容管理:

尽管审计的成本相对较低,但还是要尽可能地限制审计事件的数量。

这最大限度地减少了对审计报表执行的性能影响和审计跟踪的大小,使其更容易分析和理解。

在设计审计策略时,请遵循以下指导方针:

1评估审计的需求。

在清楚地了解审计的需求之后,我们可以设计适当的审计策略,避免不必要的审计。例如,假设正在进行审计以调查可疑的数据库活 动。这个信息本身不够具体。怀疑或注意到哪些类型的可疑数据库活动?更集中的审计策略可能是审计数据库中任意表中未经授权的删除。这一目的缩小了被审计的操作类型和受可疑活动影响的对象类型。

2.审计专业知识:

审计获得目标信息所需的语句、用户或对象的最小数量。这可以防止不必要的审计信息混淆有意义的信息,并占用SYSTEM表空间中的宝贵空间。在收集足够安全信息的需要与存储和处理这些信息的能力之间取得平衡。

例如,如果您正在进行审计以收集有关数据库活动的信息,那么请确定要跟踪的活动类型,只审计感兴趣的活动,并且只审计收集所需信息所需的时间。另一个例子是,如果您只对每个会话的逻辑I/O信息感兴趣,则不要审计对象。

3.在实施审计策略之前,确认数据管理方是否容许相关数据的收集,因为很多时候,数据库的负责人是业务系统的负责人监管,而一套数据库上面可能存在多个应用程序。


2.2典型数据库活动的审计

Oracle提供了关于何时必须收集特定数据库活动的历史信息的指导方针。

1.只审计相关的操作。

从最小需求触发,审计用户访问、系统特权的使用以及对数据库模式结构的更改。为了避免有意义的信息与无用的审计记录混在一起,并减少审计跟踪管理的数量,只审计目标数据库活动。还要记住,过多的审计会影响数据库性能。

例如,审计对数据库中所有表的更改会产生过多的审计跟踪记录,从而降低数据库性能。但是,审计对关键表(例如Human Resources表中的工资)的更改是有用的。

也可以使用细粒度审计来审计特定的操作,这在使用细粒度审计审计特定活动中有描述。

2.存档审计记录并清除审计跟踪。

在收集了所需的信息之后,将相关的审计记录归档,然后清除这些信息的审计跟踪。请参阅以下部分:

Archiving the Audit Trail

Purging Audit Trail Records

3.记住公司对隐私的考虑。

隐私法规通常会导致额外的业务隐私策略。大多数隐私法要求企业监视对个人身份信息(PII)的访问,而监视是通过审计实现的。业务级隐私策略应该处理数据访问和用户责任的所有相关方面,包括技术、法律和公司政策问题。

4.请查看Oracle数据库日志文件以获取其他审计信息。

Oracle数据库生成的日志文件包含有用的信息,可以在审计数据库时使用。例如,Oracle数据库创建一个警报文件来记录STARTUP和SHUTDOWN操作,以及向数据库添加数据文件等结构更改。

例如,如果你想审计提交或回滚的事务,你可以使用重做日志文件。

5.为了减少审计跟踪和递归SQL语句的大小,只审计敏感语句。

如果担心创建的统一审计策略会生成大量的记录,那么在create audit policy语句中包含ONLY TOPLEVEL子句。例如,对DBMS_STATS的审计。GATHER_DATABASE_STATS SQL语句可以生成数千条审计记录。可以审计所有用户的敏感语句,包括“SYS”用户。


2.3 审计可疑的数据库活动

1. Oracle提供了指导方针,指导何时审计以监视可疑的数据库活动。

当您开始审计可疑的数据库活动时,通常没有多少信息可用于目标特定用户或模式对象。因此,一般先进行审计,即采用统一的审计策略。配置审计策略解释了如何审计SQL语句、模式对象、特权等。

在记录和分析了初步审计信息之后,更改审计策略以审计特定的操作和权限。我们可以在策略中添加条件,以排除不必要的审计记录。您还可以使用AUDIT POLICY语句中的EXCEPT子句来排除不需要审计的特定用户。有关统一审计策略的更多信息,请参见使用统一审计策略的审计活动和审计报表。

可以使用细粒度审计来审计特定的操作,这在使用细粒度审计审计特定活动中有描述。继续这个过程,直到收集到足够的证据,得出关于可疑数据库活动起源的结论。

2.首先是一般审计,然后是具体审计。

常见的可疑活动如下:

在不正常时间访问数据库的用户

用户登录多次失败

不存在的用户尝试登录

此外,要注意,敏感数据(如信用卡号码)可能出现在审计跟踪列中,例如SQL文本,当在SQL查询中使用时。您还应该监视共享帐户的用户或从同一IP地址登录的多个用户。您可以查询UNIFIED_AUDIT_TRAIL数据字典视图来查找此类活动。对于非常细粒度的方法,创建细粒度的审计策略。


2.4敏感资料审计

Oracle建议在敏感对象上创建统一审计策略时包含ACTIONS ALL子句。

包含此条款可确保生成对这些敏感对象的直接访问和间接访问的审计记录。对敏感对象的审计只使用action all。


2.5 推荐的审计设置

Oracle提供了预定义的策略,其中包含适用于大多数站点的推荐审计设置。

例如:

ORA_SECURECONFIG审计与Oracle Database Release 11g相同的默认审计设置。它跟踪许多特权的使用情况,如ALTER ANY TABLE、GRANT ANY PRIVILEGE和CREATE USER。它跟踪的操作包括ALTER USER、CREATE ROLE、LOGON和其他通常执行的活动。默认情况下,只有在Oracle database Release 12c版本中创建数据库时才启用该策略。

ORA_DATABASE_PARAMETER审计常用的Oracle数据库参数设置:ALTER Database、ALTER SYSTEM和CREATE SPFILE。缺省情况下,不启用该策略。

ORA_ACCOUNT_MGMT审计常用的用户帐号和权限设置:CREATE user、ALTER user、DROP user、CREATE ROLE、DROP ROLE、ALTER ROLE、SET ROLE、GRANT和REVOKE。缺省情况下,不启用该策略。


2.6查询UNIFIED_AUDIT_TRAIL数据字典视图的 Best 实践

1.为了从查询UNIFIED_AUDIT_TRAIL数据字典视图中获得Best结果,应该遵循以下指导原则。

    确保统一审核内部表的统计数据及时更新。

    执行DBMS_STATS。在AUDSYS模式下的AUD$UNIFIED表上执行GATHER_TABLE_STATS过程,以确保在查询UNIFIED_AUDIT_TRAIL数据字典视图之前更新了统一审计表的统计信息。

2.加载写入操作系统溢出文件的统一审计记录。

    可以显式地执行此操作,也可以使用DBMS_AUDIT_MGMT来配置Oracle Scheduler作业。LOAD_UNIFIED_AUDIT_FILES过程。

3.当统一审计跟踪中的记录数量达到非常大的数量时(例如,一百万条),然后启动适当的归档和清除机制。

    归档和清除统一审计试验可以减少数据量,否则可能会增加数据量并导致读取性能问题。Oracle建议您配置标准清除策略。您创建的清除策略将取决于系统上生成的审计记录的比率。为了获得较高的审计记录生成率,需要频繁的清理。

4.将统一审计跟踪移动到自定义表空间。

    使用自定义表空间可以更好地管理审计数据,并减少对SYSAUX表空间中其他对象的影响。缺省情况下,统一审计跟踪记录写入SYSAUX表空间。要使用不同的表空间,请执行DBMS_AUDIT_MGMT。SET_AUDIT_TRAIL_LOCATION过程。

5.当查询UNIFIED_AUDIT_TRAIL数据字典视图时,在WHERE子句中包含EVENT_TIMESTAMP_UTC列。

    EVENT_TIMESTAMP_UTC列记录审计事件在UTC时区的时间戳。在查询中包含这一列有助于实现分区修剪,从而提高UNIFIED_AUDIT_TRAIL视图的读性能。


补充内容:

什么是统一审计?

在统一审计中,统一审计跟踪从各种来源捕获审计信息。

统一审计支持从以下来源捕获审计记录:

Audit records (including SYS audit records) from unified audit policies and AUDIT settings

Fine-grained audit records from the DBMS_FGA PL/SQL package

Oracle Database Real Application Security audit records

Oracle Recovery Manager audit records

Oracle Database Vault audit records

Oracle Label Security audit records

Oracle Data Mining records

Oracle Data Pump

Oracle SQL*Loader Direct Load

统一审计跟踪位于SYSAUX表空间中AUDSYS模式下的只读表中,它使这些信息在UNIFIED_AUDIT_TRAIL数据字典视图中以统一的格式可用,并且在单实例和Oracle数据库真实应用程序集群环境中都可用。除了SYS用户,拥有AUDIT_ADMIN和AUDIT_VIEWER角色的用户也可以查询这些视图。如果您的用户只需要查询视图而不需要创建审计策略,那么授予他们AUDIT_VIEWER角色。

当数据库可写时,审计记录被写入统一审计跟踪。如果数据库不可写,则将审计记录写入$ORACLE_BASE/audit/$ORACLE_SID目录下的新格式操作系统文件中。


参考文档:

“ https://docs.oracle.com/en/database/oracle/oracle-database/19/dbseg/introduction-to-auditing.html#GUID-8F354963-F0E6-4B8F-BFF4-891278E954D5”

“https://docs.oracle.com/en/database/oracle/oracle-database/19/dbseg/keeping-your-oracle-database-secure.html#GUID-D29AD047-B99B-4460-AB1F-F2BC3EC75924 ”


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26342786/viewspace-3006667/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Oracle Postgresql MySQL DBA,DEVOPS 开发人员

注册时间:2013-03-03

  • 博文量
    73
  • 访问量
    69367