vlambda博客
学习文章列表

应用程序开发人员现在需要做什么来对抗Log4j漏洞

点击蓝字


关注我们

为什么企业可能已经处于危险之中,现在如何检测和缓解Log4j漏洞,以及如何在未来提高您的代码安全性。

本月早些时候,安全研究人员发现了用于数万个Web应用程序的Log4jJava软件中的一系列主要漏洞。该代码广泛用于消费者和企业系统,从Minecraft、Steam和iCloud到Fortinet和RedHat系统的所有系统。一位分析师估计数百万个端点可能面临风险。

Log4j只是一系列软件供应链攻击中的最新一次,包括SolarWinds(其构建过程受损)和Kaseya(攻击者替换了带有恶意软件的代码)。

自从第一个Log4j漏洞曝光以来,安全供应商和分析师已经发布了大量有关该做什么的信息,范围遍及整个地图。有些人发布了接近世界末日的情景,而其他人则没有那么可怕的预测。CheckPointSoftwareTechnologies已经在其近一半的客户群中发现了漏洞利用企图。ContrastSecurity发现58%的Java应用程序存在易受攻击的版本,但实际上只有37%使用Log4j。

这四个问题分别是CVE-2021-44228、CVE-2021-45046、CVE-2021-4104和CVE-2021-45105。美国网络安全和基础设施安全局正在维护一个网页,其中包含指向各种供应商博客的链接,以及受影响的应用程序列表,并试图通过任何修复程序保持更新。这些问题涉及日志软件的几个特性,包括Java命名和目录接口(JDNI)和JMSAppender事件消息,这两者都允许远程代码执行。使这组漏洞变得危险的原因是攻击者不需要很多专业知识即可获得这种远程访问。最后一个漏洞是指拒绝服务条件,让每个人都保持警觉。最近,Blumira发现了一种新的攻击向量,它使用WebSockets扩大了整个表面。

看起来我们还没有听说过Log4j的终结。很明显,作为应用程序开发人员,您有很多工作要做,以在短期内查找、修复和防止log4j问题,但从长远来看,您需要担心一些事情。

可能已经处于危险之中

在您开始锁定问题之前,Mitiga的首席运营官ArielParnes警告说:“您应该查看组织是否已经在过去某个时候使用Log4j遭到黑客攻击。罪犯可能已经在里面了。”IT经理JohnCronin提出了关键问题:“您知道您的哪些服务器使用Log4j?生成这些服务器的列表需要多长时间?你能及时修补它们吗?你有自动化工具还是有人需要登录每台服务器并手动完成?您是否有在高峰使用时间修补实时生产服务器的流程?”当然,回答这些问题需要付出一些努力。在上一篇文章中,我们介绍了如何确定您是否已被感染。

安全分析师发现了可追溯到2021年12月1日的漏洞利用,使用范围广泛的网络协议,包括LDAP、RMI、DNS和HTTP。这些漏洞已经安装了各种恶意软件,包括隐藏的加密货币矿工、Bitdefender称为Khonsari的新型勒索软件系列,以及加入Mirai僵尸网络的代码。最重要的是,一些研究人员报告了来自中国、朝鲜、土耳其和伊朗的国家支持的攻击者的攻击。

即时防御计划

您的第一道防线是升级到最新的Log4j版本。最初,Apache发布了一个补丁,结果证明仍然存在漏洞。最新版本是Log4jv.2.17.0(如果您运行的是Java8或更高版本)和Log4jv.2.12.2(如果您在整个Web应用程序基础架构中运行Java7)。这些默认关闭JNDI并删除消息查找访问权限,这两者都是各种漏洞的核心。禁用JNDI可能会破坏您的应用程序中的某些内容,因此在您在任何生产系统中实施之前,请仔细测试。

如果您的任何应用程序不需要任何基于Java的日志记录,您可能还想停止它。同样,在部署之前进行测试。

那些运行自己的Minecraft服务器的人应该检查它是否在运行Minecraftv.1.8.8或更高版本;这些版本是易受攻击的。微软发布了Minecraftv.1.18.1,修复了这个问题。您应该立即升级或找到另一个更值得信赖的已修复服务器。

有哪些检测工具可用

安全供应商加班加点来扩充他们的工具,您应该利用各种免费优惠。下面我列出了各种扫描器,可用于在运行的应用程序或源文件中定位易受攻击的代码。您应该确定该代码是否已部署在任何生产实例中。

•Qualys有30天的Web应用程序扫描器免费试用期,并在他们的博客上提供了有关如何使用它的说明。

•CheckPoint的CloudGuardAppSec是另一款扫描仪,这里还有30天的免费试用期。

•CERT有一系列使用Windows、Python和Bash编写的扫描仪。

•如果您使用BurpSuite,IBM的X-Force有它的免费扫描器,SilentSignal有它的插件。

•WhiteSource有免费的扫描仪。

•JFrog拥有基于Python的无Xray扫描工具来检查您自己的Java代码库。

•如果您使用的是Semgrep,这是规则。

•OrcaSecurity有一个免费的在线工具,可以扫描AWS、Azure和GoogleCloud环境,并提供30天的平台试用期。

提高编码安全性的长期策略

首先,了解代码依赖。Log4j的挑战之一是它的流行度和包含在众多Java库中。一旦您在自己的代码中根除旧版本,就该调查您正在运行的其他依赖于它的版本。如果您使用Apache框架Struts2、Flume、Dubbo、Kafka、Solr、Druid或Fink,则必须升级这些项目中的Log4j库。如果Struts引起了人们的注意,那么2017年的一次漏洞利用导致Equifax的数据库遭到入侵,泄露了超过1.4亿客户的私人数据。

WeHackPurple的TanyaJanca(一个优秀的应用程序安全来源)建议你使用dependencyGraph、Snyk或OWASP的Dependency-Check。一旦找到任何依赖项,如果不能立即修补它,请注释掉调用Log4j的代码。

了解Web应用程序防火墙(WAF)的工作原理。如果您没有WAF,现在是时候入手一个了。如果您的任何代码部署在WAF后面,请打开他们的检测规则并检查供应商是否已更新其规则以涵盖所有最新漏洞。但要意识到,自从该漏洞被公布以来,研究人员已经展示了许多构建嵌套和混淆有效载荷的方法,这些有效载荷可以绕过提议的WAF过滤规则。Fastly对如何测试WAF有效性进行了广泛的解释。

利用Log4j漏洞缓解和补丁工具。许多公司已经为Log4j提供了缓解工具:

•Cybereason整理了此代码。LunaSec进一步改进了它并将其作为公共服务托管在实时服务器上。

•来自AmazonWebServices的Corretto团队开发了一个尝试修补Log4j的Java代理。该代理可在GitHub上获得。

•ContrastSecurity具有SafeLog4j,它可以检测和修补,据说可以抵御WAF绕过攻击。

•Cisco提供其安全端点的30天免费试用。还有其他端点供应商已包含检测规则,包括MicrosoftDefender(但目前仅适用于Windows版本)。

•如果您使用容器,您将需要特殊的保护产品。例如,RedHat更新了他们的Kubernetes高级集群安全,PaloAltoNetworks更新了它的PrismaCloud。

来源:360机房


电话:0556-5031789
   网址:www.ahsshm.net
扫码关注,了解更多