HOW TO
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:
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
Betriebssystem | Dateiname | Hash |
---|---|---|
Windows | log4shellmitigation.python.zip | 31EC8F0543348498000B7B36E0ED17354EAAE14C3B131ACC3877B6E1918D58F3 |
Linux | log4shellmitigation.linux.zip | DDB01B31CF7B91270DF4410F502B17D42DC21232661400982D500E79C577897B |
Workflow unter Windows:
Die folgenden Schritte gelten für alle GeoEnrichment Server-Versionen.
Vorbereitung
<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.
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
<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.
<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"
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
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.
chmod 500 log4shellmitigation.sh
./log4shellmitigation.sh -lDadurch 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.
./log4shellmitigation.sh
Problembehandlung
Falls Probleme auftreten sollten und ein Rollback der Änderungen erforderlich wird, wenden Sie sich an den technischen Support von Esri.
Unterstützung durch ArcGIS-Experten anfordern
Esri Support App herunterladen