Portal for ArcGIS incluye una herramienta de script de Python, portalScan.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 de su portal. Analiza muchos criterios o propiedades de configuración y los divide en tres niveles de gravedad: Crítico, Importante y Recomendado. Las descripciones de estos criterios son las siguientes:
Id. | Gravedad | Propiedad | Descripción |
---|---|---|---|
PS01 | Crítico | Restricciones de proxy | Determina si la capacidad proxy está restringida. De manera predeterminada, el servidor proxy del portal está abierto a cualquier dirección URL. Para minimizar los posibles ataques por denegación de servicio (DoS) o falsificación de solicitud de servidor (SSRF), es muy recomendable restringir la función proxy del portal a direcciones web aprobadas. |
PS02 | Crítico | Solicitudes de token | Determina si se permite generar solicitudes de token con credenciales en el parámetro de consulta. Si se permite, 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. Se recomienda deshabilitar esto a menos que lo requieran otras aplicaciones. |
PS03 | Importante | Directorio de servicios del portal | Determina si se puede acceder al directorio de los servicios del portal mediante un navegador web. Esto debería deshabilitarse para reducir el riesgo de que los elementos, los servicios, los mapas web, los grupos y otros recursos del portal se puedan examinar, aparezcan en los resultados de las búsquedas web o se consulten mediante formularios HTML. |
PS04 | Importante | Comunicación segura | Determina si el portal se comunica solamente mediante HTTPS. Para impedir la interceptación de cualquier comunicación dentro del portal, es recomendable configurar el portal y el servidor web que aloja Web Adaptor de modo que aplique SSL. |
PS05 | Recomendado | Registro de cuenta incorporado | Determina si los usuarios pueden hacer clic en el botón Crear una cuenta en la página de registro del portal para crear una cuenta de portal integrada. Si utiliza cuentas específicas de la organización o desea crear todas las cuentas manualmente, deshabilite esta opción. |
PS06 | Recomendado | Acceso anónimo | Determina si se permite el acceso anónimo. Para impedir que los usuarios accedan al contenido sin proporcionar primero las credenciales para el portal, es recomendable configurar el portal para deshabilitar el acceso anónimo. |
PS07 | Recomendado | Almacén de identidades LDAP | Si el portal está configurado con un almacén de identidades LDAP, esto determina si se utiliza comunicación encriptada. Se recomienda que utilice LDAP en las propiedades de ldapURLForUsers y ldapURLForRoles que se muestran en los parámetros de configuración del almacén de usuarios y del almacén de grupos. |
PS08 | Recomendado | Certificado SSL del portal | Determina si el portal utiliza un certificado autofirmado. Para ayudar a reducir las advertencias del navegador web u otros comportamientos inesperados en los clientes que se comunican con el portal, se recomienda importar y utilizar un certificado SSL firmado por una autoridad certificadora vinculado al puerto 7443. |
PS09 | Recomendado | Solicitudes entre dominios | Determina si las solicitudes entre dominios (CORS) no tienen restricciones. Para reducir la posibilidad de que una aplicación desconocida acceda a un elemento de portal compartido, se recomienda restringir las solicitudes entre dominios a las aplicaciones alojadas únicamente en los dominios de confianza. |
PS10 | Crítico | URL administrativa del servidor federado | Determina si el portal puede llegar a la URL del administrador del servidor federado y si el certificado SSL utilizado en dicha URL es de confianza. Si no es de confianza ni se puede llegar a ella, muchas funciones y operaciones del portal darán error. |
PS11 | Recomendado | URL de los servicios del servidor federado | Determina si el portal puede llegar a la URL de servicios del servidor federado y si el certificado SSL utilizado en dicha URL es de confianza. Si no es de confianza ni se puede llegar a ella, el portal seguirá funcionando, pero algunas operaciones del portal darán error. |
PS12 | Recomendado | Contenido público | Si el portal está configurado para que los miembros no puedan compartir contenido públicamente, se enumerarán los elementos que aún están compartidos con Todos. |
PS13 | Importante | Ajustes de configuración de SAML | Si el portal está configurado para utilizar la autenticación SAML, esto determina si las aserciones cifradas y solicitudes firmadas están habilitadas. Si el proveedor de identidades lo permite, se recomienda configurar el portal para que se requieran tanto las aserciones cifradas como las solicitudes firmadas. |
El script portalScan.py se encuentra en el directorio <Portal for ArcGIS installation location>/tools/security. Ejecute el script desde el shell con el script portalScan Bash, que se encuentra en el mismo directorio. Tiene la opción de especificar uno o varios parámetros al ejecutar la secuencia de comandos.
parámetros de portalScan.py
En la siguiente tabla se describen los parámetros de portalScan.py:
Parámetro | Descripción |
---|---|
-n | El nombre de dominio totalmente calificado del equipo donde está instalado Portal (en otras palabras, gisportal.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 la secuencia de comandos. |
-t | Se puede generar un token y utilizarlo en lugar del nombre de usuario y la contraseña. Al generar un token, se debe introducir portalScan en el campo Webapp URL. Cuando se proporciona un token, este invalida cualquier nombre de usuario o contraseña proporcionados. |
--ignoressl | Deshabilite 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 (con el archivo de salida escrito en el directorio de inicio del usuario):./portalScan -n portal.domain.com -u admin -p my.password -o ~
Si el script portalScan 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 portal especificado.
De forma predeterminada, el informe se guarda en la misma carpeta donde ejecutó el script y se llama portalScanReport_[hostname]_[date].html.