百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术流 > 正文

微软首席安全专家发布的Log4j 漏洞应对指南

citgpt 2024-06-26 14:55 7 浏览 0 评论

本文中会涉及到

?Log4j 漏洞介绍及产品修复建议

微软首席安全专家发布的Log4j 漏洞应对指南

?Log4j 漏洞对于微软产品的影响

?微软的建议

?漏洞原因:Log4j 内含的 lookup 功能存在 JNDI 注入漏洞,该功能可以帮助开发者通过一些协议读取相应环境中的配置。

?漏洞触发方式非常简单,只要日志内容中包含关键词 ${,那么这里面包含的内容就可以作为变量进行替换,攻击者无需任何权限,可以执行任意命令。

?相关漏洞影响的版本为:Apache Log4j 2.x <= 2.15,并在log4j-2.16.0 版本中修复

?由于 Log4j 性能好、流行度高,因此广泛使用在中间件、开发框架、Web程序中,本次漏洞也波及了大量Apache其它开源产品(包括但不限于Spring-Boot-strater-Log4j、Apache Struts2、Apache Solr、Apache Flink、Apache Druid、ElasticSearch、flume、dubbo、logstash、kafka… )

Log4j 开源项目由三位工程师长期免费维护支持,缺乏相关的支持投入与安全管理,我们可以从人家都快哭出声来的声明就能了解一二。

关于本次 Log4j 产品漏洞的官方修复建议:

?Log4j 1.x mitigation: Log4j 1.x is not impacted by this vulnerability.

?Log4j 2.x mitigation: Implement one of the mitigation techniques below.

?Java 8 (or later) users should upgrade to release 2.16.0.

?Users requiring Java 7 should upgrade to release 2.12.2 when it becomes available (work in progress, expected to be available soon).

?Otherwise, remove the JndiLookup class from the classpath: zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class

?Note that only the log4j-core JAR file is impacted by this vulnerability. Applications using only the log4j-api JAR file without the log4j-core JAR file are not impacted by this vulnerability.

?关于这个漏洞更为详细的信息,请参考

Apache Log4j Security Vulnerabilities
https://logging.apache.org/log4j/2.x/security.html

最新补丁下载:Download Apache Log4j 2

https://logging.apache.org/log4j/2.x/download.html

部分修复的 Workaround 建议:

?注意:修改系统属性 log4j2.formatMsgNoLookups=True 并不能完整抑制针对相关漏洞的攻击行为。因此以下缓解措施仅能部分抑制相关攻击行为:

?In case the Log4j 2 vulnerable component cannot be updated, Log4j versions 2.10 to 2.14.1 support the parameter log4j2.formatMsgNoLookups to be set to ‘true’, to disable the vulnerable feature. Ensure this parameter is configured in the startup scripts of the Java Virtual Machine:?
-Dlog4j2.formatMsgNoLookups=true.

?Alternatively, customers using Log4j 2.10 to 2.14.1 may set the LOG4J_FORMAT_MSG_NO_LOOKUPS=”true” environment variable to force this change.

?Kubernetes administrators may use “kubectl set env” to set the LOG4J_FORMAT_MSG_NO_LOOKUPS=”true” environment variable to apply the mitigation across Kubernetes clusters where the Java applications are running Log4j 2.10 to 2.14.1, effectively reflecting on all pods and containers automatically.

?For all releases between 2.0-beta9 and 2.15.0, a better mitigation approach is to prevent the JndiLookup.class file from being loaded in the applications’s classpath. Customers can do this by deleting the class from affected JAR files. For example:
$ zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class

?Log4j may also be present in other files as a bundle or as a shaded library. Microsoft advises customers to do an extensive search beyond log4j-core-*.jar files.

An application restart will be required for these changes to take effect.

微软正在主动积极的评估 Log4j 漏洞对于微软产品的相关影响

以下信息的最后更新时间为 2021-12-16 20:00 (+8)

?截止到目前为止,微软自己发布的产品中只发现游戏产品 Minecraft: Java Edition 受到本次漏洞事件的影响。微软已经发布了相关的安全更新,请及时安装。

?更为详细的信息,请参考

Security Vulnerability in Minecraft: Java Edition

?在特定 Azure 服务中,可能涉及到用户部署与 Log4j 相关的代码、服务或系统。针对这部分服务,微软的相关安全建议请访问以下链接:

Microsoft’s Response to CVE-2021-44228 Apache Log4j 2  Microsoft Security Response Center

Azure Application Gateway, Azure Front Door, and Azure WAF

Azure Functions

Azure HDInsights

Azure Spring Cloud

微软的网络安全产品体系还是非常值得称道的,比如

?针对 Log4j 漏洞及其相关的衍生攻击行为,目前微软已经更新了相关的安全情报;

?在 Microsoft Defender Antivirus 反病毒组件方面,以下组件均可通过默认的自动更新获得最新的安全情报更新,从而从系统层面阻止相关安全威胁:

?所有 Windows 系统所内置的 Microsoft Defender Antivirus 反病毒组件,无论是 Windows 客户端还是服务器系统

?企业环境中部署的 Microsoft Defender for Endpoint (包含 Windows 和 Linux 系统),无论是 On-premises 服务器或者 Azure IaaS VM

?在 Global Azure 上,通过 Microsoft Defender for Cloud 所集成部署到 IaaS VM 的 Microsoft Defender for Endpoint(包含 Windows 和 Linux 系统)(注意:China Azure 上尚无此集成功能)

?截止到目前为止,最新的安全情报版本为 1.355.346,包含但不限于针对以下相关威胁攻击的检测:

On Windows:

?Trojan:Win32/Capfetox.AA– detects attempted exploitation on the attacker machine

?HackTool:Win32/Capfetox.A!dha – detects attempted exploitation on the attacker machine

?VirTool:Win64/CobaltSrike.A, TrojanDropper:PowerShell/Cobacis.A – detects Cobalt Strike Beacon loaders

?TrojanDownloader:Win32/CoinMiner – detects post-exploitation coin miner

?Trojan:Win32/WebToos.A – detects post-exploitation PowerShell

?Ransom:MSIL/Khonsari.A – detects a strain of the Khonsari ransomware family observed being distributed post-exploitation

On Linux:

?Trojan:Linux/SuspectJavaExploit.A, Trojan:Linux/SuspectJavaExploit.B, Trojan:Linux/SuspectJavaExploit.C – blocks Java processes downloading and executing payload through output redirection

?Trojan:Linux/BashMiner.A – detects post-exploitation cryptocurrency miner

?TrojanDownloader:Linux/CoinMiner – detects post-exploitation cryptocurrency miner

?TrojanDownloader:Linux/Tusnami – detects post-exploitation Backdoor Tsunami downloader

?Backdoor:Linux/Tusnami.C – detects post-exploitation Tsunami backdoor

?Backdoor:Linux/Setag.C – detects post-exploitation Gates backdoor

?Exploit:Linux/CVE-2021-44228.A, Exploit:Linux/CVE-2021-44228.B – detects exploitation

?Microsoft Defender for Endpoint 的威胁与漏洞管理功能(Threat and vulnerability management)目前可以主动评估并发现 Windows 操作系统上面的 Log4j 漏洞,并发出相关警告。针对 Linux 和 macOS 的主动评估支持正在后续更新中。

针对 Log4j 漏洞,新增的安全事件如下:

Global Azure上,通过集成的漏洞评估工具,Microsoft Defender for Cloud 中的 Inventory Tool 可以帮助企业发现受到影响的公有云或混合云 VM。

当 Microsoft Defender for Cloud 中 Defender for Server 与 Microsoft Defender for Endpoint 集成时,也可以直接通过系统安装组件信息来发现受到影响的 VM。


在 Global Azure 和 China Azure上:

?通过 Microsoft Defender for Cloud 的 Defender for servers 功能,可以实现针对 Log4j 相关攻击行为的动态实时威胁检测,并及时发出相关警告。

?以下是相关的部分警告信息:

On Linux:

?Suspicious file download

?Possible Cryptocoinminer download detected

?Process associated with digital currency mining detected

?Potential crypto coin miner started

?A history file has been cleared

?Suspicious Shell Script Detected

?Suspicious domain name reference

?Digital currency mining related behavior detected

?Behavior similar to common Linux bots detected

On Windows:

?Detected obfuscated command line

?Suspicious use of PowerShell detected

Microsoft Defender for IoT 已经发布相关更新,支持检测 Log4j 漏洞相关的攻击行为。请用户及时进行升级。


Azure Firewall Premium

?Azure Firewall premium IDPS (Intrusion Detection and Prevention System) 已经发布相关更新,可以检测并阻止 Log4j 漏洞相关攻击行为。

?用户可以自动获得上述更新;建议将 IDPS 策略配置为 Alert and deny。

最后是WAF:

?与 Azure Front Door 相关的 Azure WAF 策略已经完成默认托管策略更新,支持检测并阻止 Log4j 相关漏洞。启用默认托管策略(DRS v1.0/1.1/2.0)的用户会自动获得上述更新。

?目前产品组正在全球更新与 Application Gateway 关联的 WAF 托管策略(CRS 3.1/3.0),计划于本周内完成,使用 WAF 相关托管策略的用户将会自动获得更新。

?用户可以创建相关的 WAF 自定义规则,来快速抑制一些明显的 Log4j 攻击行为,如右所示

?注意:该规则存在检测被绕过的风险


对于 Azure 客户的后续快速建议汇总

1.请客户参考前述 Apache Log4j 的官方文档,评估CVE-2021-44228 Log4j2 漏洞对自身所拥有的相关应用和系统的影响,并完成相关组件的升级。

2.在操作系统和IaaS 方面,请客户确保在操作系统或者 IaaS VM 层面,Microsoft Defender 反病毒组件或者Microsoft Defender for Endpoint 启用自动更新并获得了最新的安全情报更新;

3.使用 Microsoft Defender for IoT 的客户,请确保及时进行最新的安全情报更新;

4.在Azure 网络安全方面,请客户部署并使用Azure Firewall Premium 的 IDPS 功能,或着启用 Azure WAF 的相关检测或阻止策略;

5.启用 Microsoft Defender for Cloud 的相关功能,以实现针对Azure环境和资源的安全监测与运营。

注意,上述仅为针对 Log4j 漏洞的快速应对措施。对于整体的云计算安全,我们建议客户通过参考微软云计算安全最佳实践实现更为完善和全面的安全防护。

相关推荐

js中arguments详解

一、简介了解arguments这个对象之前先来认识一下javascript的一些功能:其实Javascript并没有重载函数的功能,但是Arguments对象能够模拟重载。Javascrip中每个函数...

firewall-cmd 常用命令

目录firewalldzone说明firewallzone内容说明firewall-cmd常用参数firewall-cmd常用命令常用命令 回到顶部firewalldzone...

epel-release 是什么

EPEL-release(ExtraPackagesforEnterpriseLinux)是一个软件仓库,它为企业级Linux发行版(如CentOS、RHEL等)提供额外的软件包。以下是关于E...

FullGC详解  什么是 JVM 的 GC
FullGC详解 什么是 JVM 的 GC

前言:背景:一、什么是JVM的GC?JVM(JavaVirtualMachine)。JVM是Java程序的虚拟机,是一种实现Java语言的解...

2024-10-26 08:50 citgpt

使用Spire.Doc组件利用模板导出Word文档
  • 使用Spire.Doc组件利用模板导出Word文档
  • 使用Spire.Doc组件利用模板导出Word文档
  • 使用Spire.Doc组件利用模板导出Word文档
  • 使用Spire.Doc组件利用模板导出Word文档
跨域(CrossOrigin)

1.介绍  1)跨域问题:跨域问题是在网络中,当一个网络的运行脚本(通常时JavaScript)试图访问另一个网络的资源时,如果这两个网络的端口、协议和域名不一致时就会出现跨域问题。    通俗讲...

微服务架构和分布式架构的区别

1、含义不同微服务架构:微服务架构风格是一种将一个单一应用程序开发为一组小型服务的方法,每个服务运行在自己的进程中,服务间通信采用轻量级通信机制(通常用HTTP资源API)。这些服务围绕业务能力构建并...

深入理解与应用CSS clip-path 属性
深入理解与应用CSS clip-path 属性

clip-pathclip-path是什么clip-path 是一个CSS属性,允许开发者创建一个剪切区域,从而决定元素的哪些部分可见,哪些部分会被隐...

2024-10-25 11:51 citgpt

HCNP Routing&Switching之OSPF LSA类型(二)
  • HCNP Routing&Switching之OSPF LSA类型(二)
  • HCNP Routing&Switching之OSPF LSA类型(二)
  • HCNP Routing&Switching之OSPF LSA类型(二)
  • HCNP Routing&Switching之OSPF LSA类型(二)
Redis和Memcached的区别详解
  • Redis和Memcached的区别详解
  • Redis和Memcached的区别详解
  • Redis和Memcached的区别详解
  • Redis和Memcached的区别详解
Request.ServerVariables 大全

Request.ServerVariables("Url")返回服务器地址Request.ServerVariables("Path_Info")客户端提供的路...

python操作Kafka

目录一、python操作kafka1.python使用kafka生产者2.python使用kafka消费者3.使用docker中的kafka二、python操作kafka细...

Runtime.getRuntime().exec详解

Runtime.getRuntime().exec详解概述Runtime.getRuntime().exec用于调用外部可执行程序或系统命令,并重定向外部程序的标准输入、标准输出和标准错误到缓冲池。...

promise.all详解 promise.all是干什么的
promise.all详解 promise.all是干什么的

promise.all详解promise.all中所有的请求成功了,走.then(),在.then()中能得到一个数组,数组中是每个请求resolve抛出的结果...

2024-10-24 16:21 citgpt

Content-Length和Transfer-Encoding详解
  • Content-Length和Transfer-Encoding详解
  • Content-Length和Transfer-Encoding详解
  • Content-Length和Transfer-Encoding详解
  • Content-Length和Transfer-Encoding详解

取消回复欢迎 发表评论: