根据log4j-core的说法,目前已经发布了许多建议步骤,以将version 2.15库从依赖项中排除或升级到最新版本(高于version 2.15)。是否有任何推荐的工具可用于保护部署在Google或(PCF)中的spring应用程序,以保护而不是修补它们以便重新部署?
另一个必要的问题是,如果我的应用程序(微服务spring应用程序)依赖于另一个微服务,并且该微服务已经使用了易受攻击的log4j核心版本,那么它是否会使它在某些服务中使用另一个微服务?
发布于 2021-12-13 23:20:42
关于第一个问题,您可以设置一个环境变量,以禁用log4j中的替换查找:
LOG4J_FORMAT_MSG_NO_LOOKUPS=true请注意,这只适用于log4j >= 2.10。
我相信您可以在PCF中设置环境变量,而不必重新部署服务(当然,需要重新启动),因此不需要新的版本。见:https://docs.pivotal.io/pivotalcf/2-3/devguide/deploy-apps/environment-variable.html和https://cli.cloudfoundry.org/en-US/v6/set-env.html
为了查看您的spring-boot应用程序是否易受攻击,可以使用我为此创建的spring启动测试:https://github.com/chilit-nl/log4shell-example -您可以使用和不使用环境变量来测试应用程序,看看它是否有任何效果(假设您的应用程序当前易受攻击)。
发布于 2021-12-13 17:59:58
对你第一个问题的简短回答可能是。您可以通过使用WAF中的规则来丢弃${jndi://ldap模式来保护应用程序/服务。然而,有如此之多的突变(base64编码等)不会是万无一失的。如果您担心依赖关系,则应该设置JVM参数并重新部署应用程序,以防止查找作为解决办法。
关于你的第二个问题,答案是肯定的,如果第二个微服务被传递给相同的输入,并且它正在日志记录。
https://stackoverflow.com/questions/70338675
复制相似问题