VxRail: VxRail Manager-Problemumgehung zur Behebung der Apache Log4Shell-Schwachstelle (CVE-2021-44228, CVE-2021-45046 und CVE-2021-4104)
Summary:
Dieser Artikel beschreibt ein Skript, das auf VxRail Manager ausgeführt werden kann, um die Apache Log4Shell-Schwachstelle zu beheben, die in CVE-2021-44228, CVE-2021-45046 und
CVE-2021-4104 beschrieben wird (Dell Artikel DSN-2021-007, VMware-Artikel 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.
Die Apache Software Foundation hat Informationen zu einer kritischen Schwachstelle bei der Remote-Codeausführung der Apache Log4j-Bibliothek veröffentlicht, die gemäß der GitHub Advisory-Datenbank als Log4Shell bezeichnet wird (auch beschrieben in CVE-2021-44228, CVE-2021-45046 und CVE-2021-4104). VxRail Manager ist von dem in der Schwachstelle beschriebenen Problem betroffen.
Hinweis: Es werden zwei zusätzliche CVEs, CVE-2021-45046 und CVE-2021-4104, gemeldet, die darauf hinweisen, dass die ursprüngliche Empfehlung zur Behebung des in CVE-2021-44228 (Log4j 2.x) beschriebenen Problems keine vollständige Lösung ist.
Weitere Informationen zu diesen CVEs finden Sie in den folgenden Artikeln:
Hinweis: Das Skript in diesem Artikel wurde auf Version 1.1.2 aktualisiert, die die für alle drei CVEs empfohlenen Korrekturen enthält: CVE-2021-44228, CVE-2021-45046 und CVE-2021-4104.
Im vorherigen Skript wurde ein zusätzliches Problem erkannt, das dazu führen kann, dass eine betroffene Datei in VxRail Manager aus einem Systemarchiv wiederhergestellt wird. Dieses Problem wurde auch in dieser Version behoben.
Wenn Sie frühere Skripte verwendet haben, die in diesem Artikel enthalten waren, laden Sie das neueste Skript (1.1.2) herunter und führen Sie es auf VxRail Manager aus, um sicherzustellen, dass Sie die vollständige Korrektur durchgeführt haben.
Anforderungen und Umfang
Der Umfang der in diesem Artikel beschriebenen Abhilfemaßnahmen umfasst folgende Punkte:
Dieser Artikel gilt für VxRail Manager in den Versionen VxRail 4.5.x, 4.7.x und 7.0.x sowie für VxRail Manager in den Versionen VCF 3.x und 4.x.
Mit dem Skript und den angegebenen Korrekturschritten wird die Sicherheitslücke nur in der VxRail Manager-Appliance-VM behoben.
Für andere Komponenten außerhalb von VxRail Manager, wie z. B. vCenter Server Appliance (vCSA), NSX usw., muss eine separate Abhilfemaßnahme durchgeführt werden, die nicht in diesem Skript enthalten ist.
Außerdem werden mit dem Skript keine Anwendungen oder Dienste korrigiert, die innerhalb von VMs ausgeführt werden und der Sicherheitslücke ausgesetzt sein können. Dell EMC empfiehlt allen Kunden, bei ihren Anwendungs- oder Softwareanbietern nach Diensten zu suchen, die in VMs ausgeführt werden, um sicherzustellen, dass sie nicht beeinträchtigt werden.
Links zu betroffenen VMware-Produkten und potenzielle Problemumgehungen finden Sie im folgenden VMware VMSA-Artikel:
An diesen Artikel angehängt ist die Datei fixlog4j-CVE-2021-44228-CVE-2021-45046-v-1-1-2.zip, die nur das Skript für VxRail Manager enthält.
VxRail-Versionen mit enthaltener Korrektur
Dieses Problem wurde in den folgenden VxRail-Softwareversionen behoben:
VxRail-Paketsoftwareversion 7.0.320
VxRail-Appliance-Softwareversion 4.7.541
VxRail-Appliance-Softwareversion 4.5.471
Es wird empfohlen, ein Upgrade auf eine VxRail-Softwareversion durchzuführen, die die Korrektur enthält. Das Skript wird für Kunden empfohlen, die kein sofortiges Upgrade durchführen können.
Hinweis: Wenn Ihr VxRail-7.0.xxx-Cluster von einem vom Kunden gemanagten vCenter verwaltet wird, finden Sie im folgenden Artikel weitere Überlegungen, die möglicherweise zutreffen:
Zur Korrektur des Problems gehen Sie folgendermaßen vor:
Laden Sie die datei fixlog4j-CVE-2021-44228-CVE-2021-45046-v-1-1-2.zip herunter, die an diesen Artikel angehängt ist.
Laden Sie die .zip-Datei mit Nutzername „mystic“ über SCP auf den VxRail Manager hoch (WinSCP ist z. B. ein SCP-Client, der verwendet werden kann).
Melden Sie sich bei der VxRail Manager VM-Konsole oder SSH mit als Nutzer „mystic“ an.
Wechseln Sie zum Verzeichnis, in das Sie die ZIP-Datei hochgeladen haben, und extrahieren Sie sie mit dem Entpackungsbefehl: 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
Machen Sie das Skript mit dem Befehl chmod ausführbar: mystic@vxrm:~> chmod +x fixlog4j-CVE-2021-44228-CVE-2021-45046.sh
Melden Sie sich mit dem Befehl su als VxRail Manager-Root-Nutzer an: mystic@vxrm:~> su - Kennwort:
Stellen Sie sicher, dass Sie sich im selben Verzeichnis befinden, in dem Sie das Skriptpaket entpackt haben: vxrm:~ # cd /home/mystic vxrm:/home/mystic #
Führen Sie das Skript aus: vxrm:/home/mystic # ./fixlog4j-CVE-2021-44228-CVE-2021-45046.sh
Beispiel für eine Skriptausgabe: 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
Hinweis: Es kann zwischen 5 und 10 Minuten dauern, bis alle Dateien korrigiert wurden und die VxRail Manager-Dienste gestartet wurden.
Warten Sie mindestens 10 Minuten, wenn Sie einen der unten aufgeführten manuellen Validierungsschritte durchführen möchten.
Je nach Version von VxRail Manager gibt es verschiedene Versionen der bibliothek lib4j-core.
Das Skript ist so konzipiert, dass es VxRail Manager unabhängig von der lib4j-core-Version, die in dieser Version von VxRail Manager enthalten ist, richtig korrigiert.
Die obige Ausgabe aus der Ausführung des Skripts zeigt möglicherweise verschiedene Dateien an, die je nach der enthaltenen Version von lib4j-core aktualisiert werden.
Hinweis: Wenn Sie ein VxRail-Upgrade auf einen anderen Build von VxRail durchführen, der keine Korrektur enthält, muss dieses Skript ein zweites Mal ausgeführt werden, um die Korrektur erneut durchzuführen.
HINWEIS: Die vollständige Abhilfemaßnahme für VxRail erfordert sowohl die vCenter Server Appliance (vCSA)-Problemumgehung von VMware als auch die Abhilfemaßnahme für VxRail Manager, die über dieses Skript ausgeführt und implementiert wird.
Um das Problem zu beheben, entfernt das Skript die Datei JndiLookup.class aus den lib4j-core-* jar-Dateien.
Eine jar-Datei ist ein Java-Paketformat, das mehrere Klassen, Metadaten und andere Java-Programme in einer einzigen Datei enthält. Es ähnelt dem Konzept einer ZIP-Datei und basiert auf dem .zip-Format. Die Skriptausführung überprüft, ob jede .jar-Datei erfolgreich aktualisiert wurde.
Um eine manuelle Prüfung durchzuführen, ob das Skript funktioniert hat, können Sie überprüfen, ob die auf VxRail Manager vorhandenen log4j-core-*-.jar-Dateien weiterhin die betroffene Datei JndiLookup.class enthalten. Wenn es funktioniert hat, sollten Sie keine Ausgabe für die folgenden Befehle sehen, was bestätigt, dass die betroffene Datei JndiLookup.class nicht mehr in der .jar-Datei vorhanden ist.
Validierung mit automatisiertem Befehl
Der folgende Befehl kann auf dem VxRail Manager ausgeführt werden, um nach allen log4j-core-xxxx.jar-Dateien zu suchen, die auf dem VxRail Manager vorhanden sind, und zu prüfen, ob sie die betroffene Datei JndiLookup.class enthalten:
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
Im obigen Beispiel ist die Datei JndiLookup.class nicht in der .jar-Datei vorhanden, was bedeutet, dass das Skript funktioniert und die Überprüfung erfolgreich ist:
/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
Im obigen Beispiel ist die betroffene Datei JndiLookup.class noch in der log4j-core-2.13.3.jar-.jar-Datei vorhanden.
Validierung mit manueller Überprüfung jeder Datei
Um schnell alle log4j-core-xxxx.jar-Dateien auf dem VxRail Manager zu identifizieren, führen Sie den folgenden Befehl aus (dies formatiert auch die Ausgabe in einen brauchbaren Befehl):
vxrm:/home/mystic # find / -name log4j-core*jar -print |grep -v log4jbak | awk '{print("unzip -l " $1 "|grep JndiLookup.class")}'
Führen Sie anhand der obigen Beispielausgabe die einzelnen Befehle manuell aus, um zu sehen, ob sie die betroffene JndiLookup.class-Datei erkennen:
vxrm:/home/mystic # unzip -l /mystic/connectors/eservice/lib/log4j-core-2.13.0.jar|grep JndiLookup.class vxrm:/home/mystic #
Im obigen Beispiel ist die Datei JndiLookup.class nicht in der .jar-Datei vorhanden, was bedeutet, dass das Skript funktioniert und die Überprüfung erfolgreich ist.
Note: Die .jar-Dateinamen aus der obigen Beispielausgabe können je nach Ihrer Version von VxRail Manager abweichen. Verwenden Sie die Beispielausgabe, die Sie vom obigen find-Befehl erhalten.
Ein Beispiel für die Ausgabe einer .jar-Datei, die immer noch betroffen ist und die betroffene JndiLookup.class-Datei enthält:
Im obigen Beispiel ist die betroffene Datei JndiLookup.class noch in der .jar-Datei log4j-core-2.4.1.jar vorhanden.
HINWEIS: Zur Erinnerung: Die vollständige Abhilfemaßnahme für VxRail erfordert sowohl die vCenter Server Appliance (vCSA)-Problemumgehung von VMware als auch die Abhilfemaßnahme für VxRail Manager, die über dieses Skript ausgeführt und implementiert wird.