HOW TO

Ausführen des Log4Shell-Skripts zur Risikominderung für GeoEnrichment Server

Last Published: March 31, 2022

Zusammenfassung

Die Log4Shell-Sicherheitslücke (CVE-2021-44228) ist eine kritische Sicherheitslücke in Version 2 der log4j-Bibliothek. Dieser Artikel enthält Schritte zur Minimierung des Risikos einer Ausnutzung dieser Sicherheitslücke.  Esri arbeitet an einem Patch. Dieses Skript zur Risikominderung kann jedoch sofort für alle GeoEnrichment Server-Versionen verwendet werden.

Hinweis: Esri empfiehlt das Installieren der Patches für diese Schwachstelle, sobald sie verfügbar sind. Besuchen Sie die Seite ArcGIS Enterprise Log4j Patch Summary Page.

Funktionsweise dieses Skripts:
Dieses Skript implementiert eine umfassend dokumentierte Herangehensweise, mit der log4j-Bibliotheken der Version 2 so modifiziert werden, dass die Datei "JndiLookup.class" aus der JAR-Kerndatei von log4j entfernt wird, sodass die Sicherheitslücke nicht ausgenutzt werden kann. Mit diesem Skript werden alle Speicherorte der Klassendateien in GeoEnrichment Server identifiziert und die Klassendateien entfernt. Das Skript bietet eine Implementierung für Linux und eine für Windows.  Dieselben Skripte können auch für ArcGIS Server, Portal for ArcGIS und ArcGIS Data Store verwendet werden. Wenn Sie das Skript "log4shellmitigation" für diese Produkte bereits heruntergeladen haben, können Sie es für diese Schritte erneut verwenden.

Voraussetzungen:

  • Windows: Für das Skript muss Python 3.5 oder höher installiert sein, Python 2.7 kann nicht verwendet werden. Python wird normalerweise im ArcGIS-Server-Installationsverzeichnis (meistens "C:\Programme\ArcGIS\Server") im Verzeichnis "\framework\runtime\ArcGIS\bin\Python\envs\arcgispro-py3" installiert.
  • Linux: Für das Skript müssen die Bash-Shell und der Befehl "zip" installiert sein. Sehr wahrscheinlich ist die Bash-Shell bereits installiert, sodass eine Installation nicht erforderlich ist. Je nach verwendeter Linux-Distribution und -Version müssen Sie das Programm "zip" mithilfe von "apt-get" oder "yum" installieren.
Hinweis: Esri empfiehlt, dass Sie vor dem Ausführen dieser Skripte sicherstellen, dass Ihnen der richtige Download vorliegt. Führen Sie dazu für die heruntergeladenen ZIP-Dateien die Prüfsumme aus, und vergewissern Sie sich, dass der Hashwert dem Wert in der unten stehenden Tabelle entspricht. Extrahieren Sie das Skript erst, wenn Sie die Prüfsumme ausgeführt haben. Weitere Informationen zum Überprüfen der Prüfsumme finden Sie im folgenden Artikel: How To: Überprüfen eines Esri Downloads mithilfe der Prüfsumme
BetriebssystemDateinameHash
Windowslog4shellmitigation.python.zip31EC8F0543348498000B7B36E0ED17354EAAE14C3B131ACC3877B6E1918D58F3
Linuxlog4shellmitigation.linux.zipDDB01B31CF7B91270DF4410F502B17D42DC21232661400982D500E79C577897B

Vorgehensweise

Workflow unter Windows:
Die folgenden Schritte gelten für alle GeoEnrichment Server-Versionen.

Vorbereitung

  1. Melden Sie sich als Administrator oder mit dem ausführenden GeoEnrichment-Konto an.  Dieses Konto muss über Berechtigungen zum Ändern von Dateien im GeoEnrichment-Verzeichnis verfügen.
  2. Laden Sie die Datei log4shellmitigation.python.zip herunter, und entpacken Sie sie auf dem GeoEnrichment-Computer. Diese Datei kann an einem beliebigen Speicherort abgelegt werden.
  3. Starten Sie eine Eingabeaufforderung als Administrator.
  4. Ändern Sie das Verzeichnis (Befehl "cd") in den Speicherort des Skripts.
  5. Geben Sie den folgenden Befehl ein:
<Vollständiger Pfad zu Python>\python.exe log4shellmitigation.py --list <GeoEnrichment-Verzeichnis>

Hier sehen Sie ein Beispiel des Befehls:

"C:\Programme\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\envs\arcgispro-py3\python.exe" log4shellmitigation.py --list "c:\Programme\ArcGIS\GeoEnrichment"

Dadurch werden alle zu ändernden Dateien aufgelistet.  Notieren Sie sich diese Speicherorte, falls Sie die Änderungen zu einem späteren Zeitpunkt zurücksetzen möchten.

Hinweise: Das GeoEnrichment-Verzeichnis ist meistens "C:\Programme\ArcGIS\GeoEnrichment". Wenn der Dateipfad zu Python oder dem Serververzeichnis Leerzeichen enthält, fügen Sie Anführungszeichen (") um den Pfad herum ein. Beachten Sie die Schreibweise von --list: "Bindestrich Bindestrich list". Wird ein Leerzeichen weggelassen oder hinzugefügt, schlägt der Befehl fehl.
  1. Die Skriptausführung dauert möglicherweise rund eine Minute, da jede Datei im GeoEnrichment-Verzeichnis durchsucht wird. Es werden alle Dateien aufgelistet, die bei Ausführung des Skripts im Modus "delete" aktualisiert werden. Notieren Sie sich diese Dateien, falls Sie die Änderungen zurücksetzen müssen.

Ausführen des Skripts

Hinweis: Für GeoEnrichment Server wird vorausgesetzt, dass ArcGIS Server auf demselben Computer installiert ist. Informationen finden Sie unter: How To: Ausführen des Log4Shell-Skripts zur Risikominderung für ArcGIS Server
  1. Beenden Sie den GeoEnrichment Data Store-Service.  Die Dateien können mit dem folgenden Befehl nicht geändert werden, wenn GeoEnrichment Server ausgeführt wird.
  2. Geben Sie den folgenden Befehl ein:
<Vollständiger Pfad zu Python>\python.exe log4shellmitigation.py --delete <GeoEnrichment-Verzeichnis>

Hier sehen Sie ein Beispiel des Befehls:

"C:\Programme\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\envs\arcgispro-py3\python.exe" log4shellmitigation.py --delete "c:\Programme\ArcGIS\GeoEnrichment"

Es handelt sich um den Befehl, mit dem die JAR-Dateien geändert werden, sodass die Log4Shell-Schwachstelle nicht ausgenutzt werden kann.

  1. Geben Sie den folgenden Befehl ein:
<Vollständiger Pfad zu Python>\python.exe log4shellmitigation.py --delete <Verzeichnis der GeoEnrichment-Daten>

Hier sehen Sie ein Beispiel des Befehls:

"C:\Programme\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\envs\arcgispro-py3\python.exe" log4shellmitigation.py --delete "c:\geoenrichment"
  1. Starten Sie den GeoEnrichment Data Store-Service.

Problembehandlung
Falls Probleme auftreten sollten und Sie ein Rollback der Änderungen durchführen möchten, wenden Sie sich an den technischen Support von Esri.


Workflow unter Linux
Die folgenden Schritte gelten für alle GeoEnrichment Server-Versionen.

Vorbereitung

  1. Melden Sie sich bei dem Linux-Computer, auf dem GeoEnrichment Server ausgeführt wird, an. Nutzen Sie dazu das Konto, das zum Installieren von GeoEnrichment Server verwendet wurde. Verwenden Sie kein anderes Konto, ganz gleich ob Nicht-Root-Konto, Root-Konto oder Superuser.
  2. Laden Sie die Datei log4shellmitigation.linux.zip herunter, und entpacken Sie sie auf dem GeoEnrichment Server-Computer. Die Datei muss im übergeordneten Verzeichnis des Speicherorts von GeoEnrichment Server abgelegt werden.

Beispiel: Angenommen, GeoEnrichment Server wurde unter "/opt/arcgis/geoenrichment" installiert, so muss das Skript im Verzeichnis "/opt/arcgis" abgelegt werden.

Hinweis: Wenn Sie mehrere ArcGIS Enterprise-Produkte auf demselben Computer mit demselben übergeordneten Verzeichnis installiert haben und das Skript "log4shellmitigation.sh" bereits von diesem Speicherort aus ausgeführt haben, müssen Sie es nicht noch einmal ausführen. Wenn ein Skript aus einem übergeordneten Verzeichnis ausgeführt wird, wird es auf alle Produkte, die dasselbe übergeordnete Verzeichnis haben, angewendet.
  1. Ändern Sie das Verzeichnis zum übergeordneten Verzeichnis, wo Sie das Skript log4shellmitigation.sh abgelegt haben.
  2. Legen Sie das Skript mit dem folgenden Befehl als ausführbares Skript fest:
chmod 500 log4shellmitigation.sh
  1. Führen Sie das Skript mit der Option -l (Bindestrich klein L) aus, um alle zu ändernden Dateien zu ermitteln.
./log4shellmitigation.sh -l
Dadurch werden alle zu ändernden Dateien aufgelistet. Im Rahmen dieses Skripts wird keine Sicherung der Dateien erstellt. Wenn Sie eine Sicherung der Originaldateien benötigen, müssen Sie diese jetzt erstellen, indem Sie die Dateien an einen anderen Speicherort kopieren.
  1. Beenden Sie GeoEnrichment Server.  Sie können dazu jede beliebige Methode verwenden, die Sie sonst auch nutzen. Ansonsten funktioniert die Ausführung des Skripts "stopdatastore.sh" im Verzeichnis "<GeoEnrichment-Installationsverzeichnis>/arcgis/geoenrichment" in den meisten Versionen von Linux-Distributionen.
  2. Führen Sie das Skript ohne Argumente aus:
./log4shellmitigation.sh
  1. Wenn Sie dazu aufgefordert werden, bestätigen Sie das Patchen der Dateien durch Eingabe von "y".
  2. Starten Sie den GeoEnrichment-Service. Sie können dazu jede beliebige Methode verwenden, die Sie sonst auch nutzen. Ansonsten funktioniert die Ausführung des Skripts "startdatastore.sh" im Verzeichnis "<GeoEnrichment-Installationsverzeichnis>/arcgis/geoenrichment" in den meisten Versionen von Linux-Distributionen.

Problembehandlung
Falls Probleme auftreten sollten und ein Rollback der Änderungen erforderlich wird, wenden Sie sich an den technischen Support von Esri.

Artikel-ID:000026982

Hilfe von ArcGIS-Expert*innen erhalten

Technischen Support kontaktieren

Die Esri Support-App herunterladen

Zu den Download-Optionen