Examinar las prácticas recomendadas de seguridad de ArcGIS Server
ArcGIS Server incorpora una herramienta de script de Python, serverScan.py, que detecta algunos de los problemas de seguridad más habituales. La herramienta comprueba la existencia de 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 |
|
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 |
|
Consultas estandarizadas |
Determina si se aplican consultas estandarizadas. Para proporcionar protección contra ataques de inyección SQL, es fundamental que esta opción esté habilitada. |
|
SS03 |
|
Solicitudes de token |
Determina si se permite generar solicitudes de token mediante GET. Al generar tokens mediante GET, las credenciales de un usuario se envían como parte de la URL y pueden ser capturadas y expuestas a través del historial del navegador o los registros de la red. Esto debería deshabilitarse, salvo que se requiera para otras aplicaciones. |
|
SS04 |
|
Solicitudes de token |
Determina si se permite generar solicitudes de token mediante POST con credenciales en el parámetro de consulta. Al generar tokens, las credenciales de un 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 |
|
|
Genera una lista de servicios de entidades en los que la propiedad |
|
SS06 |
|
Permisos de servicios del sistema |
Determina si se aplican permisos no predeterminados a algún servicio de la carpeta System en Server Manager. Para garantizar que solo los administradores y publicadores tengan acceso a los servicios de la carpeta System, no se deben asignar roles. |
|
SS07 |
|
Directorio de servicios REST |
Determina si se puede acceder al directorio de 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 |
|
Limitaciones entre dominios |
Determina si las solicitudes entre dominios están limitadas a dominios específicos. Para reducir la posibilidad de que una aplicación desconocida envíe comandos maliciosos a sus servicios web, se recomienda restringir el uso de sus servicios a aplicaciones alojadas únicamente en dominios de confianza. |
|
SS09 |
|
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 |
|
Web Adaptor a través de HTTPS |
Determina si uno o más Web Adaptors están registrados a través de HTTPS. Para permitir que Server Manager redirija correctamente a HTTPS, todos los Web Adaptors deben estar registrados a través de HTTPS. |
|
SS11 |
|
Deshabilitar la cuenta de PSA |
Determina si la cuenta del administrador principal del sitio está habilitada. Se recomienda deshabilitar esta cuenta para asegurarse de que no haya otra manera de administrar ArcGIS Server que no sea el grupo o rol especificado en su almacén de identidades. |
|
SS12 |
|
Permisos del servicio de entidades |
Devuelve una lista de servicios de entidades que tienen las operaciones |
|
SS13 |
|
Almacén de identidades LDAP |
Si ArcGIS Server está configurado con un almacén de identidades LDAP, esto determina si se utiliza comunicación cifrada. Para asegurar una comunicación cifrada entre ArcGIS Server y el proveedor de identidad LDAP, se recomienda usar |
|
SS14 |
|
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 |
|
Uso compartido de servicios del sistema |
Determina si alguno de los servicios de la carpeta System se ha compartido como elemento del portal. Para garantizar los permisos adecuados, estos servicios no están pensados para compartirse a través de un portal. Se recomienda eliminar el elemento del portal asociado para restaurar los permisos de servicio predeterminados. |
El script serverscan se encuentra en el directorio <ArcGIS Server installation location>/tools/admin. Ejecute el script desde la línea de comandos o shell. Tiene la opción de especificar parámetros al ejecutar el script.
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. Tiene la opción de especificar parámetros al ejecutar el script.
Parámetros de serverScan.py
|
Parámetro |
Descripción |
|---|---|
|
-n |
El nombre de dominio totalmente calificado del equipo donde está instalado el servidor (es decir: gisserver.example.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 token de Portal para un servidor federado, el nombre de dominio totalmente calificado del servidor que se está analizando debe introducirse en el campo "Webapp URL". Si se genera un token para un servidor no federado, el token debe generarse a través del Directorio de administrador (arcgis/admin/generateToken) y el cliente debe ser "Request IP". 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 la secuencia de comandos. |
Ejemplo: python serverScan.py -n gisserver.example.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 escaneo genera un informe en formato HTML que enumera los problemas anteriores encontrados en el sitio de ArcGIS Server especificado.
De forma predeterminada, el informe se guarda en la misma carpeta donde ejecutó el script y se llama serverScanReport_[hostname]_[date].html.