ArcGIS-Server verfügt über ein Python-Skriptwerkzeug, serverScan.py, das nach einigen allgemeinen Sicherheitsproblemen sucht. Das Werkzeug überprüft basierend auf einigen bewährten Methoden zum Konfigurieren einer sicheren ArcGIS-Server-Umgebung. Es analysiert zahlreiche Kriterien oder Konfigurationseigenschaften und unterteilt sie in drei Schweregrade: Critical, Important und Recommended. Diese Kriterien lassen sich wie folgt beschreiben:
ID | Schweregrad | Eigenschaft | Beschreibung |
---|---|---|---|
SS01 | Critical | Web-Kommunikation | Stellt fest, ob HTTPS für ArcGIS-Server aktiviert ist. Um zu verhindern, dass Kommunikation abgefangen wird, empfiehlt es sich, ArcGIS Server und ArcGIS Web Adaptor (sofern installiert) so zu konfigurieren, dass die SSL-Verschlüsselung erzwungen wird. |
SS02 | Critical | Standardisierte Abfragen | Stellt fest, ob standardisierte Abfragen erzwungen werden. Um Schutz vor der Einschleusung von SQL-Befehlen zu bieten, muss diese Option unbedingt aktiviert werden. |
SS03 | Critical | Token-Anforderungen | Stellt fest, ob Anforderungen zur Tokenerstellung über GET unterstützt werden. Bei der Erstellung von Tokens über GET werden die Anmeldedaten des Benutzers als Teil der URL übermittelt und können im Browser-Verlauf oder in Netzwerkkomponenten erfasst und offengelegt werden. Diese Einstellung sollte deaktiviert werden, sofern sie nicht für andere Anwendungen erforderlich ist. |
SS04 | Critical | Token-Anforderungen | Stellt fest, ob Anforderungen zur Tokenerstellung über POST mit Anmeldedaten im Abfrageparameter unterstützt werden. Bei der Erstellung von Tokens könnten die Anmeldedaten des Benutzers als Teil der URL bereitgestellt und im Browser-Verlauf oder in Netzwerkkomponenten erfasst und offengelegt werden. Diese Einstellung sollte deaktiviert werden, sofern sie nicht für andere Anwendungen erforderlich ist. |
SS05 | Critical | Filter web content aktiviert | Erstellt eine Liste der Feature-Services, in denen die filter web content-Eigenschaft deaktiviert ist. Ist diese Eigenschaft deaktiviert, kann der Benutzer beliebigen Text in die Eingabefelder eingeben, wodurch der Service potenziellen Cross-Site-Scripting-(XSS-)Angriffen ausgesetzt wird. Diese Eigenschaft ist standardmäßig aktiviert und sollte nur dann deaktiviert werden, wenn nicht unterstützte HTML-Entitäten oder -Attribute erforderlich sind. |
SS06 | Critical | Berechtigungen für System-Services | Ermittelt, ob für einen der Services im Systemordner von Server Manager nicht standardmäßige Berechtigungen gelten. Um sicherzustellen, dass nur Administratoren und Publisher Zugriff auf die Services im Systemordner haben, sollten keine Rollen zugewiesen werden. |
SS07 | Important | REST-Services-Verzeichnis | Legt fest, ob auf das REST-Services-Verzeichnis über einen Webbrowser zugegriffen werden darf. Um möglichst zu vermeiden, dass Ihre Services in einem Browser gelesen, in einer Internetsuche gefunden oder über HTML-Formulare abgefragt werden, sollte das Verzeichnis deaktiviert werden – es sei denn, es wird aktiv für die Suche nach Services durch die Benutzer verwendet. Dies bietet zusätzlichen Schutz vor Cross-Site-Scripting-(XSS-)Angriffen. |
SS08 | Important | Domänenübergreifende Beschränkungen | Legt fest, ob domänenübergreifende Anforderungen auf bestimmte Domänen beschränkt sind. Um die Möglichkeit zu verringern, dass eine unbekannte Anwendung bösartige Befehle an Ihre Web-Services sendet, wird empfohlen, die Verwendung Ihrer Services auf Anwendungen zu beschränken, die ausschließlich in vertrauenswürdigen Domänen gehostet werden. |
SS09 | Important | Dynamischer Workspace | Erstellt eine Liste der Services, auf deren Datenbanken über einen dynamischen Workspace zugegriffen werden kann. Ohne angemessenen Schutz kann die Datenbank/der Workspace über REST dem Zugriff bösartiger Dritter ausgesetzt werden. Dynamische Workspaces sollten nur dann aktiviert werden, wenn der Service und die dynamische Layer-/Workspacefunktion für die aktive Nutzung in einer Webanwendung vorgesehen ist. In diesen Fällen sollte unbedingt sichergestellt werden, dass die vom Kartenservice verwendete Datenbankverbindung für die Verbindung mit dem Workspace bzw. der Datenbank mindestens über die für die Anwendung erforderlichen Berechtigungen verfügt, beispielsweise schreibgeschützten Zugriff ausschließlich auf diejenigen zusätzlichen Tabellen im Workspace, die benötigt werden. |
SS10 | Recommended | Web Adaptor über HTTPS | Ermittelt, ob ein oder mehrere Web Adaptors über HTTPS registriert sind. Um eine erfolgreiche Umleitung von Server Manager zu HTTPs zu ermöglichen, sollten alle Web Adaptors über HTTPS registriert werden. |
SS11 | Recommended | PSA-Konto deaktivieren | Stellt fest, ob das primäre Site-Administratorkonto aktiviert ist. Es wird empfohlen, dieses Konto zu deaktivieren, um sicherzustellen, dass es außer der Gruppe oder Rolle, die Sie im Identitätsspeicher festgelegt haben, keine andere Möglichkeit zum Verwalten von ArcGIS-Server gibt. |
SS12 | Recommended | Berechtigungen für Feature-Services | Listet Feature-Services auf, bei denen die Operationen update oder delete aktiviert und die für anonymen Zugriff freigegeben sind. Dadurch können die Feature-Service-Daten ohne Authentifizierung geändert oder gelöscht werden. |
SS13 | Recommended | LDAP-Identitätsspeicher | Wenn ArcGIS Server mit einem LDAP-Identitätsspeicher konfiguriert ist, wird damit angegeben, ob verschlüsselte Kommunikation verwendet wird. Um die verschlüsselte Kommunikation zwischen ArcGIS Server und dem LDAP-Identity-Provider sicherzustellen, wird empfohlen, ldaps:// in der Verbindungs-URL zu verwenden, die für die Konfiguration des LDAP-Benutzerspeichers und die Konfiguration des LDAP-Rollenspeichers (falls verwendet) definiert wurde. |
SS14 | Recommended | Server-SSL-Zertifikat | Legt fest, ob ein selbstsigniertes Zertifikat von ArcGIS Server verwendet wird. Um Webbrowser-Warnungen von Clients oder andere unerwartete Verhaltensweisen von Clients zu reduzieren, die mit ArcGIS Server kommunizieren, wird empfohlen, ein von einer Zertifizierungsstelle signiertes SSL-Zertifikat zu importieren und zu verwenden, das an Port 6443 gebunden ist. |
SS15 | Critical | Freigeben von System-Services | Ermittelt, ob einer der Services im Systemordner als Portal-Element freigegeben wurde. Um die richtigen Berechtigungen sicherzustellen, sind diese Services nicht für die Freigabe über ein Portal gedacht. Es empfiehlt sich, das verknüpfte Portal-Element zu entfernen, um die Standard-Service-Berechtigungen wiederherzustellen. |
Das serverScan.py-Skript ist im Verzeichnis <ArcGIS Server installation location>\tools\admin gespeichert. Führen Sie das Skript über die Befehlszeile oder -shell aus. Sie haben beim Ausführen des Skripts die Möglichkeit, Parameter anzugeben.
serverScan.py-Parameter
Parameter | Beschreibung |
---|---|
-n | Der vollständig qualifizierte Domänenname des Computers, auf dem der Server installiert ist (d. h. gisserver.domain.com). Die Standardeinstellung ist der Hostname des Computers, auf dem das Skript ausgeführt wird. |
-u | Der Benutzername eines Administratorkontos. |
-p | Das Kennwort eines Administratorkontos. |
-o | Das Verzeichnis, in dem der Sicherheitsüberprüfungsbericht gespeichert wird. Das Standardverzeichnis entspricht dem Ordner, in dem das Skript ausgeführt wird. |
-t | Anstelle des Benutzernamens und Kennworts kann ein Token erstellt werden. Wenn ein Portal-Token für einen Verbundserver generiert wird, sollte der vollständig qualifizierte Domänenname des überprüften Servers in das Feld "Webapp-URL" eingegeben werden. Wenn ein Token für einen nicht verbundenen Server generiert wird, muss es über das Administratorverzeichnis (arcgis/admin/generateToken) und mit dem "Request IP"-Client generiert werden. Wird ein Token bereitgestellt, überschreibt es jeden angegebenen Benutzernamen bzw. jedes angegebene Kennwort. |
--ignoressl | Deaktiviert die SSL-Zertifikatüberprüfung. Ab 10.7.1 versucht das Skript standardmäßig, alle SSL-Zertifikate zu überprüfen. Wenn Python dem Aussteller der Zertifikate nicht vertraut, wird das Skript nicht vollständig ausgeführt. Geben Sie bei Bedarf diesen Parameter an, wenn alle Zertifikate ignoriert werden sollen. |
-h oder -? | Gibt eine Liste der Parameter aus, die beim Ausführen des Skripts angegeben werden können. |
Beispiel: python serverScan.py -n gisserver.domain.com -u admin -p my.password -o C:\Temp
Wenn das Skript "serverScan.py" ohne Angabe von Parametern ausgeführt wird, werden Sie aufgefordert, sie manuell einzugeben oder den Standardwert auszuwählen. Falls Sie ein Token verwenden möchten, muss es beim Ausführen des Skripts als Parameter bereitgestellt werden.
Der Scan erstellt einen Bericht im HTML-Format, in dem jegliche oben aufgeführte Probleme, die in der angegebenen ArcGIS-Server-Site gefunden wurden, aufgelistet sind.
Der Bericht wird standardmäßig im selben Ordner gespeichert, aus dem Sie das Skript ausgeführt haben, und hat den Namen serverScanReport_[hostname]_[date].html.