目标凭据被记录在调试日志中

Destination credentials getting logged in debug logs

我们在项目中使用 Cloud SDK 从 SCP 连接 S4Hana 服务。 因此,我们使用目标服务来配置我们想要连接的目标。

在此期间,我们观察到当日志级别设置为 DEBUG 时会记录目标服务凭据。它包含有关客户端 id、客户端密码、tokenServicePassword 等字段的所有信息,甚至没有加密格式。

登录密码是不是有什么原因,还是记错了。

classScpCfDestinationLoader 有一个私有方法queryDestinationService,它确实将内部请求的响应负载记录到 Cloud Foundry Destination Service,日志级别 DEBUG。很明显,对于调试 customer/consumer 问题,此类响应对意外情况和潜在的用户错误配置提供了非常重要的提示。它需要记录在某个地方,否则将需要耗时的远程调试会话来调查每个错误。

使用您的 Cloud Foundry 帐户的默认配置,不会记录任何调试消息。如果您(作为管理员)决定启用 DEBUG 消息,那么您应该意识到潜在的敏感信息将存储在日志文件中。谁可以访问日志文件,可以由帐户管理员控制。

我们已经采取了一些预防措施来隐藏敏感信息,以免在处理 Destination 个实例时被提取。您所指的过于 "talkative" 的日志消息肯定也会进行进一步的调整。感谢您指出。将来我们将停止将凭据(密码/客户端密码)写入 debug 日志。

但是,我们认为 调试 日志消息与生产无关。

请注意:同样的情况不仅适用于 Cloud SDK,也适用于底层的 Apache HTTP 框架,例如Wire package 的 classes。这里详细记录了内部 HTTP 流量的每个字节。如果潜在的攻击者可以完全访问 Java 应用程序的日志,他几乎可以看到每个网络 activity.