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

位置:首页>文章>详情   分类: Java教程 > 编程技术   阅读(224)   2023-06-26 07:54:18

本月早些时候,安全研究人员在数以万计的 Web 应用程序中使用的 Log4j Java 软件中发现了一系列重大漏洞。该代码广泛用于消费者和企业系统,从 Minecraft、Steam 和 iCloud 到 Fortinet 和 Red Hat 系统。一位分析师估计数百万端点可能处于危险之中。

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

自从第一个 Log4j 漏洞 曝光以来,安全供应商和分析师发布了大量关于如何应对的信息,范围遍及全球。有些人发布了近乎世界末日的场景,而其他人则没有那么可怕的预测。 Check Point Software Technologies 在其近一半的客户群中发现了攻击企图。 对安全发​​现,58% 的 Java 应用程序存在易受攻击的版本,但只有 37% 的应用程序实际使用 Log4j。

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

看起来我们还没有听到 Log4j 的结束。显而易见的是,作为应用程序开发人员,您在短期内需要做很多工作来查找、修复和预防 log4j 问题,并且从长远来看还有一些事情需要担心。

您可能已经处于危险之中

在开始锁定之前,Mitiga 的首席运营官 Ariel Parnes 警告说:“你应该看看你的组织是否已经在过去的某个时候使用 Log4j 被黑客入侵。罪犯可能已经在里面了。” IT 经理 John Cronin 提出了关键问题:“您知道您的哪些服务器使用 Log4j 吗?您需要多长时间才能生成这些服务器的列表?你能在接到通知后立即修补它们吗?您是否有自动化工具,或者是否有人需要登录到每台服务器并手动执行?您是否有在高峰使用时间为实时生产服务器打补丁的流程?”可以肯定的是,回答这些问题需要付出一些努力。在 以前的帖子 中,我们介绍了如何确定您是否已被感染。

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

您的直接防御计划

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

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

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

有哪些检测工具可用

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

  • Qualys 的 Web 应用程序扫描器有 30 天的免费试用期, along with this 他们博客上的解释 on how to use it.
  • Check Point’s CloudGuard AppSec, another scanner, has 另一个免费的 30 天试用版.
  • CERT 有一系列书面扫描仪 using Windows, Python, and Bash.
  • If you are using Burp Suite, IBM’s X-Force 有免费的扫描仪 and SilentSignal 有它的插件.
  • WhiteSource 有免费的扫描仪.
  • JFrog 有其基于 Python 的免费 Xray 扫描工具 to examine your own Java code libraries.
  • 如果您使用 Semgrep,这是规则.
  • Orca Security 有一个免费的在线 tool that can scan AWS, Azure, and Google Cloud environments, along with a 30-day trial of its platform.

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

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

Tanya Janca, ofWeHack紫色 (an excellent source on app security in general), suggests that you use 依赖图, 斯尼克, or OWASP 的依赖检查. Once you find any dependency, comment out the code that calls Log4j if you can’t patch it immediately.

了解 Web 应用程序防火墙 (WAF) 的工作原理。 If you don’t have a WAF, now 是时候得到一个. If any of your code is deployed behind a WAF, turn on their detection rules and check to see if the vendor has updated its rules to cover all of the latest vulnerabilities. But realize that since the flaw was announced, researchers 已经展示了很多方法 to build nested and obfuscated payloads that would bypass proposed WAF filtering rules. Fastly has put together an extensive explanation on 如何测试WAF有效性.

利用 Log4j 漏洞缓解和修补工具。A number of companies have already delivered mitigation tools for Log4j:

  • Cyber​​eason 整理了这段代码. LunaSec further improved it 并将其作为公共服务托管在实时服务器上.
  • The Corretto team from Amazon Web Services 开发了一个Java代理 that attempts to patch Log4j. The agent 在 GitHub 上可用
  • 对比安全有SafeLog4j, which both detects and patches, and supposedly works against WAF bypass attacks.
  • Cisco is offering a 安全端点的 30 天免费试用. There are other endpoint vendors that have included detection rules, including Microsoft Defender (but for now just Windows versions only).
  • 如果您使用的是容器,则需要特殊的保护产品。例如,Red Hat 已经为 Kubernetes 更新了他们的高级集群安全,Palo Alto Networks 已经更新了它的 Prisma Cloud。
地址:https://www.cundage.com/article/3645908-what-app-developers-need-to-do-now-to-fight-log4j-exploits.html

相关阅读

在之前的帖子中,我们深入探讨了 Spring Security。我们实现了由jdbc 支持的安全性、基于自定义 jdbc 查询的安全性以及从nosql 数据库中检索信息的安全性。 如果足够小心,...
保护 Web 应用程序的安全本质上是一个复杂的命题。 弹弓安全 为 Java 开发人员提供了一个强大的框架来满足这一需求,但这种强大的功能伴随着陡峭的学习曲线。 本文简要介绍了使用 Spring...
在对密码或任何敏感信息执行 AES 加密或解密时,您可能会遇到 InvalidKeyException: Parameters missing 错误。异常堆栈跟踪如下所示: Error whil...
Spring Security 是一项非常有用的技术。它允许您保护您的应用程序而不会过于侵入,并允许插入许多不同的身份验证机制。另一方面,进入其中一个工具并不容易,每次接触它时我都必须重新学习。...
Java 配置示例在 @EnableWebSecurity 注释和 WebSecurityConfigurerAdapter 类的帮助下启用 spring 安全。此示例构建在 spring we...
在上一篇 文章中,我们通过为从 sql 数据库检索用户和权限提供自定义查询来设置 spring 安全配置。 如今,许多现代应用程序都使用 NoSQL 数据库。 Spring Security 没...
一、简介 在本教程中,我们将检查如何使用 Spring Security with OAuth 根据路径模式 (/api/**) 保护服务器上的管理资源.我们配置的另一个路径模式 (/oauth...
“我喜欢编写身份验证和授权代码。” ~ 从来没有 Java 开发人员。 厌倦了一遍又一遍地构建相同的登录屏幕? 试用 Okta API 进行托管身份验证、授权和多因素身份验证。 开发人员知道保护...
Spring Boot 登录页面教程展示了如何使用默认登录页面。 Spring Security 默认保护所有 HTTP 端点。用户必须以默认的 HTTP 表单登录。 为了启用 Spring B...
马特雷布尔 is a well-known Java and JavaScript educator with 几本书 to his credit and broad experience in...