本文将向您展示如何配置 WebSphere MQ 环境来生成审计事件,包括队列管理器上的安全性访问失败、队列管理器的配置变更,以及向队列管理器发出的 MQ Script (MQS) 和 Programmable Command Format (PCF) 命令。系统管理员可使用 WebSphere MQ 审计功能改进其对 WebSphere MQ 环境的控制和监视,而安全专家可使用它生成审计线索和改进系统治理。本文还将展示如何使用 IBM SupportPac MH05 和 IBM Tivoli Composite Application Manager (ITCAM) for Applications 来查看和监视审计事件。

Rui Guo Lai, 顾问,IBM Software Services for WebSphere, IBM

Lai Rui Guo 的照片Lai Rui Guo 是新加坡 IBM Software Services for WebSphere 团队的应用程序集成和中间件 (AIM) 解决方案架构师。他的专长是 WebSphere 软件顾问,他是 IBM 认证的 WebSphere 讲师。您可以通过 lairg@sg.ibm.com 联系 Rui Guo。



2012 年 12 月 17 日

简介

随着 IT 安全性和责任变得越来越重要,任务和脚本变得愈加自动化,公司跟踪对其系统所做的更改也变得更加富有挑战。因此,生成有意义的审计线索的能力也变得越来越宝贵。在 IBM® WebSphere® MQ V7.0.1 及其更高版本中,提供了以前仅在 z/OS® 上存在的新配置变更和管理操作。新事件可捕获为 WebSphere MQ 检测事件消息,并放在已定义好的事件队列中,实现增强的审计和治理。审计可回答以下问题:

  • 如何跟踪谁更改了各种 WebSphere MQ 对象属性?
  • 如何知道各个对象属性值何时发生更改以及如何更改?
  • 如何知道发出了哪些远程 PCF 命令和如何发出它们?

审计概念

WebSphere MQ 检测事件用于监视队列管理器的操作。在 WebSphere MQ V7.0.1 或更高版本中,添加了其他两个 WebSphere MQ 检测事件:命令事件和配置事件,它们对生成审计线索非常有用。下图显示了 WebSphere MQ V7.0.1 之前和之后的队列管理器上的事件设置。开始和停止事件已启用,而其他所有事件都已禁用:

WebSphere MQ V7.0 或更低版本上的事件设置
WebSphere MQ V7.0 或更低版本上的事件设置
WebSphere MQ V7.0.1 或更高版本上的事件设置
WebSphere MQ V7.0.1 或更高版本上的事件设置

如果使用 MQS 命令,那么事件参数会以 EV 结尾。例如,配置事件是 CONFIGEV。下图来自 WebSphere MQ V7.0.1,事件属性以黄色显示:

队列管理器中的事件属性
队列管理器中的事件属性
事件类别事件类型事件队列描述
队列管理器授权事件、禁止事件、本地事件、远程事件、开始和停止事件SYSTEM.ADMIN.QMGR.EVENT队列管理器事件与队列管理器中的资源使用相关,比如当应用程序尝试将一条消息放在一个不存在的队列上时。
通道和桥通道事件、通道自动定义事件和 SSL 事件SYSTEM.ADMIN.CHANNEL.EVENT通道在其操作期间检测到一些条件时(比如当一个通道实例停止时)报告这些事件。
性能性能事件SYSTEM.ADMIN.PERFM.EVENT性能事件是一个资源达到一个阈值条件的通知,比如当达到一个队列深度限制时。
配置配置事件SYSTEM.ADMIN.CONFIG.EVENT配置事件在显式请求一个配置事件时生成,或者在创建、修改或删除一个对象时自动生成。
命令命令事件SYSTEM.ADMIN.COMMAND.EVENT命令事件在一个 MQS 或 PCF 命令成功运行时生成。
记录器记录器事件SYSTEM.ADMIN.LOGGER.EVENT记录器事件在一个使用线性记录的队列管理器开始将日志记录写入新日志时报告。(在 i5/OS® 上,会将它们写入新的日志接收器。在 WebSphere MQ for z/OS 上,记录器事件是不可用的。)

有关每个事件的更多详细介绍,请参阅 WebSphere MQ 信息中心内的 检测事件 主题。

触发一个配置事件时的事件序列
触发一个配置事件时的事件序列
  1. 已经为队列管理器启用配置事件属性。在本例中,触发一个配置事件的条件是:在删除一个队列对象时,在创建一个新 MQ 对象时,或者在将一个刷新命令用于一个 MQ 对象时。
  2. 配置事件消息生成并放置在事件队列中,这在本例中为 SYSTEM.ADMIN.CONFIG.EVENT 队列。由 MQ 对象属性中的更改导致的配置事件实际上会生成两个事件消息:一个显示该属性值更改前的 MQ 对象,另一个显示该属性值更改后的 MQ 对象。
  3. 应用程序然后可从队列中挑选事件消息并处理它们。您还需要了解事件消息的格式,以便以人类可读的格式显示它们。

监视和查看事件以便完成审计

SupportPacs

一些 IBM SupportPacs 方便了 MQ 事件的查看和监视:

  • MO01:Event and Dead Letter Queue Monitor
  • MH05:WebSphere MQ -- Events Display Tool
  • MS0K:WebSphere MQ -- Events Monitor Tool
  • MS0P:WebSphere MQ -- Explorer Configuration 和 Display Extension 插件
  • MS12:WebSphere MQ for z/OS – Print Event Messages

使用 SupportPacs 的优势是,它们是免费的且可立即使用,无需额外的开发工作。缺点是大部分 SupportPacs 都没有担保或服务约定,并且它们提供的事件查看功能可能有限。本文将使用 SupportPac MH05 演示以下 3 种场景。

监视软件

一些第三方软件产品提供了监视 WebSphere MQ 的能力。本文介绍了一款 IBM 监视产品 - IBM Tivoli Composite Application Manager for Applications (ITCAM),以展示这 3 种场景的输出。要监视 WebSphere MQ,需要在 MQ 服务器上安装 WebSphere MQ 的 ITCAM 代理。

使用监视软件的优势是,只需极少的开发工作,并且它有产品担保提供支持。不足显然是许可的成本,以及一些配置需求。

自定义应用程序

您也可构建自己的自定义应用程序来使用事件消息。但是,您需要理解事件消息的 MQFMT_EVENT 格式。监视这些事件消息的示例应用程序代码已在 WebSphere MQ 信息中心中的 事件监视 主题下提供。该示例代码可用作构建自己的自定义应用程序的参考,不包含指定的操作的所有可能结果。

构建自定义应用程序的优势和不足很明显 - 您可调整它来准确满足您企业的需求,但您需要投入时间和开支来开发和测试它。

3 种场景

本文重点介绍配置事件,将显示触发这些事件时的 3 种场景:

  • 创建一个新 MQ 对象
  • 更改一个 MQ 对象属性
  • 删除一个 MQ 对象

在一个理想的 WebSphere MQ 环境中,MQ 对象的访问控制通过 Object Authority Manager (OAM) 或一个符合 WebSphere MQ Authorization Service Interface 的第三方组件来执行。WebSphere MQ 事件的执行和使用可帮助您更好地理解谁访问了某个特定的对象,因为您将能够确定发出了更改的用户和发出它时的时间戳。本文将使用名为 mqopr 的操作员用户模拟这些场景,该用户创建、更改或删除一个 MQ 对象。本文不会展示如何配置 MH05 SupportPac 或 ITCAM 监视软件。

启用配置事件

为了生成这些事件,您需要通过在队列管理器属性中指定合适的值来启用它们。可通过 MQS 命令或通过 MQ Explorer 来配置。队列管理器名为 QM_ABC。

通过 MQS 命令

ALTER QMGR CONIFGEV(ENABLED)
通过 MQS 命令启用配置事件
通过 MQS 命令启用配置事件

通过 MQ Explorer

右键单击 Queue Manager => Properties => Events => Enabled configuration events

通过 MQ Explorer 启用配置事件
通过 MQ Explorer 启用配置事件

创建一个新 MQ 对象

在队列管理器 QM_ABC 中创建一个新 MQ 对象(本地队列)并将这个新本地队列命名为 AUDIT.QL:

创建新本地队列
创建新本地队列

您可以看到,一个配置事件消息被放入配置事件队列中:

配置事件队列的队列深度
配置事件队列的队列深度
通过 MQ Explorer 浏览事件消息
通过 MQ Explorer 浏览事件消息

可从上图中看到,MQ Explorer 不能在浏览它时以一种可读格式呈现事件消息,因此您需要另一种方式来查看事件消息。

来自 SupportPac MH05 的输出

下面的命令手动将事件消息放入一个文件中。也可使用触发来自动化该过程。有关该命令和它的可用参数的更多细节,请参阅 SupportPac。

通过 MH05 处理事件队列的命令
xmqdspev -m QM_ABC -q SYSTEM.ADMIN.CONFIG.EVENT -d -f create.txt
MH05 的实际应用
MH05 的实际应用
来自 MH05 的输出
来自 MH05 的输出
来自 MH05 的详细输出
来自 MH05 的详细输出

来自 ITCAM 监视软件的输出

ITCAM Portal Console 概述
ITCAM Portal Console 概述
ITCAM Portal Console 中生成的事件
ITCAM Portal Console 中生成的事件
生成的事件的详细信息
生成的事件的详细信息

更改一个 MQ 对象的属性

要更改本地队列 AUDIT.QL 的 MAXMSGL 属性:

修改 MAXMSGL 属性
修改 MAXMSGL 属性

前面已经提到过,我们生成了两个事件消息:在更改之前和更改之后,用它们展示哪些属性被修改。

配置事件队列的队列深度
配置事件队列的队列深度

来自 SupportPac MH05 的输出

来自 MH05 的输出 - 更改之前
来自 MH05 的输出 - 更改之前
来自 MH05 的输出 - 更改之后
来自 MH05 的输出 - 更改之后

来自 ITCAM 监视软件的输出

ITCAM Portal Console 中生成的事件
ITCAM Portal Console 中生成的事件
生成的事件 - 更改之前
生成的事件 - 更改之前
生成的事件 - 更改之后
生成的事件 - 更改之后

删除您之前创建的 MQ 对象 AUDIT.QL

删除 MQ 对象
删除 MQ 对象
来自 SupportPac MH05 的输出
来自 SupportPac MH05 的输出
ITCAM Portal Console 中生成的事件
ITCAM Portal Console 中生成的事件
生成的事件的详细信息
生成的事件的详细信息

结束语

借助这些新的检测事件,您可以在 WebSphere MQ 环境中生成有用的审计事件,提供有关对队列管理器所做的任何更改和向队列管理器发出的任何命令的详细信息。

参考资料

学习

获得产品和技术

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=WebSphere
ArticleID=852118
ArticleTitle=审计 WebSphere MQ 环境
publish-date=12172012