当前位置: 首页 > 科技观察

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

时间:2023-03-16 21:51:07 科技观察

为什么企业可能已经处于危险之中,现在如何检测和缓解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可能会破坏您的应用程序中的某些内容,因此Plea在任何生产系统中实施之前,请仔细测试。如果您的任何应用程序不需要任何基于Java的日志记录,您可能还想停止它。同样,在部署之前进行测试。那些运行自己的Minecraft服务器的人应该检查它是否正在运行Minecraftv.1.8.8或更高版本;这些版本容易受到攻击。微软发布了Minecraftv.1.18.1,修复了这个问题。您应该立即升级或寻找其他更有价值的Trusted固定服务器。有哪些可用的检测工具安全供应商正在加班加点地扩充他们的工具,您应该利用各种免费产品。下面我列出了可用于运行应用程序或源文件的各种扫描器。在.您应该确定代码是否部署在任何生产实例中。Qualys提供WebApplicationScanner的30天免费试用,并在其博客Instructions中提供了有关如何使用它的说明。?CheckPoint的CloudGuardAppSec是另一款扫描仪,这里也有30天的免费试用期。?CERT有一系列用Windows、Python和Bash编写的扫描器。?如果您使用BurpSuite,IBM的X-Force有它的免费扫描器,SilentSignal有它的插件。?WhiteSource有免费的扫描仪。?JFrog有一个基于Python的无Xray扫描工具来检查您自己的Java代码库。?如果您正在使用Semgrep,这是规则。?OrcaSecurity有一个免费的在线工具,可以扫描AWS、Azure和谷歌云环境,并提供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提供缓解工具:?Cyber??eason策划了此代码。LunaSec更进一步,将其作为公共服务托管在实时服务器上。?来自AmazonWebServices的Corretto团队开发了一个Java代理,试图为Log4j打补丁。该代理在GitHub上可用。?ContrastSecurity有SafeLog4j,可以检测和修补,据说可以防止WAF旁路攻击。?思科提供其安全端点的30天免费试用。还有其他端点供应商已经包含检测规则,包括MicrosoftDefender(但目前仅适用于Windows版本)。?如果您使用容器,您将需要特殊的保护产品。例如,RedHat更新了他们的KubernetesAdvancedClusterSecurity,PaloAltoNetworks更新了PrismaCloud。