本文中会涉及到
?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 漏洞的快速应对措施。对于整体的云计算安全,我们建议客户通过参考微软云计算安全最佳实践实现更为完善和全面的安全防护。