¿La vulnerabilidad de HeartBleed afecta a los servidores Apache Tomcat que usan Tomcat Native?

13

¿Los servidores Apache Tomcat utilizan Tomcat Native & APR vulnerable al error HeartBleed OpenSSL, ¿o esta capa los aísla? enlace

Información de error de HeartBleed OpenSSL: enlace

En mi servidor Apache Tomcat, tengo:

  • Una versión vulnerable de OpenSSL
  • APR construido e instalado
  • Tomcat Native construido e instalado usando --with-apr y --with-ssl
  • Tomcat está manejando las solicitudes directamente. Un conector en el puerto 443 está configurado con los atributos SSLEnabled, SSLProtocol, SSLCipherSuite, SSLCertificateFile, SSLCertificateKeyFile, SSLCertificateChainFile
    • SSLProtocol="- ALL + SSLv3 + TLSv1"
    • SSLCipherSuite="ALL:! aNULL:! eNULL:! ADH: RC4 + RSA: + HIGH: + MEDIUM:! LOW:! SSLv2:! EXPORT"

Preguntas :

  • ¿Las versiones de Tomcat, APR o Tomcat Native tienen algún efecto sobre la vulnerabilidad?
  • ¿Los valores de SSLProtocol o SSLCipherSuite afectan la vulnerabilidad?
pregunta Arlo 08.04.2014 - 18:41
fuente

4 respuestas

11

Según el documento al que se haya vinculado, el conector APR

  
  • Utiliza OpenSSL para capacidades TLS / SSL (si es compatible con la biblioteca APR vinculada)
  •   

Por lo tanto, sería razonable suponer que la Biblioteca nativa de Tomcat sería vulnerable al error Heartbleed. Sin embargo, las condiciones son diferentes, porque Tomcat está escrito en Java, y Java tiene su propio sistema de asignación (el famoso recolector de basura) que obtiene la memoria del sistema operativo mediante enormes bloques, aparte de las zonas donde OpenSSL obtiene sus bloques. p>

Por lo tanto, es poco probable que la saturación del búfer del corazón revele información secreta que exista como objeto basado en Java. Sin embargo, puede obtener información que se asigna del mismo montón que donde OpenSSL obtiene sus propios buffers. En particular, es posible que la vulnerabilidad pueda revelar una parte o la totalidad de la clave privada utilizada por OpenSSL.

    
respondido por el Thomas Pornin 08.04.2014 - 19:55
fuente
5

Tengo un servidor tomcat 7.0.29 en Windows que se muestra como vulnerable en los escaneos de corazón de Qualys. Está utilizando APR con esta configuración de conector en server.xml:

Connector protocol="org.apache.coyote.http11.Http11AprProtocol"
URIEncoding="UTF-8"
port="443" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
SSLCertificateFile="${catalina.base}/conf/ssl/XXXX.cer" 
SSLCertificateKeyFile="${catalina.base}/conf/ssl/XXXX.key"
SSLCertificateChainFile="${catalina.base}/conf/ssl/XXXX.cer"
SSLPassword="XXXX"
clientAuth="optional" 
SSLProtocol="ALL" 
SSLCipherSuite="ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:!SSLv2:RC4+RSA"

Brian

    
respondido por el Brian O'Nolan 09.04.2014 - 18:27
fuente
1

Aquí hay un enlace a tcnative-1.1.29 que cumplen los binarios de Windows Contra apr-1.5.0, openssl-1.0.1g. Esto se cumple contra VC 2008, por lo que necesitará Microsoft Visual C ++ 2008 Redistributable para Windows 2003 o XP. Los archivos de Juan Calero no incluían win32 y se cumplieron en contra de VC 2010. Uno u otro podría servirle mejor a sus propuestas. Solo debes detener Tomcat, reemplazar tcnative-1.dll y luego iniciar Tomcat.

    
respondido por el user44127 10.04.2014 - 19:58
fuente
1

Creo que Tomcat no es vulnerable a tener un corazón fuera de la caja.

Sí, la biblioteca APR está vinculada y SSLEngine está activada.

<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />

Pero si observa el archivo de configuración server.xml de una implementación predeterminada de Tomcat, su conector SSL usa JSSE, no la biblioteca APR.

<!-- Define a SSL HTTP/1.1 Connector on port 8443
     This connector uses the BIO implementation that requires the JSSE
     style configuration. When using the APR/native implementation, the
     OpenSSL style configuration is required as described in the APR/native
     documentation -->
<!--
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
           maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
           clientAuth="false" sslProtocol="TLS" />
-->

Por lo tanto, no debería ser explotable a través de Heartbleed. A menos que haya cambiado manualmente el conector SSL para usar APR, creo que es seguro decir que no es vulnerable.

Hablando de eso, ¿sabes de algún probador fuera de línea para Heartbleed?

enlace

Saludos,

Alex L.

    
respondido por el Alex 11.04.2014 - 08:02
fuente

Lea otras preguntas en las etiquetas