ArcGIS Server incorpora una herramienta de scripts 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 muchos 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 servicios de sistema | Determina si los permisos no predeterminados se aplican a algún servicio de la carpeta Sistema en Server Manager. Para garantizar que solo los administradores y publicadores tengan acceso a los servicios de la carpeta Sistema, no se debe asignar ningún rol. |
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 principal del sitio 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. |
SS13 | Recommended | Almacén de identidades LDAP | Si ArcGIS Server está configurado con un almacén de identidades LDAP, esto determina si se utiliza comunicación encriptada. Para garantizar la comunicación cifrada entre ArcGIS Server y el proveedor de identidad LDAP, se recomienda usar ldaps:// en la URL de conexión definida para las configuraciones del almacenamiento de usuario LDAP y de rol LDAP (si se utilizan). |
SS14 | Recommended | Certificado SSL del servidor | Determina si ArcGIS Server utiliza un certificado autofirmado. Para ayudar a reducir las advertencias del navegador web u otros comportamientos inesperados en los clientes que se comunican con ArcGIS Server, se recomienda importar y utilizar un certificado SSL firmado por una autoridad certificadora vinculado al puerto 6443. |
SS15 | Critical | Uso compartido de servicios de sistema | Determina si algún servicio de la carpeta Sistema se ha compartido como elemento del portal. Para garantizar los permisos adecuados, estos servicios no están destinados a compartirse mediante el portal. Se recomienda eliminar el elemento asociado del portal para recuperar los permisos de servicio predeterminados. |
El script serverScan.py se encuentra en el directorio <ArcGIS Server installation location>\tools\admin. Ejecute el script desde la línea de comandos o shell. Al ejecutar el script 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 el script. |
-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 el script. |
-t | Se puede generar un token y utilizarlo en lugar del nombre de usuario y la contraseña. Si se genera un token de portal para un servidor federado, se debe introducir el nombre de dominio totalmente calificado del servidor que se está escaneando en el campo 'URL de aplicación web'. Si se genera un token para un servidor no federado, dicho token se debe generar mediante el 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. |
--ignoressl | Deshabilita la verificación del certificado SSL. A partir de 10.7.1, el script intentará verificar todos los certificados SSL de forma predeterminada. Si Python no confía en el emisor de los certificados, el script no se completará. Si lo necesita, puede especificar este parámetro para ignorar todos los certificados. |
-h o -? | Genera una lista de los parámetros que se pueden especificar al ejecutar el script. |
Ejemplo: python serverScan.py -n gisserver.domain.com -u admin -p my.password -o C:\Temp
Si el script 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 el script.
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ó el script y se llama serverScanReport_[hostname]_[date].html.