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 zwölf 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 Systemordner | Ermittelt, ob für den Systemordner von Server Manager nicht standardmäßige Berechtigungen gelten. Standardmäßig sollten nur Administratoren und Publisher Zugriff auf die Services im Systemordner haben. |
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. |
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 unverbundenen 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. |
-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.