DB2 9 审计(2)

2019-09-01 11:52

为了完成安全合格证书,一家公司必须表明能够监视数据库内由拥有系统管理(SYSADM)或数据库管理(DBADM)权限的那些人执行的任何和所有活动。

要捕获数据库内的所有操作,应审计 EXECUTE 和 SYSADMIN 类别。安全性管理员创建一个审计这两种类别的审计策略。安全性管理员可以使用 AUDIT 语句将此审计策略与 SYSADM 和 DBADM 权限关联。然后,拥有 SYSADM 或 DBADM 权限的任何用户将记录任何可审计事件。以下示例显示如何创建这种审计策略并将它与 SYSADM 和 DBADM 权限关联:

CREATE AUDIT POLICY ADMINSPOLICY CATEGORIES EXECUTE STATUS BOTH, SYSADMIN STATUS BOTH ERROR TYPE AUDIT COMMIT

AUDIT SYSADM, DBADM USING POLICY ADMINSPOLICY COMMIT

审计特定角色执行的任何访问的示例

一家公司允许对其企业数据库进行 Web 应用程序访问。使用 Web 应用程序的确切个人未知。只知道使用的角色,该角色用于管理数据库权限。该公司希望监视作为该角色成员的任何人的操作,以便检查他们提交给数据库的请求并确保他们只通过 Web 应用程序访问数据库。

EXECUTE 类别包含跟踪这种情况下的用户活动所需的审计级别。第一步是创建适当的审计策略并将它与 Web 应用程序所使用的角色关联(在本示例中,角色为 TELLER 和 CLERK):

CREATE AUDIT POLICY WEBAPPPOLICY CATEGORIES EXECUTE WITH DATA STATUS BOTH ERROR TYPE AUDIT COMMIT

AUDIT ROLE TELLER, ROLE CLERK USING POLICY WEBAPPPOLICY COMMIT

存储和分析审计日志

系统管理员可以使用 db2audit configure 命令配置活动审计日志和已归档审计日志的路径。归档审计日志会将活动审计日志移至一个归档目录,而服务器开始写入新的活动审计日志。这将允许脱机存储审计日志,而不必从审计日志中抽取数据,直到需要时才这样做。在安全性管理员或系统管理员归档了日志后,他们可以将日志中的数据抽取到定界文件中。可以将定界文件中的数据装入到 DB2? 数据库表中以进行分析。

配置审计日志的位置允许您将审计日志放置在一个较大的高速磁盘中,并可选择对数据库分区功能部件(DPF)安装中的每个节点使用不同的磁盘。在 DPF 环境中,活动审计日志的路径可以是对每个节点唯一的目录。使每个节点具有唯一目录有助于避免文件争用,因为每个节点都写入不同磁盘。 在 Windows 操作系统上,审计日志的缺省路径为instance\\security\\auditdata,而在 Linux 和 UNIX 操作系统上为instance/security/auditdata。如果不想使用缺省位置,那么可以选择不同的目录(如果不存在备用位置,可以在系统上创建新目录以用作备用位置)。要设置活动审计日志位置和

已归档审计日志位置的路径,请使用带有 datapath 和 archivepath 参数的 db2audit configure 命令,如以下示例中所示:

db2audit configure datapath /auditlog archivepath /auditarchive

使用 db2audit 设置的审计日志存储位置适用于实例中的所有数据库。

注:如果服务器上有多个实例,那么每个实例都应该有不同的数据和归档路径。

DPF 环境中的活动审计日志的路径(datapath)

在 DPF 环境中,必须在每个分区上使用相同的活动审计日志位置(由 datapath 参数设置)。可使用两种方法来实现此目的:

1. 指定了 datapath 参数时,使用数据库分区表达式。使用数据库分区表达式允许将分区号包

括在审计日志文件的路径中,并将结果包括在每个数据库分区上的不同路径中。 2. 使用在所有节点上相同的共享驱动器。

可以在对 datapath 参数指定的值中的任何位置使用数据库分区表达式。例如,在由三个节点组成的系统上(其中数据库分区号为 10),以下命令:

db2audit configure datapath '/pathForNode $N'

将使用下列路径:

? ? ?

/pathForNode10 /pathForNode20 /pathForNode30

注:不能使用数据库分区表达式来指定归档日志文件路径(archivepath 参数)。

归档活动审计日志

系统管理员可以使用 db2audit 工具来归档实例和数据库审计日志以及从任一类型的已归档日志中抽取审计数据。要归档活动审计日志,安全性管理员可以使用 SYSPROC.AUDIT_ARCHIVE 存储过程。要从日志中抽取数据并将它们装入到定界文件中,安全性管理员可以使用 SYSPROC.AUDIT_DELIM_EXTRACT 存储过程。

以下是归档和抽取审计日志时安全性管理员需要遵循的步骤:

1. 调度应用程序以使用存储过程 SYSPROC.AUDIT_ARCHIVE 来执行活动审计日志的常规

归档。

2. 确定感兴趣的已归档日志文件。使用 SYSPROC.AUDIT_LIST_LOGS 表函数来列示所有已

归档审计日志。

3. 将文件名作为参数传递给 SYSPROC.AUDIT_DELIM_EXTRACT 存储过程以从日志中抽

取数据并将它们装入到定界文件中。

4. 将审计数据装入到 DB2 数据库表中以进行分析。

不需要立即将已归档日志文件装入到表中以进行分析;可以保存它们以在将来分析。例如,可能只需要在进行公司审计时查看这些文件。

如果归档期间出现问题(例如,用完归档路径中的磁盘空间,或者归档路径不存在),那么归档进程将失败并且在审计日志数据路径中生成文件扩展名为 .bk 的临时日志文件,例如,

db2audit.instance.log.0.20070508172043640941.bk。在解决问题后(通过在归档路径中分配足够多

的磁盘空间,或者通过创建归档路径),必须将此临时日志移至归档路径。然后,可以像对待成功归档的日志一样对待该日志。

在 DPF 环境中归档活动审计日志

在 DPF 环境中,如果在实例正在运行时发出归档命令,那么归档进程将自动在每个节点上运行。所有节点上的已归档日志文件名中都使用相同的时间戳记。例如,在由三个节点组成的系统上(其中数据库分区号为 10),以下命令:

db2audit archive to /auditarchive

将创建下列文件:

? ? ? ? ?

/auditarchive/db2audit.log.10.timestamp /auditarchive/db2audit.log.20.timestamp /auditarchive/db2audit.log.30.timestamp

将 node 选项与 db2audit 命令配合使用以仅对当前节点执行归档命令。 使用 db2_all 命令以在所有节点上运行归档命令。 例如:

如果在实例未运行时发出归档命令,那么可以通过下列其中一种方法控制归档命令在哪个节点上运行:

db2_all db2audit archive node to /auditarchive

这将设置 DB2NODE 环境变量以指示在其上调用该命令的节点。

此外,可以在每个节点上单独地发出单个归档命令。例如:

? ? ?

在节点 10 上:

db2audit archive node 10 to /auditarchive

在节点 20 上:

db2audit archive node 20 to /auditarchive

在节点 30 上:

db2audit archive node 30 to /auditarchive

注:当实例未在运行时,每个节点上的已归档审计日志文件名中的时间戳记不同。 注:建议在所有节点间共享归档路径,但这不是必需的。

注: AUDIT_DELIM_EXTRACT 存储过程和 AUDIT_LIST_LOGS 表函数只能访问从当前(协调程序)节点可视的已归档日志文件。

归档日志并将数据抽取到表中的示例

一家公司为了确保能够捕获并存储其审计日志以供将来使用,需要每六个小时创建一个新的审计日志并将当前审计日志归档到 WORM 驱动器中。该公司安排安全性管理员每六个小时发出下列对 SYSPROC.AUDIT_ARCHIVE 存储过程的调用。已归档日志的路径是缺省归档路径 /auditarchive,并且归档命令在所有节点上运行:

CALL SYSPROC.AUDIT_ARCHIVE( '/auditarchive', -2 )

作为安全过程的一部分,该公司标识并定义了一定数目的可疑行为或不允许的活动,需要在审计数据中监视这些行为或活动。他们希望抽取一个或多个审计日志中的所有数据,将这些数据放置在关系表中,然后使用 SQL 查询来查找这些活动。该公司已确定要审计的适当类别,并使必需的审计策略与数据库或其他数据库对象关联。

例如,他们可以调用 SYSPROC.AUDIT_DELIM_EXTRACT 存储过程来从所有节点中抽取所有类别的已归档审计日志,这些审计日志是使用缺省定界符和时间戳记 2006 年 4 月创建的:

CALL SYSPROC.AUDIT_DELIM_EXTRACT(

'', '', '/auditarchive', 'db2audit.%.200604%', '' )

在另一个示例中,他们可以调用 SYSPROC.AUDIT_DELIM_EXTRACT 存储过程来从 EXECUTE 类别中抽取成功事件的已归档审计记录、从 CHECKING 类别中抽取失败事件的已归档审计记录,并从具有感兴趣的时间戳记的文件中抽取已归档审计记录:

CALL SYSPROC.AUDIT_DELIM_EXTRACT( '', '', '/auditarchive', 'db2audit.%.20060419034937', 'category

execute status success, checking status failure );

?

审计日志文件名

审计日志文件的名称可区分它们是实例级还是数据库级日志,并标识它们源自数据库分区功能部件(DPF)环境中的哪个分区。已归档审计日志的文件名后面追加了运行归档命令的时间戳记。

? 创建表来容纳 DB2 审计数据

使用数据库表中的审计数据之前,需要创建表来容纳数据。应考虑在单独的模式中创建这些表,以将表中的数据与未授权用户相隔离。

? 将 DB2 审计数据装入表中

在已归档审计日志文件并将它抽取到定界文件中,并且创建了数据库表来保存审计数据后,可以将定界文件中的审计数据装入数据库表中以进行分析。

? 审计归档和抽取存储过程

安全性管理员可以使用 SYSPROC.AUDIT_ARCHIVE 和

SYSPROC.AUDIT_DELIM_EXTRACT 存储过程以及 SYSPROC.AUDIT_LIST_LOGS 表函数来归档他/她当前连接的数据库的审计日志并将该数据库中的数据抽取到定界文件中。

审计日志文件名

审计日志文件的名称可区分它们是实例级还是数据库级日志,并标识它们源自数据库分区功能部件(DPF)环境中的哪个分区。已归档审计日志的文件名后面追加了运行归档命令的时间戳记。

活动审计日志文件名

在 DPF 环境中,活动审计日志的路径可以是对每个分区唯一的目录,以便每个分区写入各自的文件。为了准确跟踪原始审计记录,将分区号包括在审计日志文件名中。例如,在分区 20 上,实例级审计日志文件名为 db2audit.instance.log.20。对于此实例中名为 testdb 的数据库,审计日志文件为 db2audit.db.testdb.log.20。

在非 DPF 环境中,将分区号视为 0(零)。在这种情况下,实例级审计日志文件名为 db2audit.instance.log.0。对于此实例中名为 testdb 的数据库,审计日志文件为 db2audit.db.testdb.log.0。

已归档审计日志文件名

活动审计日志归档后,其文件名后面将追加以下格式的当前时间戳记:YYYYMMDDHHMMSS(其中 YYYY 是年份,MM 是月份,DD 是日,HH 是小时,MM 是分钟,而 SS 是秒)。 归档审计日志的文件名格式取决于审计日志的级别: 实例级已归档审计日志

实例级已归档审计日志的文件名为 db2audit.instance.log.partition.YYYYMMDDHHMMSS。 数据库级已归档审计日志

数据库级已归档审计日志的文件名为

db2audit.dbdatabase.log.partition.YYYYMMDDHHMMSS。 在非 DPF 环境中,partition的值为 0(零)。

时间戳记表示运行归档命令的时间,因此它并非总是准确地反映日志中最后一条记录的时间。已归档审计日志文件可能包含一些记录,它们的时间戳记比日志文件名中的时间戳记要晚几秒钟,这是因为:

? ?

在发出归档命令时,审计设施将等到写入任何进程内记录完成后再创建已归档日志文件。

在多机器环境中,远程机器上的系统时间可能与发出归档命令的机器上的系统时间不同步。

在 DPF 环境中,如果运行归档命令时服务器正在运行,那么时间戳记在各个分区中一致并反映在执行归档命令的分区中生成的时间戳记。

创建表来容纳 DB2 审计数据

使用数据库表中的审计数据之前,需要创建表来容纳数据。应考虑在单独的模式中创建这些表,以将表中的数据与未授权用户相隔离。

? ? ?

有关创建模式所需的权限和特权,请参阅 CREATE SCHEMA 语句。 有关创建表所需的权限和特权,请参阅 CREATE TABLE 语句。 确定想要用来容纳表的表空间。(本主题未描述如何创建表空间。)

注:要创建用来容纳审计数据的表的格式在每个发行版中可能都不同。可能添加了新列,或者现有列的大小可能改变。脚本 db2audit.ddl 创建正确格式的表来包含审计记录。

下列示例说明如何创建表来容纳定界文件中的记录。如果愿意,可以创建单独模式来包含这些表。 如果不想使用这些文件中包含的所有数据,那么可以忽略表定义中的列或根据需要不创建某些表。如果忽略表定义的列,那么必须修改将数据装入这些表所用的命令。

1. 发出 db2 命令打开 DB2? 命令窗口。

2. 可选。创建模式来容纳表。对于此示例,模式名为 AUDIT:


DB2 9 审计(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:太阳公司管道工程案例分析(含SWOT波斯顿矩阵等多种模型)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: