软件开发

不要恐慌:Log4Shell

网站设计。开发编程和编码技术。

2021-12-29:更新cve - 2021 - 44832

2021-12-20:更新cve - 2021 - 45105

我们和你们中的许多人一样,用了周末和本周初的时间,对风险进行了分类CVE-2021-44228(又名Log4Shell)

我们一直在检查和修补我们的内部系统、产品和客户系统,我和一些同事提出了一些看法,希望与大家分享。

但重要的事情先说。如果您担心此log4j漏洞带来的风险,我们建议确保您已经根据供应商的说明修补了供应商产品,并确保您的所有系统都更新为使用log4j2.16.02.17.02.17.1或更新。此外,这里还有一些我们认为有帮助的可靠来源和合作伙伴的其他资源:

还有一些其他的技术说明……

  1. 2021 - 12 -更新20.29日:在一些情况下,2.15.0、2.16.0和2.17.0中的修复是不完整的cve - 2021 - 45046,cve - 2021 - 45105而且cve - 2021 - 44832,我们建议使用2.16.02.17.02.17.1只要有可能。此前CVE-2021-45046被认为是中低风险,现已升级为危急。新的漏洞CVE-2021-45105也是一个高风险问题,应尽快修复。因此,即使您之前已经升级到2.15.0、2.16.0或2.17.0,我们也建议您升级到2.17.1。这是一个动态的情况,随着更彻底的测试继续进行,这种情况可能会再次改变。
  2. log4j 1.2。X也有类似但更有限的漏洞,由于该版本的log4j已经过了生命周期,因此没有可用的补丁。CVSS 3.0分数cve - 2021 - 4104仍然悬而未决,但考虑到有限的代码路径似乎受到影响,我们预计风险水平会降低,但这里仍然存在一些不确定性。很快就会有更多的信息,但是TL;DR认为,如果不使用JMSAppenders,应该是没问题的,但这还有待改进。
  3. 请记住,log4j可能不是代码的直接依赖项,它可能是依赖项的依赖项或依赖树的更深处。使用依赖项管理工具(例如Maven、Gradle等)检查完整的树以查找对log4j的引用是很重要的。
  4. 漏洞本身相当直接,而且极易被利用。它使用JNDI查找的魔力,这是Java中的一个特性,允许您透明地与各种目录和命名服务进行交互。在这种情况下,该漏洞使用LDAP(轻量级目录访问协议)和一个小技巧来获得JNDI查找,通过重定向到https端点从LDAP服务器拉出它认为是对象的内容,但实际上是将在易受攻击的服务器上执行的代码。这里的风险在于,应用程序中任何用户可以传入文本输入且文本按原样记录的地方,都容易受到传递给它的任意代码的影响,并由该文本输入中的JNDI查找执行。
  5. 新的2021-12-29:cve - 2021 - 44832当使用2.17.0和JDBCAppender(即将日志写入数据库)时,同样的问题也可以被利用,尽管难度更大(攻击者必须首先访问log4j配置文件)。如果您不使用此功能,则不应存在与此新漏洞相关的风险。不像log4j 1.2中提到的JMSAppender。但是,JDBCAppender在log4j 2.x中广泛使用。这个问题很有趣,因为它是JNDI查找功能的一个附加层,它允许log4j从本地应用程序上下文(或者可能是远程服务)查找预期数据库的连接信息。这种JNDI查找的使用通常用于避免在代码和配置文件中硬编码数据库连接信息(以及集中存储凭据)。固定的jar只是改变默认行为,并允许通过设置启用先前的行为。如果JDBCAppender需要与JNDI查找一起使用以确保安全,那么这种更改可能需要更多的返工。

现在进入有趣的部分。当我们在内部讨论这个问题时,我们意识到log4shell漏洞带来的一些风险:

  • 整个行业都倾向于将这类风险视为“只有面向互联网的系统才会遇到的问题”。这种想法在两个关键方面存在缺陷。首先,完全阻止恶意行为者访问您的网络是不可能的。防火墙不仅不完美,而且社交工程和愤怒的员工可以完全绕过它们。其次,这种类型的漏洞可以通过服务调用从一个系统级联到另一个系统,直到找到一个易受攻击的字符串。
  • 每个软件供应商都在采取不同的方法。即使是那些同意更换罐子是正确举动的人,也不同意他们想要如何向客户提供这些罐子。我们发现,花时间评估每个供应商的方法并仔细遵循他们的指示是很重要的,以确保您不会制造比您解决的问题更多的问题。也就是说,需要耐心,让供应商不仅有时间来确定哪些产品是脆弱的并发布修复程序,而且还需要测试该修复程序并确保它不会导致有问题的回归。
  • 这一点都不奇怪,但令人惊讶的是,它是因为《我的世界》而被发现的。原来Minecraft是用Java写的,使用的是log4j2。在默认情况下,Minecraft服务器似乎正在记录所有输入聊天的消息。这意味着任何人都可以将恶意JNDI查找放入Minecraft多人服务器上的聊天中并利用此漏洞。这里有一个很棒的视频展示它是如何工作的,包括如何在Minecraft服务器上获得远程shell。

如果您需要帮助来进行补救或设计一个策略来优化下一次的响应(因为肯定会有下一次),作为您值得信赖的合作伙伴和顾问,我们已经准备好了,愿意并能够提供帮助。

别忘了拿毛巾。

留下回复

你的电邮地址将不会公布。必填字段已标记

这个网站使用Akismet来减少垃圾邮件。了解如何处理您的评论数据

埃里克•走导演

10年的经验,专注于各种内容、过程和数据平台的系统架构和规划、平台安装和升级,以及系统管理员培训。查看我的证书

更多来自作者

关注我们
推特 Linkedin 脸谱网 Youtube Instagram