ArcGIS Server incorpora una herramienta de secuencia de comandos de Python, serverScan.py, que detecta algunos de los problemas de seguridad más habituales. La herramienta comprueba si hay problemas basándose en algunas de las prácticas recomendadas para configurar un entorno seguro para ArcGIS Server. Analiza doce criterios o propiedades de configuración y los divide en tres niveles de gravedad: Critical, Important y Recommended. Las descripciones de estos criterios son las siguientes:
Id. | Gravedad | Propiedad | Descripción |
---|---|---|---|
SS01 | Critical | Comunicación web | Determina si HTTPS está habilitado para ArcGIS Server. Para impedir la interceptación de cualquier comunicación, se recomienda configurar ArcGIS Server y ArcGIS Web Adaptor (si se ha instalado) para que apliquen el cifrado SSL. |
SS02 | Critical | Consultas estandarizadas | Determina si se aplican las consultas estandarizadas. Es fundamental que esta opción esté habilitada para que proteja contra los ataques por inyección de SQL. |
SS03 | Critical | Solicitudes de token | Determina si las solicitudes de token generadas a través de GET son compatibles. Cuando se generan tokens a través de GET, las credenciales del usuario se envían como parte de la dirección URL y pueden capturarse y exponerse mediante el historial del navegador o los registros de la red. Esto debería deshabilitarse, salvo que se requiera para otras aplicaciones. |
SS04 | Critical | Solicitudes de token | Determina si se permite generar solicitudes de token con credenciales a través de POST en el parámetro de consulta. Al generar tokens, las credenciales del usuario se podrían proporcionar como parte de la dirección URL y podrían quedar expuestas mediante el historial del navegador o los registros de la red. Esto debería deshabilitarse, salvo que se requiera para otras aplicaciones. |
SS05 | Critical | Filter web content habilitado | Genera una lista de servicios de entidades donde la propiedad filter web content está deshabilitada. Deshabilitar esta propiedad permite al usuario introducir cualquier texto en los campos de entrada, lo que expone el servicio a posibles ataques de script de sitios cruzados (XSS). Esta propiedad está habilitada de manera predeterminada; a menos que se requieran entidades HTML o atributos no compatible, no debe deshabilitarse. |
SS06 | Critical | Permisos de la carpeta Sistema | Determina si los permisos no predeterminados se aplican a la carpeta Sistema en Server Manager. De manera predeterminada, solo los administradores y editores deben tener acceso a los servicios de la carpeta Sistema. |
SS07 | Important | Directorio de servicios REST | Determina si se puede acceder al directorio de los servicios REST mediante un navegador web. A menos que los usuarios lo utilicen activamente para buscar servicios, debe estar deshabilitado para reducir las posibilidades de que sus servicios se puedan buscar, encontrarse en una búsqueda web o hacer consultas en ellos a través de formularios HTML. Esto también proporciona mayor protección frente a ataques de script de sitios cruzados (XSS). |
SS08 | Important | Limitaciones de dominio cruzado | Determina si las solicitudes de dominio cruzado se limitan a dominios específicos. Para reducir la posibilidad de que una aplicación desconocida envíe comandos malintencionados a sus servicios web, se recomienda restringir el uso de sus servicios a aplicaciones alojadas únicamente en los dominios de su confianza. |
SS09 | Important | Espacio de trabajo dinámico | Genera una lista de servicios donde se puede acceder a la base de datos a través de un espacio de trabajo dinámico. A menos que estén adecuadamente protegidos, esto expone a la base de datos o al espacio de trabajo a que terceros malintencionados puedan tener acceso a través de REST. Los espacios de trabajo dinámicos deben habilitarse únicamente si el servicio y la capacidad de capa o espacio de trabajo dinámicos están diseñados para su uso activo en una aplicación web. En estos casos, es importante asegurarse de que la conexión de base de datos utilizada por el servicio de mapas para conectarse al espacio de trabajo o a la base de datos tiene al menos los privilegios necesarios para la aplicación, por ejemplo, el acceso de solo lectura exclusivamente a aquellas tablas adicionales del espacio de trabajo que se necesitan. |
SS10 | Recommended | Web Adaptor a través de HTTPS | Determina si uno o más Web Adaptors están registrados a través de HTTPS. Para facilitar que Server Manager se redirige correctamente a HTTPS, todos los Web Adaptors deben registrarse a través de HTTPS. |
SS11 | Recommended | Cuenta PSA deshabilitada | Determina si la cuenta del administrador del sitio principal está habilitada. Se recomienda deshabilitar esta cuenta para asegurarse de que hay otra forma de administrar ArcGIS Server aparte del grupo o rol especificado en el almacén de identidades. |
SS12 | Recommended | Permisos del servicio de entidades | Devuelve una lista de servicios de entidades que tienen las operaciones update o delete habilitadas y están abiertos al acceso anónimo. Esto permite cambiar o eliminar los datos de los servicios de entidades sin autenticación. |
La serverscan secuencia de comandos se encuentra en el directorio <ArcGIS Server installation location>/tools/admin. Ejecute la secuencia de comandos desde la línea de comandos o shell. Al ejecutar la secuencia de comandos tiene la opción de especificar parámetros.
Parámetros de serverScan.py
Parámetro | Descripción |
---|---|
-n | El nombre de dominio completo del equipo donde está instalado el servidor (por ejemplo, gisserver.domain.com). El valor predeterminado es el nombre de host del equipo donde se ejecuta la secuencia de comandos. |
-u | El nombre de usuario de una cuenta de administrador. |
-p | La contraseña de una cuenta de administrador. |
-o | El directorio donde se puede guardar el informe de escaneado de seguridad. El directorio predeterminado es la misma carpeta donde ejecuta la secuencia de comandos. |
-t | Se puede generar un token y utilizarlo en lugar del nombre de usuario y la contraseña. Si se genera un portal para un servidor federado, se debe introducir el nombre de dominio completo del servidor que se va a escanear en el campo 'Dirección URL de aplicación web'. Si se genera un token para un servidor no federado, el token se debe generar a través del directorio del administrador (arcgis/admin/generateToken) y el cliente debe ser 'IP de solicitud'. Cuando se proporciona un token, este invalida cualquier nombre de usuario o contraseña proporcionados. |
-h o -? | Genera una lista de los parámetros que se pueden especificar al ejecutar la secuencia de comandos. |
Ejemplo: python serverScan.py -n gisserver.domain.com -u admin -p my.password -o C:\Temp
Si la secuencia de comandos serverScan.py se ejecuta sin especificar parámetros, se le pedirá que los introduzca manualmente o que seleccione un valor predeterminado. Si desea utilizar un token, este se debe proporcionar como un parámetro al ejecutar la secuencia de comandos.
El análisis genera un informe con formato HTML en el que se muestra una lista de los problemas anteriores que se han encontrado en el sitio de ArcGIS Server.
De forma predeterminada, el informe se guarda en la misma carpeta donde ejecutó la secuencia de comandos y se llama serverScanReport_[hostname]_[date].html.