A la hora de proteger ArcGIS Server, es importante que el entorno de ArcGIS Server también se ejecute de forma segura. Hay varias prácticas recomendadas que puede seguir para garantizar la máxima seguridad.
Solicitar y configurar su propio certificado de servidor
ArcGIS Server está preconfigurado con un certificado autofirmado que permite probar el servidor inicialmente y le ayuda a verificar de forma rápida si la instalación se realizó correctamente. Sin embargo, en la mayoría de los casos, una organización debe solicitar un certificado a una autoridad certificadora (CA) de confianza y configurar el servidor para que lo use. Este puede ser un certificado de dominio emitido por su organización o un certificado firmado por una autoridad certificadora.
Al igual que ArcGIS Server, el portal de ArcGIS Enterprise también incluye un certificado autofirmado preconfigurado. Si va a federar su sitio con un portal, solicite un certificado de una CA de confianza y configure el portal para que lo utilice.
Configurar un certificado de una autoridad de confianza es una práctica segura para los sistemas basados en web y evita que los usuarios reciban advertencias del navegador u otros comportamientos inesperados. Si utiliza el certificado autofirmado que se incluye con ArcGIS Server y el portal de ArcGIS Enterprise durante las pruebas, experimentará lo siguiente:
- Advertencias de su navegador web, de ArcGIS Desktop o de ArcGIS Pro sobre que el sitio no es de confianza. Cuando un navegador web encuentra un certificado autofirmado, normalmente muestra una advertencia y pide al usuario que confirme que quiere acceder al sitio. Muchos navegadores muestran iconos de advertencia o un color rojo en la barra de dirección mientras se usa el certificado autofirmado.
- Incapacidad para abrir un servicio federado en el portal de Visor de mapas o Map Viewer Classic, para agregar un elemento de servicio protegido al portal, para iniciar sesión en ArcGIS Server Manager en un servidor federado o para conectarse al portal desde ArcGIS for Office.
- Comportamiento inesperado al configurar servicios de utilidades, imprimir servicios alojados y acceder al portal desde aplicaciones cliente.
Precaución:
La lista anterior de los problemas que se experimentan al usar un certificado autofirmado no es exhaustiva. Es obligatorio utilizar un certificado firmado por una entidad de certificación para probar e implementar por completo su portal.
Para obtener las instrucciones sobre cómo configurar ArcGIS Enterprise con un certificado firmado por una entidad de certificación, consulte los temas siguientes:
Detectar posibles ataques de scripts entre sitios
Los ataques de scripts entre sitios (XSS) inyectan y ejecutan código en páginas web existentes. Muchas veces, el atacante engaña a la víctima para que esta abra la página que contiene los datos o las entradas que proporciona el atacante. En los sitios de ArcGIS Server, estas entradas o datos pueden ser entidades que devuelve un servicio de entidades.
ArcGIS Server puede analizar las entidades para detectar posibles ataques XSS. Puede analizar entidades al agregarlas o actualizarlas a través de la entidad, y además al enviar dichas entidades a aplicaciones cliente. No obstante, los análisis para detectar código malicioso en una entidad pueden generar falsos positivos o deshabilitar HTML legítimo incluido en entidades para elementos emergentes de HTML. El comportamiento de análisis se puede configurar de manera diferente en cada servicio.
De forma predeterminada, al crear servicios, se suelen configurar para analizar las ediciones y detectar posibles scripts y bloquearlos, pero no para analizar las entidades recuperadas del servicio de entidades. Un atacante puede superar este análisis de edición editando las entidades de formas que no se analizan, por ejemplo, editando directamente la base de datos mediante SQL. La manera más segura de configurar los servicios es analizar todas las entidades. El análisis de todas las entidades recuperadas para detectar scripts podría reducir el rendimiento, pero es una práctica recomendada de seguridad.
Modificar los valores en cada uno de los servicios puede resultar complicado, de modo que el planteamiento preferido es definir un valor predeterminado con la propiedad featureServiceXSSFilter. Se trata de una propiedad de sistema utilizada al crear servicios. No tiene efecto alguno en los servicios ya existentes y se puede invalidar tras crear un servicio.
Para establecer esta propiedad del sistema, inicie sesión en el Directorio de administrador de ArcGIS Server y haga clic en Propiedades > del sistema. Las propiedades aparecen como un objeto JSON. Copie el objeto JSON existente y modifíquelo agregando la propiedad featureServiceXSSFilter a dicho objeto JSON.
La propiedad featureServiceXSSFilter se puede definir como input o inputOutput. El valor input es el predeterminado; dirige a ArcGIS Server para que configure servicios de entidades nuevos para analizar las ediciones. El valor inputOutput dirige a ArcGIS Server para que configure servicios de entidades nuevos para analizar las ediciones y las entidades devueltas.
Para invalidar la configuración de un servicio concreto, debe utilizar el Directorio de administrador de ArcGIS Server, buscar dicho servicio y editarlo. Las tres propiedades que se utilizan en servicios de entidades individuales son estas:
- xssPreventionEnabled permite analizar para detectar scripts y código en entidades. Establezca esto en true.
- xssPreventionRule se puede definir como input o inputOutput. Las ediciones siempre se analizan, pero solo se analizan las entidades de salida para detectar posibles scripts si el valor es inputOutput. De este modo, se invalida la propiedad featureServiceXSSFilter en todo el sistema.
- xssInputRule especifica la respuesta cuando se detecta código. Las opciones son rejectInvalid o sanitizeInvalid. El valor rejectInvalid es el predeterminado y el recomendado.
Restringir los permisos de archivos
Defina permisos de archivo de forma que solo sea necesario otorgar acceso al directorio de instalación, el almacén de configuración y los directorios del servidor de ArcGIS Server. La única cuenta que el software de ArcGIS Server exige para el acceso es la cuenta de ArcGIS Server. Esta es la cuenta que se utiliza para ejecutar el software. Su organización puede requerir cuentas adicionales para tener acceso. Recuerde que la cuenta de ArcGIS Server debe tener pleno acceso al directorio de instalación, el almacén de configuración y los directorios del servidor para que su sitio funcione correctamente.
ArcGIS Server hereda permisos de archivo de la carpeta principal en la que está instalado. Además, ArcGIS Server otorga permisos a la cuenta de ArcGIS Server para que pueda acceder al directorio en el que está instalado. Los archivos creados cuando se ejecuta ArcGIS Server (por ejemplo, registros) heredan sus permisos de la carpeta principal. Para proteger el almacén de configuración y los directorios del servidor, establezca permisos restringidos en la carpeta principal.
Cualquier cuenta que tenga acceso de escritura al almacén de configuración puede cambiar la configuración de ArcGIS Server que normalmente solo puede modificar un administrador del sistema. Si se utiliza un almacén de seguridad integrado para el mantenimiento de usuarios, el almacén de configuración contiene contraseñas cifradas para dichos usuarios. En este caso, el acceso de lectura al almacén de configuración también debería estar restringido.
Si utiliza servicios de geoprocesamiento o mapa protegidos, bloquee los permisos de archivo en los directorios del servidor para garantizar que las cuentas no autorizadas no puedan acceder a trabajos de mapas ni geoprocesamiento que se generan.
Deshabilitar la cuenta del administrador principal del sitio
La cuenta del administrador principal del sitio es la cuenta que usted especifica al crear un sitio en ArcGIS Server Manager. Solo ArcGIS Server reconocerá su nombre y contraseña; no es una cuenta del sistema operativo y se administra por separado de la cuenta de usuario en el almacén de identidades.
Deshabilite la cuenta del administrador principal del sitio para garantizar que no haya otra manera de administrar ArcGIS Server que no sea mediante el grupo o rol que ha especificado en su almacén de identidades. Consulte Deshabilitar el administrador del sitio principal cuenta para obtener instrucciones completas.
Definir la clave compartida utilizada para generar un token de ArcGIS
Un token de ArcGIS es una cadena de caracteres de información cifrada. La clave compartida es la clave criptográfica que se utiliza para generar esta cadena de caracteres cifrada. Cuanto más compleja sea la clave compartida, resulta más difícil para un usuario malicioso romper el cifrado y descifrar la clave compartida. Si un usuario puede descifrar la clave compartida, replicar el algoritmo de cifrado de ArcGIS Server y obtener la lista de usuarios autorizados, el usuario deberá ser capaz de generar tokens y de consumir los recursos protegidos en ese ArcGIS Server concreto.
Antes de definir una clave compartida, considere lo siguiente:
- La clave compartida se debería establecer en 16 caracteres (si tiene menos de 16 no funciona). Se recomienda utilizar un conjunto de caracteres aleatorios para la clave. Se puede utilizar cualquier carácter, incluidos los caracteres que no son alfanuméricos.
- La clave no debería ser una palabra o un valor común que se adivine con facilidad. Puesto que no hay necesidad de recordar la clave o en otros lugares, la complejidad de la clave no representa los mismos problemas que las contraseñas.
- El token se cifra con la clave compartida utilizando el Estándar de cifrado avanzado (AES), también conocido como Rijndael. Los 16 caracteres de la clave representan los 128 bits utilizados para el cifrado. Para obtener más información sobre el cifrado y el AES, consulte las referencias de seguridad o a alguna persona en la organización que tenga experiencia en seguridad y criptografía.
- En entornos de muy alta seguridad, se recomienda cambiar la clave compartida periódicamente. Recuerde que si cambia la clave compartida, posiblemente necesite actualizar las aplicaciones para utilizar la nueva clave compartida. Todos los tokens incrustados existentes dejarán de ser válidos una vez que cambie la clave compartida.
Consulte más información en Acerca de los tokens de ArcGIS.
Utilizar una cuenta de servicio administrada por un grupo
Utilice una cuenta de servicio administrada por un grupo (gMSA) como la cuenta que ejecute el servicio de ArcGIS Server. Al utilizar una gMSA, se disfruta de las ventajas de una cuenta de dominio de Active Directory y se mantiene protegida esa cuenta mediante actualizaciones periódicas de la contraseña.
Más información sobre las cuentas de servicio administradas por un grupo
Elimine Python 2.x del sistema deshabilitando la característica ArcMap Runtime Support.
La Python Software Foundation ha finalizado el soporte para el lenguaje de programación de Python 2. Esto repercute en ArcGIS Server, ya que los servicios basados en ArcMap utilizan una instalación de Python 2.x en la instalación del software. Si a su organización le preocupa tener instalado Python 2.x en su sistema, ahora hay una opción para eliminarlo de la implementación de ArcGIS Server.
En la versión 10.9.1, la función ArcMap Runtime Support puede deshabilitarse de las siguientes formas:
- Al instalar ArcGIS Server mediante el programa de instalación o la línea de comandos
- Al actualizar ArcGIS Server mediante el programa de instalación o la línea de comandos
- Después de instalar ArcGIS Server modificando la instalación mediante el programa de instalación o la línea de comandos
Nota:
Si utiliza ArcGIS Enterprise Builder, la función ArcMap Runtime Support se instalará de forma predeterminada. Utilice una de las opciones de modificación para eliminar la función de su implementación.
Si opta por deshabilitar la función ArcMap Runtime Support, el tiempo de ejecución del servicio de ArcMap no se incluirá en ArcGIS Server y Python 2.x no se instalará. Tendrá que migrar o volver a publicar cualquier servicio basado en ArcMap para utilizar el tiempo de ejecución del servicio ArcGIS Pro, que utiliza Python 3.x. También debe volver a crear cualquier extensión de objeto de servidor (SOE) e interceptor de objeto de servidor (SOI) basado en ArcObjects SDK para utilizar el SDK de ArcGIS Enterprise después de migrar o volver a publicar los servicios asociados. También será necesario actualizar las herramientas y las secuencias de comandos de Python 2.x para utilizar la sintaxis de Python 3.x.
Nota:
Si publicó servicios de entidades basados en ArcMap y los datos se copiaron en una base de datos administrada, al eliminar el servicio no se eliminarán los datos copiados de la base de datos administrada si la característica ArcMap Runtime Support está deshabilitada.
ArcGIS Enterprise 10.9.1 será la última versión compatible con los servicios basados en ArcMap. Después de esta versión, ya no será posible publicar ni consumir servicios de ArcMap (incluido ArcPy basado en ArcMap) en sitios de ArcGIS Server. Los servicios que utilicen el tiempo de ejecución de servicio ArcMap ya no podrán ejecutarse si están presentes durante una actualización a una versión posterior de ArcGIS Server. Por lo tanto, Esri le recomienda migrar a servicios basados en ArcGIS Pro y Python 3.x lo antes posible.
Puede elegir migrar a servicios basados en ArcGIS Pro y Python 3.x en la versión anterior a la 10.9.1 que está ejecutando actualmente, actualizar a la versión 10.9.1 sin instalar el tiempo de ejecución de ArcMap y, a continuación, validar que la migración se haya realizado correctamente. También puede instalar la función ArcMap Runtime Support con la versión 10.9.1 y, a continuación, eliminarla una vez haya migrado sus servicios basados en ArcGIS Pro y sus soluciones personalizadas. Puede volver a habilitar la función ArcMap Runtime Support en su implementación de la versión 10.9.1 si identifica la necesidad de que se realice el proceso de migración.
Transmitir con seguridad tokens de ArcGIS
Para evitar el robo y uso indebido de tokens, utilice una conexión segura que utilice HTTPS. El uso de HTTPS garantiza que el nombre de usuario y la contraseña enviados desde el cliente y el token devuelto desde ArcGIS Server no puedan ser interceptados. Para obtener más información, consulte Proteger la comunicación de ArcGIS Server.
Al crear aplicaciones personalizadas de cliente de ArcGIS que utilizan solicitudes GET para acceder a servicios web protegidos mediante la autenticación basada en token de ArcGIS, envíe el token en el encabezado X-Esri-Authorization en lugar de un parámetro de consulta. Impide que los intermediarios en la red, por ejemplo, servidores proxy, puertas de enlace o equilibradores de carga, obtengan el token. La solicitud HTTP GET de ejemplo que aparece a continuación envía el token en el encabezado X-Esri-Authorization:GET https://arcgis.mydomain.com/arcgis/rest/services/SampleWorldCities/MapServer?f=pjson HTTP/1.1
Host: arcgis.mydomain.com
X-Esri-Authorization: Bearer xMTuPSYpAbj85TVfbZcVU7td8bMBlDKuSVkM3FAx7zO1MYD0zDam1VR3Cm-ZbFo-
Si ArcGIS Server utiliza la autenticación de ArcGIS Server y no la autenticación de nivel web (IWA, HTTP BASIC, PKI, etc.), el encabezado de autorización HTTP estándar se puede utilizar en lugar del encabezado X-Esri-Authorization:GET https://arcgis.mydomain.com/arcgis/rest/services/SampleWorldCities/MapServer?f=pjson HTTP/1.1
Host: arcgis.mydomain.com
Authorization: Bearer xMTuPSYpAbj85TVfbZcVU7td8bMBlDKuSVkM3FAx7zO1MYD0zDam1VR3Cm-ZbFo-
Utilizar consultas estandarizadas
ArcGIS Server incluye una opción de seguridad, denominada consultas estandarizadas, que proporciona una mayor protección frente a los ataques por inyección de SQL. Esta opción está habilitada de forma predeterminada.
Si usted es administrador de un servidor, se recomienda que deje habilitada esta opción de seguridad e instruya a sus desarrolladores de aplicaciones para que creen instrucciones con cláusulas WHERE que usen sintaxis independiente de base de datos. Deshabilitar esta opción podría hacer su sistema más vulnerable a ataques por inyección de SQL.
Para obtener más información, consulte Acerca de las consultas estandarizadas.
Deshabilitar el directorio de servicios
Puede inhabilitar el Directorio de servicios para reducir la posibilidad de que alguien pueda examinar sus servicios, encontrarlos en una búsqueda Web o consultarlos mediante formularios HTML. Deshabilitar el Directorio de servicios también proporciona mayor protección frente a los ataques de XSS.
La decisión de deshabilitar el Directorio de servicios depende de la finalidad del sitio y del grado en que los usuarios y desarrolladores deban navegar por él. Si se deshabilita el Directorio de servicios, puede que deba preparar otras listas o metadatos sobre los servicios disponibles en el sitio.
Para obtener instrucciones sobre cómo inhabilitar el Directorio de servicios, consulte Inhabilitar el Directorio de servicios.
Restrinja las solicitudes entre dominios
Las solicitudes entre dominios se usan en muchos ataques de sistema. Se recomienda restringir el uso de los servicios de ArcGIS Server a aplicaciones alojadas únicamente en dominios de su confianza. Para obtener más información, consulte Restricción de solicitudes de dominio cruzado en ArcGIS Server.