AEM Mitigación de problemas de serialización en la mitigating-serialization-issues-in-aem

Información general overview

AEM El equipo del Adobe trabajó estrechamente con el proyecto de código abierto NotSoSerial para ayudar a mitigar las vulnerabilidades descritas en CVE-2015-7501. NotSoSerial tiene licencia bajo el Licencia de Apache 2 e incluye código ASM con licencia propia Licencia similar a BSD.

El JAR del agente incluido con este paquete es la distribución modificada de NotSoSerial por parte de Adobe.

AEM NotSoSerial es una solución de nivel Java™ para un problema de nivel Java™ y no es específica de la aplicación de la aplicación de forma específica de la aplicación de la aplicación de la aplicación de la aplicación de la plataforma de datos de la plataforma de datos de la plataforma de datos de la red. Agrega una comprobación preliminar a un intento de deserializar un objeto. Esta comprobación comprueba el nombre de una clase comparándolo con una lista de permitidos de estilo cortafuegos, una lista de bloqueados o ambas. Debido al número limitado de clases en la lista de bloqueados predeterminada, es poco probable que esta prueba afecte al sistema o al código.

De forma predeterminada, el agente realiza una comprobación de lista de bloqueados frente a las clases vulnerables conocidas actuales. Esta lista de bloqueados pretende protegerle de la lista actual de vulnerabilidades que utilizan este tipo de vulnerabilidad.

La lista de bloqueados y la lista de permitidos se pueden configurar siguiendo las instrucciones de la Configuración del agente de este artículo.

El agente está diseñado para ayudar a mitigar las últimas clases vulnerables conocidas. Si el proyecto está deserializando datos que no son de confianza, puede seguir siendo vulnerable a ataques de denegación de servicio, ataques de falta de memoria y ataques de deserialización futuros desconocidos.

Adobe es compatible oficialmente con Java™ 6, 7 y 8. Sin embargo, Adobe entiende que NotSoSerial también admite Java™ 5.

Instalación del agente installing-the-agent

NOTE
AEM Si ya ha instalado la revisión de serialización para la versión 6.1 de, quite los comandos de inicio del agente de la línea de ejecución de Java™.
  1. Instale el com.adobe.cq.cq-serialization-tester paquete.

  2. Vaya a la consola web del paquete en https://server:port/system/console/bundles

  3. Busque el paquete de serialización e inícielo. Al hacerlo, se carga automáticamente el agente NotSoSerial.

Instalación del agente en servidores de aplicaciones installing-the-agent-on-application-servers

AEM El agente NotSoSerial no se incluye en la distribución estándar de los recursos para servidores de aplicaciones de la red de distribución de la interfaz de usuario de la aplicación de la red de distribución de la red. AEM Sin embargo, puede extraerlo de la distribución jar de la y utilizarlo con la configuración del servidor de aplicaciones:

  1. AEM En primer lugar, descargue el archivo de inicio rápido de la y extráigalo:

    code language-shell
    java -jar aem-quickstart-6.2.0.jar -unpack
    
  2. AEM Vaya a la ubicación del inicio rápido de la aplicación recién descomprimida y copie la variable crx-quickstart/opt/notsoserial/ a la carpeta crx-quickstart AEM carpeta de la instalación del servidor de aplicaciones de.

  3. Cambiar la propiedad de /opt al usuario que ejecuta el servidor:

    code language-shell
    chown -R opt <user running the server>
    
  4. Configure y compruebe que el agente se ha activado correctamente, tal y como se muestra en las siguientes secciones de este artículo.

Configuración del agente configuring-the-agent

La configuración predeterminada es adecuada para la mayoría de las instalaciones. Esta configuración incluye una lista de bloqueados de clases vulnerables conocidas de ejecución remota y una lista de permitidos de paquetes en los que la deserialización de datos de confianza es segura.

La configuración del cortafuegos es dinámica y se puede cambiar en cualquier momento mediante:

  1. Vaya a la consola web en https://server:port/system/console/configMgr

  2. Buscar y hacer clic en Configuración del firewall de deserialización.

    note note
    NOTE
    También puede acceder a la página de configuración directamente accediendo a la dirección URL en:
    • https://server:port/system/console/configMgr/com.adobe.cq.deserfw.impl.DeserializationFirewallImpl

Esta configuración contiene los registros de lista de permitidos, lista de bloqueados y deserialización.

Permitir listado

En la sección de lista de permitidos, estos listados son clases o prefijos de paquete que se permiten para la deserialización. Si está deserializando clases propias, agregue las clases o paquetes a esta lista de permitidos.

Bloquear lista

En la sección de lista de bloques hay clases que nunca se permiten para la deserialización. El conjunto inicial de estas clases se limita a las clases que se han encontrado vulnerables a ataques de ejecución remota. La lista de bloqueados se aplica antes de las entradas de la lista de permitidos.

Registro de diagnóstico

En la sección para el registro de diagnóstico, puede elegir varias opciones para registrar cuando se produce la deserialización. Estas opciones solo se registran la primera vez que se utiliza y no se registran de nuevo en los usos posteriores.

El valor predeterminado de class-name-only informa de las clases que se están deserializando.

También puede establecer el de pila completa opción que registra una pila Java™ del primer intento de deserialización para informarle dónde se está realizando la deserialización. Esta opción resulta útil para buscar y quitar la deserialización de su uso.

Verificación de la activación del agente verifying-the-agent-s-activation

Puede verificar la configuración del agente de deserialización navegando hasta la URL en:

  • https://server:port/system/console/healthcheck?tags=deserialization

Después de acceder a la dirección URL, se muestra una lista de comprobaciones de estado relacionadas con el agente. Puede determinar si el agente está correctamente activado comprobando que las comprobaciones de estado son correctas. Si están fallando, debe cargar el agente manualmente.

Para obtener más información sobre la resolución de problemas con el agente, consulte Gestión De Errores Con La Carga Del Agente Dinámico más abajo.

NOTE
Si añade org.apache.commons.collections.functors en la lista de permitidos, la comprobación de estado siempre falla.

Gestión de errores al cargar el agente dinámico handling-errors-with-dynamic-agent-loading

Si se exponen errores en el registro o los pasos de verificación detectan un problema al cargar el agente, cargue el agente manualmente. Este flujo de trabajo también se recomienda si utiliza un JRE (entorno de tiempo de ejecución de Java™) en lugar de un JDK (kit de herramientas de desarrollo de Java™), ya que las herramientas para la carga dinámica no están disponibles.

Para cargar el agente manualmente, haga lo siguiente:

  1. Edite los parámetros de inicio de JVM del JAR de CQ y añada la siguiente opción:

    code language-shell
    -javaagent:<aem-installation-folder>/crx-quickstart/opt/notsoserial/notsoserial.jar
    
    note note
    NOTE
    AEM Requiere que también use la opción -nofork CQ/, junto con la configuración de memoria JVM adecuada, ya que el agente no está habilitado en una JVM ramificada.
    note note
    NOTE
    La distribución de Adobe del JAR del agente NotSoSerial se encuentra en el crx-quickstart/opt/notsoserial/ AEM carpeta de la instalación de la.
  2. Detenga y reinicie JVM;

  3. Vuelva a comprobar la activación del agente siguiendo los pasos descritos anteriormente en Verificación de la activación del agente.

Otras consideraciones other-considerations

Si está ejecutando una JVM de IBM®, consulte la documentación sobre la compatibilidad con la API de Java™ Attach en esta ubicación.

recommendation-more-help
19ffd973-7af2-44d0-84b5-d547b0dffee2