AEM En esta sección se explican varios pasos que debe seguir para asegurarse de que la instalación de la sea segura cuando se implemente. La lista de comprobación debe aplicarse de arriba a abajo.
También hay disponible más información sobre las amenazas de seguridad más peligrosas publicadas por Abrir proyecto de seguridad de aplicaciones web (OWASP).
Hay algunos más consideraciones de seguridad aplicable en la fase de desarrollo.
Para obtener más información, consulte AEM Ejecución en modo listo para la producción.
Habilitar la capa de transporte HTTPS en las instancias de autor y publicación es obligatorio para tener una instancia segura.
Consulte la Habilitar HTTP sobre SSL para obtener más información.
Asegúrese de que ha instalado la última versión Revisiones de seguridad proporcionadas por el Adobe.
Adobe recomienda después de la instalación que cambie la contraseña de los privilegiados AEM admin
cuentas (en todas las instancias).
Estas cuentas incluyen:
AEM El admin
account
AEM Una vez que haya cambiado la contraseña de la cuenta de administrador de, utilice la nueva contraseña al acceder a CRX.
El admin
contraseña para la consola web OSGi
Este cambio también se aplica a la cuenta de administrador utilizada para acceder a la consola web, por lo que debe utilizar la misma contraseña al acceder a ella.
Estas dos cuentas utilizan credenciales independientes y tener una contraseña segura y distinta para cada una es vital para una implementación segura.
AEM La contraseña de la cuenta de administrador de la se puede cambiar mediante la variable Operaciones de Granite: usuarios consola.
Aquí puede editar la variable admin
cuenta y cambiar la contraseña.
Al cambiar la cuenta de administrador también se cambia la cuenta de la consola web de OSGi. Después de cambiar la cuenta de administrador, debe cambiar la cuenta OSGi a algo diferente.
AEM Aparte de la admin
, si no se cambia la contraseña predeterminada para la contraseña de la consola web OSGi, puede provocar lo siguiente:
Para obtener más información sobre cómo cambiar la contraseña de la consola web, consulte Cambiar la contraseña de administrador de la consola web OSGi más abajo.
Cambie la contraseña utilizada para acceder a la consola web. Utilice un Configuración de OSGI para actualizar las siguientes propiedades del Consola de administración de Apache Felix OSGi:
Consulte Configuración de OSGI para obtener información detallada sobre la configuración de OSGi.
Para cambiar la contraseña de administrador de la consola web de OSGi:
Uso del Herramientas, Operaciones , abra el menú Consola web y vaya al Configuración sección.
Por ejemplo, en <server>:<port>/system/console/configMgr
.
Vaya a y abra la entrada de Consola de administración de Apache Felix OSGi.
Cambie el nombre de usuario y contraseña.
Seleccione Guardar.
El Adobe recomienda definir páginas de controladores de error personalizados, especialmente para los códigos de respuesta HTTP 404 y 500 para evitar la divulgación de información.
Consulte ¿Cómo puedo crear scripts personalizados o controladores de error? para obtener más información.
AEM Dispatcher es una parte esencial de su infraestructura. El Adobe recomienda completar la Lista de comprobación de seguridad de Dispatcher.
Con Dispatcher, debe deshabilitar el selector ".form".
AEM Una instalación estándar de especifica lo siguiente admin
como usuario para credenciales de transporte dentro del valor predeterminado agentes de replicación. Además, el usuario administrador se utiliza para originar la replicación en el sistema de creación.
Por motivos de seguridad, ambos deben cambiarse para reflejar el caso de uso en cuestión, teniendo en cuenta los dos aspectos siguientes:
El usuario de transporte no debe ser el usuario administrador. En su lugar, configure un usuario en el sistema de publicación que solo tenga derechos de acceso a las partes relevantes del sistema de publicación y utilice las credenciales de ese usuario para el transporte.
Puede comenzar desde el usuario receptor de replicación agrupado y configurar los derechos de acceso de este usuario para que coincidan con su situación
El usuario de replicación o ID de usuario agente tampoco debe ser el usuario administrador, sino un usuario que solo pueda ver el contenido replicado. El usuario de replicación se utiliza para recopilar el contenido que se va a replicar en el sistema de creación antes de enviarlo al editor.
AEM presenta el nuevo tablero de operaciones, destinado a ayudar a los operadores del sistema a solucionar problemas y a monitorizar el estado de una instancia.
El tablero también incluye una colección de comprobaciones de estado de seguridad. Se recomienda comprobar el estado de todas las comprobaciones de estado de seguridad antes de activar la instancia de producción. Para obtener más información, consulte la Documentación del Operations Dashboard.
Todo el contenido y los usuarios de ejemplo (por ejemplo, el proyecto de Geometrixx y sus componentes) deben desinstalarse y eliminarse por completo en un sistema productivo antes de hacerlo accesible públicamente.
La muestra We.Retail
Las aplicaciones de se eliminan si esta instancia se ejecuta en Modo Producción lista. Si no es así, puede desinstalar el contenido de ejemplo en el Administrador de paquetes y, a continuación, buscar y desinstalar todos los archivos We.Retail
paquetes.
Consulte Trabajo con paquetes.
Estos paquetes OSGi de desarrollo deben desinstalarse tanto en los sistemas productivos de creación como de publicación antes de hacerlos accesibles.
El AEM Herramientas para desarrolladores de implemente la Instalación de soporte de las herramientas de Apache Sling (org.apache.sling.tooling.support.install).
Este paquete OSGi debe desinstalarse tanto en los sistemas productivos de creación como de publicación antes de hacerlos accesibles.
AEM 6.1 incluye un mecanismo que ayuda a protegerse contra los ataques de falsificación de solicitud en sitios múltiples, denominado Marco de protección CSRF. Para obtener más información sobre cómo utilizarla, consulte la documentación.
Para solucionar problemas de seguridad conocidos con la falsificación de solicitudes entre sitios (CSRF) en CRX WebDAV y Apache Sling, agregue configuraciones para que el filtro Referente lo utilice.
El servicio de filtro de referente es un servicio OSGi que le permite configurar lo siguiente:
qué métodos http se deben filtrar
si se permite un encabezado de referente vacío
y una lista de servidores que se permitirán además del host de servidor.
De forma predeterminada, todas las variaciones de localhost y los nombres de host actuales a los que está enlazado el servidor están en la lista.
Para configurar el servicio del filtro de referente:
Abra la consola Apache Felix (Configuraciones) a las:
https://<server>:<port_number>/system/console/configMgr
Iniciar sesión como admin
.
En el Configuraciones menú, seleccione:
Apache Sling Referrer Filter
En el Allow Hosts
, introduzca todos los hosts que pueden utilizarse como referente. Cada entrada debe tener el formato
<protocol>://<server>:<port>
Por ejemplo:
https://allowed.server:80
permite todas las solicitudes de este servidor con el puerto determinado.0
como el número de puerto.Compruebe la Allow Empty
, si desea permitir encabezados de referente vacíos o que falten.
El Adobe recomienda que proporcione un referente mientras utiliza herramientas de línea de comandos como cURL
en lugar de permitir un valor vacío, ya que podría exponer el sistema a ataques de CSRF.
Edite los métodos que utiliza este filtro para las comprobaciones con el Filter Methods
field.
Clic Guardar para guardar los cambios.
Algunos ajustes de OSGI están configurados de forma predeterminada para facilitar la depuración de la aplicación. Cambie esta configuración en las instancias productivas de publicación y autor para evitar que la información interna se filtre al público.
Todas las configuraciones a continuación, excepto El filtro de depuración de WCM de CQ por día, quedan cubiertas automáticamente por Modo Producción lista. Por lo tanto, Adobe recomienda revisar toda la configuración antes de implementar la instancia en un entorno productivo.
Se debe cambiar la configuración especificada para cada uno de los servicios siguientes:
Administrador de bibliotecas de Adobe Granite HTML:
Filtro de depuración de CQ WCM por día:
Apache Sling JavaScript Handler:
Apache Sling JSP Script Handler:
Consulte Ajustes de configuración de OSGi.
AEM Al trabajar con los servicios de configuración, existen varios métodos para administrar los parámetros de configuración de dichos servicios; consulte Configurar OSGi para obtener más información y las prácticas recomendadas.
Un ataque de denegación de servicio (DoS) es un intento de hacer que un recurso de equipo no esté disponible para los usuarios a los que va destinado. Este ataque se suele realizar sobrecargando el recurso; por ejemplo:
Una avalancha de solicitudes desde una fuente externa.
Una solicitud de más información de la que el sistema puede entregar correctamente.
Por ejemplo, una representación JSON de todo el repositorio.
Al solicitar una página de contenido con un número ilimitado de URL, la URL puede incluir un identificador, algunos selectores, una extensión y un sufijo, cualquiera de los cuales se puede modificar.
Por ejemplo, .../en.html
también se puede solicitar como:
.../en.ExtensionDosAttack
.../en.SelectorDosAttack.html
.../en.html/SuffixDosAttack
Todas las variaciones válidas (por ejemplo, devolver un 200
Respuesta de y están configurados para almacenarse en caché) son almacenados en caché por Dispatcher, lo que finalmente conduce a un sistema de archivos completo y a la ausencia de servicio para más solicitudes.
AEM Hay muchos puntos de configuración para prevenir tales ataques, pero solo se discuten aquellos puntos que se relacionan con los ataques de tipo de ataque de tipo de ataque de tipo de tipo de ataque de tipo de tipo de ataque de tipo de tipo de ataque de tipo de tipo de ataque de tipo de tipo de ataque de tipo de tipo de ataque de tipo de ataque.
Configuración de Sling para evitar denegaciones de servicio
Sling es centrado en el contenido. El procesamiento se centra en el contenido, ya que cada solicitud (HTTP) se asigna al contenido en forma de recurso JCR (un nodo de repositorio):
Consulte Procesamiento de solicitudes de Sling para obtener más información.
Este enfoque hace que Sling sea potente y flexible, pero como siempre, es la flexibilidad la que debe administrarse cuidadosamente.
Para ayudar a evitar el uso indebido de DoS, puede hacer lo siguiente:
Incorporar controles en el nivel de aplicación. Debido al número de variaciones posibles, no es posible una configuración predeterminada.
En la aplicación debe:
404
para todos los demás.Compruebe la configuración de los procesadores predeterminados, que pueden ser un área problemática.
En particular, el procesador JSON atraviesa la estructura de árbol en varios niveles.
Por ejemplo, la solicitud:
http://localhost:4502/.json
podría volcar todo el repositorio en una representación JSON, lo que puede causar problemas significativos en el servidor. Por este motivo, Sling establece un límite en el número máximo de resultados. Para limitar la profundidad del procesamiento de JSON, establezca el valor para lo siguiente:
Resultados máximos de JSON ( json.maximumresults
)
en la configuración de Apache Sling GET Servlet. Cuando se supera este límite, la renderización se contrae. AEM El valor predeterminado de Sling en el entorno de trabajo de es 1000
.
Como medida preventiva, debe desactivar los demás procesadores predeterminados (HTML, texto sin formato, XML). De nuevo, configurando la variable Apache Sling GET Servlet.
AEM No deshabilite el procesador JSON porque es necesario para el funcionamiento normal de la interfaz de usuario de.
Utilice un cortafuegos para filtrar el acceso a su instancia.
Mitigar frente a denegaciones de servicio causadas por el uso de selectores de formulario
AEM Esta mitigación solo debe realizarse en entornos de que no utilicen Forms.
AEM Debido a que no proporciona índices predeterminados para el FormChooserServlet
Sin embargo, el uso de selectores de formularios en las consultas puede provocar un déclencheur AEM costoso en el recorrido del repositorio, lo que generalmente interrumpe la instancia de la aplicación de forma que se detenga. Los selectores de formularios se pueden detectar mediante la presencia del *.form.* cadena en consultas.
Para mitigar este problema, puede realizar los siguientes pasos:
Vaya a la consola web seleccionando el explorador https://<serveraddress>:<serverport>/system/console/configMgr
Buscar por Servlet de selector de formularios CQ WCM por día
Después de hacer clic en la entrada, desactive la Búsqueda avanzada requerida en la siguiente ventana.
Haga clic en Guardar.
Mitigar frente a denegaciones de servicio causadas por el servlet de descarga de recursos
El servlet de descarga de recursos predeterminado permite a los usuarios autenticados emitir solicitudes de descarga simultáneas, arbitrariamente grandes para crear archivos ZIP de recursos. La creación de archivos ZIP de gran tamaño puede sobrecargar el servidor y la red. Para mitigar un posible riesgo de denegación de servicio (DoS) causado por este comportamiento, AssetDownloadServlet
El componente OSGi está deshabilitado de forma predeterminada en Experience Manager instancia de publicación. Está habilitado en Experience Manager Crear instancia de forma predeterminada.
Si no necesita la capacidad de descarga, deshabilite el servlet en las implementaciones de creación y publicación. Si su configuración requiere que la capacidad de descarga de recursos esté habilitada, consulte este artículo para obtener más información. Además, puede definir un límite máximo de descargas que sea compatible con la implementación.
Deshabilite WebDAV en los entornos de creación y publicación deteniendo los paquetes OSGi adecuados.
Conéctese a Consola de administración Felix que se ejecuta el:
https://<*host*>:<*port*>/system/console
Por ejemplo, http://localhost:4503/system/console/bundles
.
En la lista de paquetes, busque el paquete denominado:
Apache Sling Simple WebDAV Access to repositories (org.apache.sling.jcr.webdav)
Para detener este paquete, en la columna Actions, haga clic en el botón stop.
De nuevo, en la lista de paquetes, busque el paquete llamado:
Apache Sling DavEx Access to repositories (org.apache.sling.jcr.davex)
Para detener este paquete, haga clic en el botón Detener.
AEM No es necesario reiniciar la.
Es importante proteger a los usuarios asegurándose de que no expone ninguna información personal identificable en la ruta de inicio de los usuarios del repositorio.
AEM Desde la versión 6.1, la forma en que se almacenan los nombres de nodo de ID de usuario (también conocidos como autorizados) ha cambiado con una nueva implementación de AuthorizableNodeName
interfaz. La nueva interfaz ya no expone el ID de usuario en el nombre del nodo, sino que genera un nombre aleatorio.
AEM No se debe realizar ninguna configuración para habilitarla, ya que ahora es la forma predeterminada de generar ID autorizados en los informes de.
Aunque no se recomienda, puede deshabilitarla en caso de que necesite la implementación antigua para mantener la compatibilidad con las aplicaciones existentes. Para ello, debe hacer lo siguiente:
Vaya a la consola web y elimine la entrada org.apache.jackrabbit.oak.security.user.RandomAuthorizableNodeName de la propiedad requiredServicePids in Apache Jackrabbit Oak SecurityProvider.
También puede encontrar el Proveedor de seguridad de Oak buscando el org.apache.jackrabbit.oak.security.internal.SecurityProviderRegistration PID en las configuraciones de OSGi.
Elimine el Nombre de nodo autorizable aleatorio Apache Jackrabbit Oak Configuración de OSGi desde la consola web.
Para facilitar la búsqueda, el PID de esta configuración es org.apache.jackrabbit.oak.security.user.RandomAuthorizableNodeName.
Para obtener más información, consulte la documentación de Oak sobre Generación de nombre de nodo con autorización.
AEM De forma predeterminada, el sistema almacena metadatos del sistema, como los siguientes jcr:createdBy
o jcr:lastModifiedBy
como propiedades del nodo, junto al contenido normal, en el repositorio. Según la configuración y la configuración de control de acceso, en algunos casos esto podría dar lugar a la exposición de información de identificación personal (PII), por ejemplo, cuando estos nodos se representan como JSON o XML sin procesar.
Al igual que todos los datos del repositorio, estas propiedades están mediadas por la pila de autorización de Oak. El acceso a ellos debe restringirse de conformidad con el principio del menor privilegio.
Para admitir esto, Adobe proporciona un paquete de endurecimiento de permisos como base para que los clientes se basen en él. Funciona instalando una entrada de control de acceso "denegar" en la raíz del repositorio, restringiendo el acceso anónimo a las propiedades del sistema más utilizadas. El paquete está disponible para descargar aquí AEM y se pueden instalar en todas las versiones compatibles de la aplicación de.
Para ilustrar los cambios, podemos comparar las propiedades del nodo que se pueden ver de forma anónima antes de instalar el paquete:
con los que se pueden ver después de instalar el paquete, donde jcr:createdBy
y jcr:lastModifiedBy
no son visibles:
Para obtener más información, consulte las notas de la versión del paquete.
Para evitar el secuestro de clics, Adobe recomienda configurar el servidor web para que proporcione el X-FRAME-OPTIONS
Encabezado HTTP establecido en SAMEORIGIN
.
Para obtener más información sobre el secuestro de clics, consulte la Sitio de OWASP.
AEM AEM Ciertas características y esquemas de autenticación requieren que se dupliquen las claves de cifrado en todas las instancias de la.
Antes de hacerlo, la replicación de claves se realiza de forma diferente entre versiones, ya que la forma en que se almacenan las claves es diferente entre 6.3 y versiones anteriores.
Consulte a continuación para obtener más información.
AEM Mientras que en las versiones anteriores las claves de replicación se almacenaban en el repositorio, a partir de la versión 6.3 se almacenan en el sistema de archivos de.
Por lo tanto, para replicar las claves entre instancias, cópielas desde la instancia de origen a la ubicación de las instancias de destino en el sistema de archivos.
Más específicamente, debe hacer lo siguiente:
AEM Acceda a la instancia de la (normalmente una instancia de autor) que contiene el material clave que se va a copiar.
Busque el paquete com.adobe.granite.crypto.file en el sistema de archivos local. Por ejemplo, en esta ruta:
<author-aem-install-dir>/crx-quickstart/launchpad/felix/bundle21
El bundle.info
dentro de cada carpeta identifica el nombre del paquete.
Vaya a la carpeta de datos. Por ejemplo:
<author-aem-install-dir>/crx-quickstart/launchpad/felix/bundle21/data
Copie los archivos HMAC y maestro.
A continuación, vaya a la instancia de destino a la que desee duplicar la clave HMAC y vaya a la carpeta de datos. Por ejemplo:
<publish-aem-install-dir>/crx-quickstart/launchpad/felix/bundle21/data
Pegue los dos archivos que ha copiado anteriormente.
Actualizar el paquete de cifrado si la instancia de destino ya se está ejecutando.
Repita los pasos anteriores para todas las instancias en las que desee replicar la clave.
AEM Puede volver al método de almacenamiento anterior a la versión 6.3 añadiendo el siguiente parámetro al instalar por primera vez las claves de la siguiente manera:
-Dcom.adobe.granite.crypto.file.disable=true
AEM En la versión 6.2 y versiones anteriores de, las claves se almacenan en el repositorio de en la /etc/key
nodo.
La manera recomendada de replicar de forma segura las claves en las instancias es replicar solo este nodo. Puede replicar nodos selectivamente mediante el CRXDE Lite:
https://<serveraddress>:4502/crx/de/index.jsp
/etc/key
nodo.Adobe AEM recomienda realizar una prueba de penetración de la infraestructura de su infraestructura de antes de continuar con la producción.
Es fundamental que los nuevos desarrollos sigan el Prácticas recomendadas de seguridad AEM para garantizar que el entorno de su entorno de permanezca seguro.