VxRail. VxRail Manager: временное решение для уязвимости Apache Log4Shell (CVE-2021-44228, CVE-2021-45046 и CVE-2021-4104)
Summary:
В этой статье описывается сценарий, который можно запустить на VxRail Manager для устранения уязвимости Apache Log4Shell, описанной в CVE-2021-44228, CVE-2021-45046 и CVE-2021-4104
(статья Dell DSN-2021-007, статья VMware VMSA-2021-0028).
...
Please select a product to check article relevancy
This article applies to This article does not apply toThis article is not tied to any specific product.Not all product versions are identified in this article.
Apache Software Foundation опубликовала информацию о критической проблеме уязвимости библиотеки Apache Log4j, делающей возможным удаленное выполнение кода, которая известна как Log4Shell в справочной базе данных GitHub (также подробно описана в CVE-2021-44228, CVE-2021-45046 и CVE-2021-4104). VxRail Manager подвержен проблеме, описанной в данной уязвимости.
Примечание. Сообщалось о двух дополнительных CVE, CVE-2021-45046 и CVE-2021-4104, что указывает на то, что первоначальная рекомендация по устранению проблемы, описанной в CVE-2021-44228 (Log4j 2.x), не является окончательным исправлением.
Дополнительные сведения об этих CVE см. в следующих статьях:
Примечание. Сценарий в этой статье был обновлен до версии 1.1.2, которая включает исправления, рекомендованные для всех трех CVE, CVE-2021-44228, CVE-2021-45046 и CVE-2021-4104.
В предыдущем сценарии была обнаружена дополнительная проблема, которая может привести к восстановлению затронутого файла в VxRail Manager из системного архива. Эта проблема также была устранена в этом выпуске.
Если вы использовали предыдущие сценарии, которые были предоставлены в этой статье, скачайте последний сценарий (1.1.2) и запустите его в VxRail Manager, чтобы убедиться в наличии полного исправления.
Требования и охват
В этой статье рассматриваются следующие шаги по исправлению.
Эта статья актуальна для VxRail Manager в выпусках VxRail 4.5.x, 4.7.x и 7.0.x, а также для VxRail Manager в выпусках VCF 3.x и 4.x.
Сценарий и действия по исправлению, представленные здесь, позволяют устранить уязвимость только в виртуальной машине устройства VxRail Manager.
Для других компонентов за пределами VxRail Manager, таких как vCenter Server Appliance (vCSA), NSX и т. д., исправление необходимо выполнять отдельно, они не включены в этот сценарий.
Кроме того, сценарий не исправляет приложения или службы, работающие внутри виртуальных машин, которые могут быть подвержены этой уязвимости. Dell EMC рекомендует всем заказчикам свериться обратиться к поставщикам приложений или программного обеспечения по поводу служб, работающих на виртуальных машинах, чтобы убедиться, что они не затронуты.
Ссылки на затронутые продукты VMware и возможные временные решения подробно описаны в следующей статье VMware VMSA:
К этой статье прилагается файл fixlog4j-CVE-2021-44228-CVE-2021-45046-v-1-1-2.zip, содержащий сценарий только для VxRail Manager.
Выпуски VxRail с включенным исправлением
Эта проблема устранена в следующих выпусках ПО VxRail.
Пакет ПО VxRail, выпуск 7.0.320
ПО устройства VxRail, выпуск 4.7.541
ПО устройства VxRail, выпуск 4.5.471
Рекомендуется модернизировать программное обеспечение VxRail до выпусков, которые содержат исправление. Сценарий рекомендуется для пользователей, которые не могут выполнить модернизацию немедленно.
Примечание. Если ваш кластер VxRail 7.0.xxx управляется vCenter под управлением заказчика, дополнительные рекомендации можно найти в следующей статье.
Чтобы устранить проблему, выполните следующие действия.
Скачайте файл fixlog4j-CVE-2021-44228-CVE-2021-45046-v-1-1-2.zip, прикрепленный к этой статье.
Загрузите файл .zip в VxRail Manager в качестве пользователя mystic через SCP (WinSCP — пример клиента SCP, который можно использовать).
Войдите в консоль виртуальной машины VxRail Manager или подключитесь по SSH в качестве пользователя mystic.
Измените каталог на тот, в который был загружен ZIP-файл, и извлеките его с помощью команды распаковки: mystic@vxrm:~> unzip fixlog4j-CVE-2021-44228-CVE-2021-45046-v-1-1-2.zip Archive: fixlog4j-CVE-2021-44228-CVE-2021-45046-v-1-1-2.zip inflating: fixlog4j-CVE-2021-44228-CVE-2021-45046.sh
Сделайте сценарий исполняемым с помощью команды chmod. mystic@vxrm:~> chmod +x fixlog4j-CVE-2021-44228-CVE-2021-45046.sh
Войдите в систему как привилегированный пользователь VxRail Manager с помощью команды su. mystic@vxrm:~> su - Password:
Убедитесь, что вы находитесь в том же каталоге, в котором распакован пакет сценария: vxrm:~ # cd /home/mystic vxrm:/home/mystic #
Пример выходных данных сценария: Stop MARVIN and runjars service before patching the system
/mystic/connectors/eservice/lib/log4j-core-2.13.0.jar is affected by CVE-2021-44228 and CVE-2021-45046, need to apply patch patching /mystic/connectors/eservice/lib/log4j-core-2.13.0.jar Successfully patched /mystic/connectors/eservice/lib/log4j-core-2.13.0.jar
/mystic/connectors/cluster/lib/log4j-core-2.13.0.jar is affected by CVE-2021-44228 and CVE-2021-45046, need to apply patch patching /mystic/connectors/cluster/lib/log4j-core-2.13.0.jar Successfully patched /mystic/connectors/cluster/lib/log4j-core-2.13.0.jar
To ensure there is no reload behavior, we need to pack the .war file as well. looks like /usr/lib/vmware-marvin/marvind/webapps/ROOT.war contains the bad log4j-core library WEB-INF/lib/log4j-core-2.13.0.jar Archive: /usr/lib/vmware-marvin/marvind/webapps/ROOT.war inflating: WEB-INF/lib/log4j-core-2.13.0.jar Patching WEB-INF/lib/log4j-core-2.13.0.jar in /usr/lib/vmware-marvin/marvind/webapps/ROOT.war Repack /usr/lib/vmware-marvin/marvind/webapps/ROOT.war updating: WEB-INF/lib/log4j-core-2.13.0.jar (deflated 11%) Clean up the ROOT folder...
Always apply a reboot of MARVIN and runjars services restart MARVIN MARVIN restart successfully restart runjars runjars restart successfully
Примечание. Восстановление всех файлов и запуск служб VxRail Manager может занять от 5 до 10 минут.
Подождите не менее 10 минут, если вы планируете выполнить любой из описанных ниже этапов проверки вручную.
Существует несколько различных версий библиотеки lib4j-core в зависимости от выпуска VxRail Manager.
Сценарий разработан для правильного устранения проблем VxRail Manager независимо от версии lib4j-core, которая включена в эту версию VxRail Manager.
В приведенных выше выходных данных при запуске сценария может отображаться обновление различных файлов в зависимости от включенной версии lib4j-core.
Примечание. Если вы выполните модернизацию до сборки VxRail, которая не содержит исправления, этот сценарий необходимо будет запустить повторно, чтобы повторно применить исправление.
ПРИМЕЧАНИЕ. Для полного устранения последствий для VxRail требуется применить временное решение для vCenter Server Appliance (vCSA) от VMware, а также исправление в VxRail Manager, которое выполняется с помощью этого сценария.
Чтобы устранить проблему, сценарий удаляет файл JndiLookup.class из jar-файлов lib4j-core-*.
Jar-файл — это формат упаковки Java для включения нескольких классов, метаданных и других программ Java в один файл. Этот концепт похож на файлы .zip и основан на формате .zip. Выполнение сценария подтверждает, что каждый файл jar успешно обновлен.
Чтобы вручную проверить, что сценарий сработал, проверьте, содержат ли jar-файлы log4j-core-* в VxRail Manager затронутый файл JndiLookup.class. Если сценарий сработал, то в приведенных ниже командах не должно отображаться выходных данных, что подтверждает, что файл JndiLookup.class отсутствует в файле jar.
Проверка с помощью автоматизированной команды
Следующая команда может быть выполнена в VxRail Manager для сканирования всех файлов log4j-core-xxxx.jar в VxRail Manager и проверки наличия в них затронутого файла JndiLookup.class:
vxrm:/home/mystic # for myfile in `find / -name log4j-core*jar -print |grep -v log4jbak`; do echo $myfile; unzip -l $myfile | grep JndiLookup.class; done
В примере выше файлы jar не содержат файл JndiLookup.class, что означает, что сценарий сработал и проверка выполнена успешно.
Ниже показан пример выходных данных для затронутой системы, которую необходимо обновить:
/mystic/connectors/eservice/lib/log4j-core-2.13.3.jar 2892 2020-05-10 12:08 org/apache/logging/log4j/core/lookup/JndiLookup.class /mystic/connectors/cluster/lib/log4j-core-2.13.3.jar 2892 2020-05-10 12:08 org/apache/logging/log4j/core/lookup/JndiLookup.class /usr/lib/vmware-marvin/marvind/webapps/ROOT/WEB-INF/lib/log4j-core-2.13.3.jar 2892 2020-05-10 12:08 org/apache/logging/log4j/core/lookup/JndiLookup.class
В примере выше затронутый файл JndiLookup.class все еще присутствует в файле jar log4j-core-2.13.3.jar.
Ручная проверка каждого файла
Чтобы быстро определить файлы log4j-core-xxxx.jar в VxRail Manager, выполните следующую команду (она также преобразует выходные данные в используемую команду):
vxrm:/home/mystic # find / -name log4j-core*jar -print |grep -v log4jbak | awk '{print("unzip -l " $1 "|grep JndiLookup.class")}'
Запустите каждую команду из примера выходных данных выше вручную, чтобы проверить, определят ли они затронутый файл JndiLookup.class:
vxrm:/home/mystic # unzip -l /mystic/connectors/eservice/lib/log4j-core-2.13.0.jar|grep JndiLookup.class vxrm:/home/mystic #
В примере выше файл jar не содержит файл JndiLookup.class, что означает, что сценарий сработал и проверка выполнена успешно.
Примечание. Имена файлов jar, указанные в примере выходных данных выше, могут отличаться в зависимости от версии VxRail Manager. Используйте пример выходных данных, полученный с помощью команды find выше.
Пример выходных данных для файла jar, который все еще затронут и содержит файл JndiLookup.class:
В примере выше затронутый файл JndiLookup.class все еще содержится в файле jar log4j-core-2.4.1.jar.
ПРИМЕЧАНИЕ. Еще одно напоминание о том, что для полного устранения последствий для VxRail требуется применить временное решение для vCenter Server Appliance (vCSA) от VMware, а также исправление в VxRail Manager, которое выполняется с помощью этого сценария.