Errores comunes en servidores TLS/SSL

viernes, 23 de enero de 2015

TLS/SSL, como una capa de seguridad imprescindible, se va extendido en los servicios de las organizaciones tales como servidores web, de intercambio de archivos, etcétera… Aunque pensada para reforzar la seguridad, debe ser auditada para que su objetivo se cumpla correctamente. En este artículo, nos proponemos explicar brevemente algunas de las incidencias de seguridad que se pueden encontrar en los certificados X509 y servidores SSL/TLS, porque es la combinación de ambas entidades y su correcta configuración, la que puede asegurar una conexión fiable y segura.

Certificado

Uno de los agentes fundamentales en la comunicación SSL es el certificado. Con él, el servidor (o cliente) se identifican. Es la forma más extendida de saber que se está conectando al servidor que se pretende cuando se negocia la conexión, y no a un impostor redirigido desde una comunicación interceptada. Dados los últimos problemas con la emisión de certificados, se ha optado por casi "estandarizar" una práctica conocida como "certificate pinning", de la que ya hemos hablado, y que se basa en recordar el certificado que debe tener un sitio, y desconfiar si ha sido modificado. Esta capa extra ayuda a evitar las conexiones con terceros que intenten suplantar al servidor. El certificado contiene información de la que se pueden extraer múltiples datos importantes, como nombres de dominios de la organización, nombres de personas físicas o direcciones... Para que un certificado sea "robusto", la configuración y valores elegidos a la hora de crearlo son importantes. Hay que tener en cuenta factores como:

  • El algoritmo de firma digital.
  • La longitud de la clave.
  • Los dominios en los que el certificado es válido.
  • Las fechas de creación y expiración del certificado.
  • La cadena de confianza del certificado.
  • ... 
Los navegadores en este sentido comienzan a rechazar certificados creados de forma poco robusta criptográficamente, sin olvidar, obviamente, la cadena de certificación que obliga a que el navegador o el sistema operativo confíe en las raíces. En caso de que el certificado no cumpla con los requisitos adecuados, el navegador del usuario mostrará una alerta de conexión no confiable. Por ejemplo esta:

Conexión no confiable en Chrome


Esta alerta puede ser generada por distintos motivos: certificados emitidos para otros dominios, falta de confianza, certificados caducados... En el caso de grandes compañías, mantener todos los certificados de centenares de servidores puede resultar complejo. En Faast se han tenido en cuenta estas debilidades que deben ser valoradas y tenidas en cuenta por las organizaciones, porque podrían derivar en un agujero de seguridad.

Evidencia de una recomendación de Faast sobre un servidor SSL

Aunque el certificado se encuentre correctamente configurado y sin problemas de seguridad, la configuración implementada en el servidor TLS/SSL puede dar lugar a que los usuarios no se encuentren correctamente protegidos. Uno de los puntos más importantes es la implementación de protocolos.

Desde hace tiempo SSL2 es considerado inseguro y no se recomienda su uso. En 2014, y desde las vulnerabilidades "Poodle" en SSL3, (CVE-2014-3566/CVE-2014-8730), este se ha unido a la lista de protocolos que se recomienda deshabilitar. La recomendación hoy por hoy es utilizar los protocolos más recientes como TLS 1.2 y habilitar la extensión de TLS_FALLBACK_SCSV para evitar que los atacantes fuercen protocolos más antiguos. Quizás no todos los clientes sean compatibles, pero cada vez representan una minoría más escasa. Los cifrados implementados por el servidor también son clave. Algoritmos considerados obsoletos o con vulnerabilidades de diseño, pueden llegar a permitir que la comunicación sea descifrada. Recientemente, se han encontrado varias vulnerabilidades graves en este sentido.

Finalmente, aunque se encuentre bien configurado, es necesario actualizar el servidor SSL para evitar vulnerabilidades. OpenSSL ha sufrido graves problemas en su código en los últimos tiempos: CVE-2014-0224 más comúnmente conocida como OpenSSL CCS (ChangeCiphersSpec) que afecta a múltiples versiones de OpenSSL y que permitía forzar un cambio de cifrado y permitir así un ataque de tipo Man In The Middle; o la conocida HeartBleed.

Todas estas vulnerabilidades y recomendaciones de seguridad que pueden afectar a la comunicación SSL/TLS, son analizadas por Faast durante un escaneo al activar los plugins relacionados con el análisis de certificados y análisis de servidores SSL. Así, todos los dominios de la organización encontrados durante la fase de descubrimiento que posean un servicio SSL serán analizados de forma automática y se podrá tener un mejor control de los servidores que necesitan mejorar su seguridad.

Oscar Sánchez
oscar.sanchez@11paths.com

2 comentarios:

  1. Artículo necesario y muy fácil de entender.

    Lo único creo que hay algo mal en esta frase:

    "Esta alerta puede ser generada por distintos motivos: dominios emitidos para otros certificados, falta de confianza, dominios caducados..."

    Yo creo que lo que querías decir era esto:

    Esta alerta puede ser generada por distintos motivos: CERTIFICADOS emitidos para otros DOMINIOS, falta de confianza, CERTIFICADOS caducados...

    Un saludo!

    ResponderEliminar
  2. Pues es cierto, queríamos decir justamente eso. Corregido. Gracias y perdonad el error.

    ResponderEliminar