使用IBM InfoSphere Guardium监视和审计IBM DB2 for i数据库活动

总览

InfoSphere Guardium是企业信息数据库审核和保护解决方案,可帮助企业跨各种关系和非关系数据源(例如Oracle,Teradata,IMS,VSAM,Microsoft SharePoint,IBM Netezza和DB2 for z / OS)保护和审核信息。以及适用于Linux,UNIX和Windows的DB2。 借助InfoSphere Guardium V9.0,现在可以将DB2 for i包含为数据源,使您能够监视从本机接口以及通过SQL的访问。

本文提供了InfoSphere Guardium架构的简要概述,描述了如何配置访问(包括性能的最佳实践),并展示了如何访问数据活动报告。

InfoSphere Guardium简介

IBM InfoSphere Guardium解决方案得到了发展,可满足需要实施更多自动化和可审核数据安全性实践的组织的特殊需求。 InfoSphere Guardium通过安装在数据库服务器(或文件共享或Microsoft SharePoint)上的轻量级软件探针(请参见图1)连续监视数据库事务。 这些探针(对于软件点击,称为S-TAP)监视所有数据库事务,包括特权用户的事务。 S-TAP也不需要对数据库或其应用程序进行任何更改。

探针将事务转发到网络上的强化收集器,在此将它们与先前定义的策略进行比较以检测违规情况。 系统可以响应各种基于策略的操作,包括生成警报,并且对于某些数据库可以实时阻止事务。 (阻止当前不适用于DB2 for i数据库活动监视。)

图1. InfoSphere Guardium数据库活动监视
InfoSphere Guardium数据库活动监视

InfoSphere Guardium支持各种各样的部署,以支持非常大的且地理分布的基础架构。

由于我们几乎不了解InfoSphere Guardium可以做的事情,请参阅参考资料部分,以获取有关InfoSphere Guardium功能的更多信息,包括有助于您发现敏感数据的数据分类和有助于评估基础架构中薄弱环节的漏洞评估。 。 请注意,并非所有功能都可用于所有数据源。

有什么新东西?

以前可以使用三种主要方法来获得InfoSphere Guardium对IBM i监视的支持:

  • 导入审核日记帐分录(QSYS / QAUDJRN)以及随后的分析和报告

    尽管IBM i中的审计日志支持为可审计事件提供了很好的支持,但是与其他Guardium数据库产品支持相比,审计条目中的详细信息数量很少。 例如,SQL语句和变量值不在QAUDJRN中审核。 另外,由于支持需要导出和导入,因此支持不是实时解决方案的最佳选择。

  • 导入数据库监视器条目以及随后的分析和报告

    数据库监视器(STRDBMON)可用于捕获SQL语句并将其写入数据库表。 随后,可以将该表导入到Guardium收集器中。 尽管此方法可以捕获SQL语句,变量等; 数据库监视器支持主要用于性能分析。 结果是捕获了仅在性能分析上下文中才有意义的大量数据,从而导致大量存储和处理资源的消耗。 另外,由于支持需要导入,因此支持不如实时解决方案那样理想。 此方法不提供对数据库对象的本机访问的任何支持。

  • 网络监视以捕获SQL访问

    尽管此支持能够实时捕获在网络上流动SQL语句,但是无法监视在IBM i服务器上的程序,过程和功能中运行的任何SQL语句。 此方法不提供对数据库对象的本机访问的任何支持。

InfoSphere Guardium 9.0版中引入的新方法提供了一种集成解决方案,克服了以前方法的局限性。

  • 可以捕获和审计任何SQL访问,无论它是在客户机上启动还是在IBM i服务器上启动。
  • 还可捕获在审计日志中捕获的任何本机访问,并将其发送到InfoSphere Guardium收集器。
  • SQL访问和本机访问都实时发送到InfoSphere Guardium收集器。
  • 比审计日志中可用的详细信息要多得多,包括SQL语句,变量值,客户端专用寄存器,接口信息,用户,作业,传输控制协议/ Internet协议(TCP / IP)地址和端口。 但是,与传统的数据库监视不同,仅捕获在安全上下文中有趣的数据并将其发送到InfoSphere Guardium收集器。 这大大减少了所需的存储和资源消耗。
  • 可以在IBM i服务器上指定过滤器,以仅捕获审计员所需的信息。 例如,设置对特权用户执行的任何SQL或本机访问的审核非常简单。
  • 为InfoSphere Guardium收集的数据永远不会写入IBM i服务器上的磁盘,从而提供了安全的日志记录级别。

新方法主要用于审核数据库访问。 如果您需要对更多种类的非数据库对象访问进行审计,那么仍然可以使用现有的IBM i审计支持来导出和导入审计日志。

引入针对DB2 for i的InfoSphere Guardium数据库活动监视

正如我们在上一节中提到的那样,InfoSphere Guardium Version 9.0数据库活动监视具有DB2 for i的更详细的审计信息,包括:

  • 会话开始和结束时间
  • 对象名称(例如表或视图)
  • 用户数
  • SQLSTATE
  • 工作和工作编号
  • SQL语句和变量
  • 客户特殊寄存器值
  • TCPIP地址和端口
  • 接口信息,例如ODBC,ToolboxJDBC,本机JDBC,.NET等

此信息可用于创建活动报告,帮助您满足审核要求以及生成未经授权活动的警报。 图2显示了系统中某个特定用户的一些数据库活动,包括数据的摘要和更详细的版本。 要记住的重要一点是,InfoSphere Guardium报告基础结构具有强大的警报功能,并具有自动执行可重复的,定期计划的审计流程的功能。

图2.示例SQL活动报告
示例SQL活动报告

通过使用InfoSphere Guardium S-TAP,您可以监视DB2 for iSQL和本机数据库应用程序编程接口(API)流量。 该配置与其他数据库S-TAP相似,因为数据库服务器上的处理器使用率很低,并且数据库事件与环境中的任何其他受监视数据源一起被发送到InfoSphere Guardium收集器以进行报告和警报。

可以将两个数据源发送到InfoSphere Guardium(请参阅图3):

  • SQL应用程序SQL性能监视器(也称为数据库监视器 )数据
  • 使用非SQL接口的应用程序的QSYS / QAUDJRN审核条目

DB2 for i S-TAP需要可移植应用程序解决方案环境(PASE),当具有* JOBCTL授权(或QIBM_DB_SQLADM函数使用特权)的用户启动和停止DB2 for i S-TAP时,该应用程序会根据需要自动启动和停止。从InfoSphere Guardium用户界面中。

图3.用于数据库活动监视的两种信息源
用于数据库活动监视的两种信息源

要求

集成需要满足以下先决条件:

  • 在IBM i上:有关建议的最低版本和PTF,请参阅IBM i Technology Updates wiki
    • 请参阅“ DB2 IBM i PTF组时间表”以订阅或查看DB2 IBM i PTF组时间表和可用性。
    • i的许可程序5722SS1-33便携式应用解决方案环境(PASE)是免费的,可以选择安装操作系统的组件。 验证是否在您的IBM i服务器上安装了PASE。 如果不是,请参阅DB2 for i信息中心
  • IBM InfoSphere Guardium V9.0或更高版本的设备(配置为收集器)和Standard Activity Monitoring for Databases软件权利。
  • 对于DB2服务器端代理,您需要从IBM Fix Central下载适当的软件分接头(S-TAP)。 为了确保您获得正确的S-TAP,请在IBM i上进行过滤,如下所示。

在尝试为i监视DB2之前,请确保您检查IBM支持站点以获取可能需要的其他补丁程序。

本文不提供有关IBM InfoSphere Guardium设备的安装和配置的信息,并假定您至少有一个设备连接到IBM i服务器。

收集什么

从QAUDJRN发送的信息与从数据库监视器发送的信息不相同。 下表描述了每种方法提供的信息。

表1.可以收集用于审核的数据库监视器与审核日志数据
审核数据 SQL监控器 审计日记
工作名称
工作用户
工作编号
开始时间
时间结束 始终与开始时间相同
SQLSTATE 无效的密码(PW)和通用审核记录(GR)的08001
授权失败(AF)的42501
00000其他
SQL代码 -30080用于无效密码(PW)和用于通用审计记录(GR)
-551用于授权失败。 (AF)
0其他
SQL语句 是–仅限60K 否-改为基本日记帐分录描述
SQL变量 是-限制为1000个字节 没有
接口 总是QAUDJRN
客户端应用程序名称 是, 没有
客户端用户ID 没有
客户端工作站 没有
客户会计 没有
客户程序 没有
当前用户
线程ID
程序架构 是,如果该语句是从程序或服务程序执行的 是,如果该语句是从程序或服务程序执行的
程序名称 是,如果该语句是从程序或服务程序执行的 是,如果该语句是从程序或服务程序执行的
客户端IP地址
本地或服务器端口号
RDB名称
行数 是的,仅适用于INSERT,DELETE,UPDATE,MERGE,OPEN *,VALUES INTO,CREATE TABLE AS,DECLARE GLOBAL TEMPORARY TABLE AS和SET VARIABLE 没有

* OPEN在InfoSphere Guardium报告中显示为SELECT。

请注意,InfoSphere Guardium用于审计目的的数据库监视器不包括与安全性无关的事件。 例如,诸如免费定位器或发布之类的活动未被审核。 不审核EXECUTE,但是审核运行SQL语句。 不审核PREPARE,但审核任何授权错误。

配置DB2 for i以进行QAUDJRN审计(可选)

如果已经在IBM i上配置了审计,或者您只对SQL审计感兴趣,那么可以跳过此步骤。

在DB2 for i服务器上,创建QSYS / QAUDJRN日志并启用审计(如果尚未完成)。 有关设置安全性审计的更多信息,请参阅IBM i信息中心

例如,在IBM i命令行上:

CRTJRNRCV JRNRCV(QSYS/RCV1)
CRTJRN JRN(QSYS/QAUDJRN)
 JRNRCV(QSYS/RCV1) DLTRCV(*YES)

接下来,通过设置QAUDCTL,QAUDLVL和QAUDLVL2系统值来指定您希望进行的审核数量。 例如:

CHGSYSVAL SYSVAL(QAUDCTL) 
VALUE('*AUDLVL *OBJAUD')
CHGSYSVAL SYSVAL(QAUDLVL) 
VALUE('*CREATE *DELETE *OBJMGT *SECURITY *SERVICE *SYSMGT *SAVRST');

如果仅要审核特定用户,请使用CHGUSRAUD命令更改用户的审核。 例如,以下命令为用户MJA(可能是您的特权用户之一)启用各种审核。 例如:

CHGUSRAUD USRPRF(MJA)
 OBJAUD(*ALL) AUDLVL(*CREATE *DELETE *OBJMGT  
*SECURITY *SERVICE *SYSMGT *SAVRST *AUTFAIL)

您可以使用CHGOBJAUD命令更改特定对象的审核。 例如,以下命令启用对PRODLIB模式中所有表,视图,索引和别名(* FILE对象)的审核:

CHGOBJAUD OBJ(PRODLIB/*ALL) OBJTYPE(*FILE) OBJAUD(*ALL)

相关的QAUDJRN审核条目

QAUDJRN审计日志可以包含各种各样的日志条目,但是仅处理相关的子集并将其发送到InfoSphere Guardium收集器。

为特定对象发送的QAUDJRN日记帐分录包含对象库,对象名称和对象类型。 将仅处理与以下IBM i对象类型相关联的日记帐分录(无论它们是否与SQL对象相关联):

  • * FILE(表,视图,索引,逻辑文件,别名或设备文件)
  • * SQLUDT(SQL用户定义类型)
  • * SQLPKG(SQL程序包)
  • * PGM(过程,函数或程序)
  • * SRVPGM(过程,函数,全局变量或服务程序)
  • * DTAARA(SQL序列)
  • * USRPRF(用户个人资料对象)

QAUDJRN日记帐分录可以包含多种审核分录类型。 仅处理以下条目类型,因为它们被确定为审核员最有用的:

  • ZR读取对象
  • ZC更改对象
  • 广告审核变更
  • AF授权失败
  • CA授权变更
  • CD命令字符串(注意:filter_audit_entry_types的默认设置中不包括CD)
  • CO创建对象
  • CP用户配置文件更改
  • 删除对象
  • GR通用审计记录
  • OM对象已移动或重命名
  • PG主要小组变更
  • PW无效的密码或用户ID
  • OW变更拥有者
  • 或对象已还原
  • RA恢复权限更改
  • RO恢复所有者更改
  • RZ恢复主要组更改
  • SV系统值变更

QAUDJRN日记帐分录不包含SQL语句。 对于标识对象的日记帐分录,以下信息将被串联并代替SQL语句返回:

  • 30字节的操作说明
  • 10个字节的系统架构名称
  • 10字节的系统对象名称
  • 8字节对象类型

例如:

ZC-更改对象MJATST T1 * FILE

有关日记帐审核条目类型的更多信息,请参阅IBM i信息中心中的审核日记帐(QAUDJRN)条目类型

安装DB2 for i S-TAP

  1. 1.在IBM i服务器上的PASE Shell环境中,创建一个临时目录以放置S-TAP安装脚本(例如/ tmp)。 您可以使用5250仿真器软件远程连接到IBM i系统,并通过输入调用qp2term进入PASE Shell
  2. 使用FTP将以下S-TAP安装Shell脚本移动到该临时目录: uard-itap-9.0.0_r nnnnn -aix-5.3-aix-powerpc.sh
  3. 在同一目录中,运行以下命令:

guard-itap-9.0.0_r nnnnn -aix-5.3-aix-powerpc.sh guardium_host_IP

其中guardium_host_IP是InfoSphere Guardium的收集器的IP地址。 安装程序将安装在/usr/local/guardium

安装完成后,InfoSphere Guardium尝试启动启用活动监视的过程,并使用安装时指定的IP地址来定位InfoSphere Guardium收集器。

要验证安装是否成功以及是否开始审计过程,请以管理员身份登录到InfoSphere Guardium Web控制台,并导航至System View选项卡并检查S-TAP的状态,该状态应显示为绿色,如图4所示。

图4.系统监视器显示配置成功
系统监视器显示配置成功

强烈建议在InfoSphere Guardium收集器上配置S-TAP,因为它使您能够查看IBM i服务器上的S-TAP状态,根据需要更新配置并指定过滤值。

注意: DB2 for i S-TAP不支持IBM InfoSphere Guardium安装管理器(GIM)。

推荐:在收集器上设置DB2 for i S-TAP配置功能

正如我们在上一节中提到的那样,强烈建议继续并在InfoSphere Guardium收集器上设置配置功能。 您可以通过创建配置报告来做到这一点,该报告使您能够调用在IBM i服务器上运行的API,该API可以启动和停止进程以及更新配置文件QSYS2.SYSAUDIT。

您必须在IBM i上具有* JOBCTL授权或QIBM_DB_SQLADM函数使用特权才能配置环境。

您还必须已完成上述安装步骤,并且必须已在IBM i服务器上启动了监视过程(由STAP监视程序通过显示绿色进行了验证)。

在本节中,您将执行以下步骤:

  1. 将DB2 for i定义为InfoSphere Guardium的公认数据源,并测试连接。 为此,您将需要知道数据库名称,端口和凭据。
  2. 使用“定制表构建器”过程,使用来自IBM i上配置文件的信息填充InfoSphere Guardium收集器,该信息是在您安装DB2 for i S-TAP时创建的。
  3. 创建一个DB2 for i配置报告。 在此报告界面中,您可以调用用于启动和停止监视过程,获取状态信息以及更新配置参数(包括过滤值)的API。

将DB2 for i数据源定义为InfoSphere Guardium

在这一步中,您需要将DB2 for i定义为InfoSphere Guardium收集器可以识别的数据源。 您可以通过创建定制域并使用Datasource Builder将DB2 for i定义为该域的数据源来实现。

要使用InfoSphere Guardium数据源构建器为DB2 for i创建数据源:

  1. 单击工具>数据源定义,然后从应用程序选择框中选择自定义域 。 单击下一步。
  2. 在“数据源查找器”中,单击“ 新建” ,这将显示“数据源构建器”。 选择DB2 for i作为数据库类型,然后为端口,主机,服务名称(即数据库名称)和凭证添加适当的信息。 另外,为此定义输入一个有意义的名称。
  3. 单击“ 应用” ,然后单击“ 测试连接”以确保所有配置均正确。

使用定制表构建器将DB2 for i配置设置上传到InfoSphere Guardium收集器

在此步骤中,您将使用InfoSphere Guardium界面从IBM i系统导入配置信息。 您可以通过执行以下步骤来做到这一点。

  1. 调用报告构建界面。
  2. 在本地InfoSphere Guardium上创建一个定制表,以保存来自DB2 for i数据源的配置数据。
  3. 将配置数据从DB2 for i导入到该定制表。

详细步骤如下:

  1. 单击工具 > 报告构建 。 (提示:您可能需要向下滚动以找到左侧的“报告生成”选项。)
  2. 单击“ 定制表构建器” ,然后选择“ DB2 for i S-TAP配置” ,然后单击“上载数据”
  3. 单击添加数据源
  4. 在“数据源查找器”上,在列表上找到您的DB2 for i数据源,然后单击“ 添加”。
  5. 在“导入数据”屏幕上,确保显示DB2 for i数据源。 单击“ 应用” ,然后单击“立即运行一次” 。 您应该看到一条消息,说明操作已成功结束。

创建配置报告以调用InfoSphere Guardium API

本节说明以下主要任务:

  • 定制InfoSphere Guardium界面以创建一个空间(即窗格)的可选任务,您可以在其中放置DB2 for i的新配置报告。 我们将在此窗格中使用名称“ 我的新报告” 。 (如果以用户而非管理员身份登录,则“我的新报告”窗格将已经存在。)
  • 搜索并将DB2 for i S-TAP配置报告添加到窗格中的任务。 该配置报告存在后,您可以调用API来更改DB2 for i的配置。

有关创建报告的更多信息,请参考InfoSphere Guardium信息中心上有关如何构建报告和定制参数的主题。

要创建报告窗格(仅当不存在时才需要):

  1. 要创建“我的新报告”窗格,请从Guardium UI的右上角单击“ 自定义”,然后单击“ 添加窗格”按钮,如下所示。
  2. 为窗格指定一个新名称,即“我的新报告”( 准确拼写为)。 单击“ 应用” ,然后单击“ 保存”
  3. 我的新报告将显示在自定义窗格中。 单击该项目左侧的图标。 在“布局”下拉菜单中 ,选择“ 菜单窗格” ,然后选择“ 保存” 。 您的新窗格将显示为选项卡。

创建配置报告并添加到报告窗格中:

  1. 现在,您准备创建配置报告以添加到新的报告窗格中。 为此,请单击左侧导航窗格中的“报表生成器 ”。 在右窗格中,从“查询”列表中,选择“ DB2 for i S-TAP配置”,然后单击“ 搜索”
  2. 选择DB2 for i S-TAP配置,然后单击Add to My New Reports按钮,如下所示(或通过单击Add to Pane…将报告添加到现有窗格中……
  3. 单击My New Reports选项卡,该选项卡现在将显示IBM i报告行。 双击报告中的一行,然后单击“ 调用”
  4. 现在,您可以看到InfoSphere Guardium API。 单击update_istap_config

DB2 i S-TAP的API概述 ”部分包含有关该报告中可用的配置API参数的更多信息,以及其他API的简要概述。

推荐:在收集器上设置DB2 for i状态报告

您需要在控制台上使用的另一个非常有用的报告是状态报告。 添加此报告的步骤几乎与上一节“ 推荐:在Collector上设置DB2 for i S-TAP配置功能”中描述的步骤完全相同。 综上所述:

  1. 以管理员身份,导航至工具 > 报告构建 > 客户表构建器
  2. 选择DB2 for i Status ,然后单击Upload Data
  3. 添加数据源,然后在“导入数据”屏幕上,单击“ 应用” ,然后单击“立即运行一次”
  4. 导航到“报告构建器”,在DB2的i i Status的报告标题中搜索,然后添加到“我的新报告”

这是状态报告的示例:

图5。

您可以双击报告以启动和停止服务器上的监视器以及刷新状态。

图6。

DB2 for i S-TAP API概述

有几种方法可以调用InfoSphere Guardium API。 在本文中,我们仅展示如何从DB2 for i S-TAP配置和状态报告中调用它们。 如上一节所述,您可以双击报告以调用API。选择API会显示该特定API的允许参数。 在这种情况下,如图7所示,您可以使用update_istap_config API发送信息,例如InfoSphere Guardium收集器的IP地址,以及在i系统上启动或重新启动审计过程。 (如果值是“ unchange”,那么将不会更新该参数。)您将在“在IBM i服务器上过滤审计数据 ”部分中了解有关过滤选项的值的更多信息。

图7.使用以下命令更新IBM i S-TAP配置的选项
使用以下命令更新IBM i S-TAP配置的选项

当start_monitor的值设置为1(默认值)时,在更新配置表后,审核过程将在i服务器上开始(或重新启动)。 当审计过程开始时,将调用DB2 for i上的存储过程,该存储过程将:

  • 创建将用于将条目发送到InfoSphere Guardium收集器的消息队列,并使用带有INSTEAD OF触发器的视图启动全局数据库监视器(该视图将条目发送到消息队列)
  • 启动PASE和S-TAP。
  • 从QAUDJRN接收日记帐分录并将其添加到消息队列中。

当S-TAP连接到收集器时,“系统视图”选项卡中将出现类似于图4所示的行。

查看监控报告

配置完系统并进行审核之后,您就可以开始利用InfoSphere Guardium的强大功能来运行报告,设置警报等等。 InfoSphere Guardium具有丰富的报告界面,这超出了本文的范围。

创建报告时,取决于您是以管理员身份还是以用户身份登录,导航路径可能会有所不同。 因此,请确保阅读如何在InfoSphere Guardium信息中心中阅读如何构建报告和定制参数以及如何从存储的数据主题创建定制报告 ,或者单击用户界面右上角的问号图标访问帮助书。

要使用显示数据库活动详细信息的报告,您需要以用户身份登录,这就是本文本节所假定的。 请注意,InfoSphere Guardium用户界面是高度可定制的,因此此处的屏幕截图和此处显示的导航路径可能无法完全按照您的站点所显示的那样工作。

此过程假定S-TAP配置成功,并且数据库活动在DB2 for i上进行。

  1. 单击查看选项卡。 (可选:通过单击标签上的铅笔图标,然后单击“ 编辑属性 ,将此标签重命名为“ 标准报告”
  2. 您应该看到一些报告,如下所示。
  3. 双击图形,将弹出一个表格视图,您可以通过双击后续报表表格来开始向下钻取。
  4. 您可以钻取以下数据,例如
    1. 通过服务器IP进行会话,然后双击一行
    2. 用户会话,然后双击一行
  5. 继续浏览报告。

报告字符串变量

监视报告包含SQL语句文本,您可能会注意到文本中出现问号。 从SQL的角度来看,这些被称为参数标记 ,它们在SQL语句中充当特定值的占位符。 对于了解进行了哪些更改非常关键的情况,可以在SQL活动报告中添加一个名为“ 绑定变量值”的字段,如下图右图所示。

之后的全活动

重要说明:如果看到字符串值的十六进制表示,则意味着用户正在使用默认CCSID 65535运行其SQL语句。用户需要更改其配置文件以使用人类可读的CCSID,例如以下代码(美国英语):

CHGUSRPRF JOED CCSID(37)

有关IBM i中CCSID的更多信息,请参阅IBM i信息中心

绩效建议

InfoSphere Guardium集成旨在最大程度地减少捕获数据库活动并将其发送到InfoSphere Guardium收集器所需的处理。 但是,发送到收集器的数据量在生产系统上需要多少处理量中起着很大的作用。 因此,谨慎地仅捕获所需的数据库活动以满足您的审核策略。 例如,也许只需要审核某些用户,某些接口或某些对象。

为了获得最佳性能并减少处理,您需要考虑两个级别的过滤:

  • DB2 for i执行的过滤可以通过减少从审计服务器流向S-TAP以及从IBM i流向InfoSphere Guardium收集器的信息量来减少生产系统的开销。 要执行此过滤,您可以在InfoSphere Guardium UI的配置页面上指定过滤值。
  • 在InfoSphere Guardium收集器端进行过滤,以限制实际上需要分析发送到收集器的哪些信息,并将其存储在存储库中。 这样可以减少收集器上的存储空间,并减少审核员的处理时间。 您可以通过使用InfoSphere Guardium用户界面上的策略配置来执行此操作。

本节还简要介绍了设置审核服务器作业的优先级。

在IBM i服务器上过滤审计数据

表2显示了配置DB2 for i S-TAP时可用的过滤字段的完整列表,如图5所示。要更改过滤值,请调用更新配置API(如上一节所述)。并更改相应字段中的值。 其中许多字段都映射到IBM i的STRDBMON命令中记录的过滤值。 有关数据库监视器和监视器条目的更多信息,请参阅IBM i信息中心。

要点:可以结合使用DB2 for i上的过滤器标准; 但是,这些标准可以有效地与在一起。

表2. DB2 for i S-TAP配置的过滤选项

筛选选项 描述
FILTER_USER 指定的用户或组用户配置文件过滤器(如果有)。
只能指定一个用户名或通用用户名。
FILTER_JOB 指定的作业过滤器(如果有)。
只能指定一个作业名称或通用作业名称。
FILTER_TCPIP 指定的TCP / IP过滤器(如果有)。
只能指定一个TCP / IP地址。
FILTER_TABLE 指定的表过滤器(如果有)。
最多可以指定十个文件名或通用文件名。 指定的库名称必须是系统架构名称(10个字符的名称)。 文件名可以是系统表名称,也可以是表名称(长名称或短名称)。
FILTER_PORT 指定的端口过滤器(如果有)。
只能指定一个端口过滤器。 仅在版本7.1和更高版本中支持按端口过滤。
FILTER_CLIENT_ACCTNG 指定的客户计费过滤器(如果有)。
只能指定一个客户计费过滤器。 仅在7.1版和更高版本中支持按客户记帐进行过滤
FILTER_CLIENT_APPLNAME 指定的客户端应用程序过滤器(如果有)。
只能指定一个客户端应用程序过滤器。 仅在7.1版和更高版本中支持按客户端应用程序进行过滤。
FILTER_CLIENT_PROGRAMID 指定的客户端程序过滤器(如果有)。
只能指定一个客户端程序过滤器。 仅在7.1版和更高版本中支持按客户端程序进行过滤。
FILTER_CLIENT_USERID 指定的客户端用户过滤器(如果有)。
只能指定一个客户端用户过滤器。 仅在7.1版和更高版本中支持按客户端用户筛选。
FILTER_CLIENT_WRKSTNNAME 指定的客户端工作站筛选器(如果有)。
只能指定一个客户端工作站过滤器。 Filtering by client workstation is only supported in release 7.1 and later.
FILTER_RDB The specified relational database filter, if any.
Up to 10 relational database names can be specified.
FILTER_SYSTEM_SQL The specified system SQL statement filter.
Specifies whether system SQL statements should be audited (Y or N) . The default is Y.
FILTER_AUDIT_ENTRY_TYPES The specified QAUDJRN audit entry filter, if any.
Specifies which audit journal entry types should be processed. The default is 'AD AF CA CO DO GD OM OR OW PG PW RA RO RZ SV ZC ZR'

The following examples will describe some common best practices for reducing the overhead on the production system by using filtering fields.

Filtering by user (FILTER_USER)

If your business only requires auditing of certain users (perhaps those users who have a high level of authority), the most efficient way to capture only entries for those users is to create a new group profile (CRTUSRPRF) and then assign each of the users to be part of the new group (CHGUSRPRF). You can then specify a filter based on the new group profile. For example, from IBM i, create a new group user profile called GROUPGD and assign it as a primary or supplemental group to users ADMIN1, ADMIN2, and ADMIN3:

CRTUSRPRF USRPRF(GROUPGD) PASSWORD(*NONE) STATUS(*DISABLED) GID(*GEN) 
CHGUSRPRF USRPRF(admin1) SUPGRPPRF(groupgd)
CHGUSRPRF USRPRF(admin2) SUPGRPPRF(groupgd)
CHGUSRPRF USRPRF(admin3) SUPGRPPRF(groupgd)

Then, you can specify a FILTER_USER value of GROUPGD which will audit users who are members of that group. Or you can use a wild card and set FILTER_USER to GROUP*, which will filter users of any group or username that begins with GROUP.

Filtering by schema or table (FILTER_TABLE)

If your business requires auditing only for objects in a set of schemas (libraries), filtering can be performed on up to 10 schema names or generic schema names. If you filter by schema or table, only data manipulation (DML) statements will be captured. All other types of statements will not be captured. For example, assume you want to capture data manipulation SQL statements that are associated only with schemas PROD1, NEWPROD1, and PROD2, you might specify a FILTER_TABLE value of:

PROD1/*ALL NEWPROD1/*ALL PROD2/*ALL

Or, if no other schemas start with PROD, you can use a generic name:

PROD*/*ALL NEWPROD1/*ALL

This type of filtering can also be performed at the individual table level. For example, if you only want to capture entries for tables that start with the letters PERSONAL in library NEWPROD, you can specify

NEWPROD1/PERSONAL*

Filtering by JOB (FILTER_JOB)

If your business only requires auditing of traffic related to JDBC, ODBC, and .NET requests that come in from the IBM access drivers, you can filter by job since these requests are processed by QZDASOINIT jobs. For example, you can specify

*ALL/*ALL/QZDASOINIT

If you use the IBM DB2?? Connect™ drivers you can specify:

*ALL/*ALL/QRWTSRVR

Filtering by relational database (FILTER_RDB)

Multiple relational databases can exist on an IBM i through the use of independent auxiliary storage pools (IASPs). Each IASP and *SYSBAS represents a separate relational database and each has a unique relational database name. If your business only requires auditing of two IASPs with relational database names of RDB1 and RDB2 (omitting activity against *SYSBAS and any other IASPs), you can specify a FILTER_RDB value of:

RDB1 RDB2

Filtering QAUDJRN entry types (FILTER_AUDIT_ENTRY_TYPES)

The audit journal contains a wide variety of audit entry types. By default, only a subset of the AUDJRN entries that you configured to capture in QAUDJRN will be sent to the InfoSphere Guardium collector, as described in Relevant QAUDJRN Audit entries . So, for example, if you have no need to audit object creates or object restores, you can eliminate the CO and OR entry types and specify a FILTER_AUDIT_ENTRY_TYPES value of:

'AD AF CA DO GD OM OW PG PW RA RO RZ ZC ZR'

Filtering SYSTEM SQL statements (FILTER_SYSTEM_SQL)

DB2 for i executes a variety of SQL statements to perform certain functions. These statements are flagged in the monitor as System SQL statements. However, a user-created procedure, function, program, or service program can also indicate that its SQL statements should also be flagged as a System statement through the use of the SET OPTION statement. Therefore, the best practice is to leave this value set to 'Y'.

Filtering activity through database interactive IBM i command line interfaces (FILTER_CLIENT_PROGRAMID)

DB2 for i includes the capability for users to run interactive SQL statements with commands such as Start SQL Interactive Session (STRSQL). Compliance in some organizations requires that access to those interfaces be limited to provide a second layer of defense against access to the database objects. If you want to specifically monitor access through that interface, you can set the FILTER_CLIENT_PROGRAMID to 'STRSQL' to collect detail only on SQL activity coming through the Start SQL (STRSQL) command. See the articles in Resources for more information on auditing these interactive commands.

Any of the following commands can be included as a filtering criterion:

  • Run SQL Statements (RUNSQLSTM)
  • Start Query (STRQRY)
  • Work With Queries (WRKQRY)
  • Run Query (RUNQRY)
  • Run SQL (RUNSQL)

Filtering using the client information fields

The client information fields consist of 5 different fields that can be set for a particular database connection, such as by using the SQLESETI API, as described as described in the IBM i Information Center. These can be useful in an auditing context to:

  • Identify different programs with greater granularity to filter out (such a trusted application) or monitor more closely.
  • Help InfoSphere Guardium track down individual users if the application uses a "pooled" database connection where there is only a single "DB user". (This requires that the application set the CLIENT_USERID special register.)

The fields that make up client information are:

  • FILTER_CLIENT_ACCT
  • FILTER_CLIENT_APPLNAME
  • FILTER_CLIENT_PROGRAMID
  • FILTER_CLIENT_USERID
  • FILTER_CLIENT_WRKSTNNAME

Reducing traffic sent to the InfoSphere Guardium collector

We have just described how to use the S-TAP configuration options to filter the events that are processed by S-TAP. You can use InfoSphere Guardium security policies to include IGNORE rules that will control the quantity of information that gets sent from S-TAP to the InfoSphere Guardium collector, which can reduce the amount of information to be parsed. For example, you can have rules that ignore sessions from scheduled jobs or other trusted applications.

There are also options to determine the amount of information that must be retained in the InfoSphere Guardium database after the criteria of the policy rules have been met. This is a complex topic which is beyond the scope of this article. You can read more about the policies in the InfoSphere Guardium help book (that can be accessed by clicking the question mark icon in the upper-right corner of the InfoSphere Guardium web interface).

Tuning the performance of the audit server

The audit server is responsible for receiving entries from QAUDJRN and placing them on the Guardium message queue. The audit server also contains the code that runs in PASE, removes entries from the Guardium queue, and sends them to the InfoSphere Guardium collector.

Typically, the audit server runs in a batch job that is started by InfoSphere Guardium using the SBMJOB command. On the first start of the audit server, the SBMJOB command is run with USER(*CURRENT). Subsequent starts of the audit server use the last user profile that started the audit server (USER(user-name)).

If you want to start the audit server under a different user profile name (GDUSER), update the configuration file as follows:

UPDATE qsys2.sysaudit SET start_user = 'GDUSER'

Then restart the audit server using the start_istap_monitor API from the InfoSphere Guardium UI.

As starting the audit server in this way uses the SBMJOB command, the normal rules apply to the job description that should be used to run the job (from the user profile). The job description determines how the audit server is run. For example, it specifies the initial priority given to the job.

A best practice is to create a unique job description that controls the attributes of the job, a unique job queue, and a unique user profile for running the audit server. 例如:

CRTUSRPRF GDUSER PWDEXP(*YES) STATUS(*ENABLED) SPCAUT(*ALLOBJ *JOBCTL)
   TEXT('Guardium user profile')
CRTJOBQ GDJOBQ TEXT('Guardium job queue')
CRTJOBD GDAUDIT JOBQ(GDJOBQ) JOBPTY(2) USER(GDUSER) JOBMSGQFL(*WRAP)
   TEXT('Guardium job description')
CHGUSRPRF USRPRF(GDUSER) JOBD(QGPL/GDAUDIT)
ADDJOBQE SBSD(QBATCH) JOBQ(QGPL/GDJOBQ) MAXACT(2) SEQNBR(40)

Note that MAXACT must be at least 2.

Another best practice is to run the audit server at priority 1 with a larger time slice. This allows the audit server to efficiently process SQL statements, especially when the number of SQL statements sent to the collector is large. Since most users will run the audit server in the QBATCH subsystem, a new class and routing entry can be used to specify the priority and time slice. 例如:

CRTCLS CLS(GDCLS) RUNPTY(1) TIMESLICE(10000) TEXT('Guardium class')
ADDRTGE SBSD(QBATCH) SEQNBR(800) CMPVAL(GUARDIUM) PGM(QSYS/QCMD) CLS(GDCLS)

For more information on SBMJOB, classes and routing entries, and controlling the job description that is used for the batch job, refer to the IBM i information center

摘要

We hope this article has given you a good starting point for implementing InfoSphere Guardium in your organization and to audit not just DB2 for i, as described in this article, but many other databases and file systems that you probably have. The auditing architecture is scalable and can be rolled out across large organizations and across geographies. In an age when every day seems to bring new news of data breaches, including those committed by privileged users, it is critical for organizations everywhere to create additional lines of defense that do not rely solely upon the native database security.

致谢

The authors would like to thank Tania Butovsky, Joe DiPietro, Scott Forstie, Rui Yu, and Larry Burroughs for their review and technical assistance.

翻译自: https://www.ibm.com/developerworks/ibmi/library/i-infosphere_guardium_db2/index.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值