MQ对WAS客户的特殊考虑?

时间:2010-09-22 07:08:11

标签: security jms websphere ibm-mq

我们通过服务器连接渠道设置了WMQ-WAS / JMS客户端,我们试图通过用户ID提供安全性。

现在,我们在MQ框上设置了本地用户ID, mquserid ,并将通道的MCAUSER留空。

我们认为:运行MQ客户端的ID(在我们的例子中是WAS) wasuserid ,当传递给MQ时会失败,因为它没有在MQ框上设置。因此,我们将为WAS上的Queue连接工厂设置JAAS别名(使用用户ID:mquserid),然后将其传递给MQ并允许连接。

但是,我们能够连接并放置没有JAAS别名的消息:(

我编写了一个独立的Java程序来连接到QM,它的行为正确,具体取决于我在获取连接时传递的用户ID。

WMQ是否以特殊方式处理WAS而不检查其本地用户注册表?

1 个答案:

答案 0 :(得分:2)

不,WAS被视为任何其他连接。

在WAS的版本6及更早版本中,如果未指定WMQ连接上的用户ID,它将发送空白ID。通过在连接WAS时查看通道状态,可以判断是否是这种情况。正在运行的通道的MCAUSER将包含用于连接的ID。如果正在运行的通道状态未显示MCAUSER值,则WAS未显示ID。

另一种可能性是SVRCONN通道定义(非状态)在MCAUSER中具有诸如mqm的值。在这种情况下,忽略连接请求期间显示的ID。再次,检查通道状态以查看运行时使用的ID,或者只检查SVRCONN通道定义以查找MCAUSER值。

现在这里是踢球者 - 如果频道的MCAUSER是空白,那么WMQ将接受所呈现的任何ID。如果未显示ID,则连接的应用或用户以管理员身份运行。如果应用程序或用户可以是WMQ管理员,那么他们可以在QMgr上执行任何操作,也可以在QMgr下的服务器上远程执行任意操作系统命令。不好。

正确的答案是将频道上的MCAUSER设置为应用应该连接的任何值。此时,应用程序无法使用任何其他ID,因为该频道将覆盖它。但是,任何人都可以连接到该通道,因此下一步是验证连接请求。您可以使用免费的BlockIP2退出或商业供应商产品MQAUSX。 BlockIP2将按IP地址过滤传入请求,这对于从锁定数据中心的静态IP到达的连接可能已足够。 MQAUSX实际上将检查在WAS(或任何客户端)的连接请求期间发送的UserID和密码。您还可以使用SSL和通道的SSLPEER属性来使用X.509证书对请求进行身份验证。请注意,如果使用MQAUSX验证用户标识和密码,请使用SSL加密或使用出口的客户端和服务器端版本。否则,您的凭证将通过电汇以明文形式流动,从而破坏了目的。

当然,如果您保护应用程序的频道,则必须保护主机上的其他频道,例如SYSTEM.DEF。*和SYSTEM.AUTO。*,否则攻击者将绕过应用频道。

请注意,如果RCVR,RQSTR和CLUSRCVR通道未对请求进行身份验证或包含MCAUSER值,则它们也会显示管理员访问权限。例如,如果我想控制你的QMgr而你锁定了SVRCONN频道,我会在桌面上创建一个QMgr,删除我的SYSTEM.DEF.RECEIVER,创建一个名为SYSTEM的新 SDR 频道。 DEF.RCVR并指向你的QMgr。如果您的SYSTEM.DEF.RCVR(或SDRQSTR或SDCLUSRCVR)或您定义的任何其他这些通道类型缺少SSL或退出,那么我可以连接,如果他们lcak MCAUER,那么我可以匿名管理QMgr并执行操作系统命令。

任何没有MCAUSER值的频道定义都允许管理员访问。
任何没有SSL / SSLPEER和/或退出的渠道都允许匿名连接。

有关详细信息,请参阅https://t-rob.net/links上的WMQ Hardening演示文稿和WMQ安全实验室文档。另外,请参阅IBM developerWorks Tech Journal上Mission:Messaging专栏中有关SSL和其他WMQ安全主题的文章。