Vulnerabilidades SSL/TLS – Ataques POODLE / BEAST / SWEET32 y la muerte de SSLv3 + Aviso de Seguridad Open SSL

Este articulo describe ciertos problemas comunes relacionados con SSL / TLS y Open SSL, así como las vulnerabilidades a los ataques POODLE, BEAST y SWEET32.

Que son SSL (Secure Sockets Layer) y TLS (Transport Layer Security) ?

SSL y su sucesor TLS son protocoles de cifrado que proveen comunicaciones mas seguras sobre redes informáticas.

A continuación, se mencionan 6 protocoles de la familia SSL / TLS:
- SSLv2: prohibición de uso por la Internet Engineering Task Force (rfc6176)
- SSLv3: obsoleto - no suficientemente seguro (rfc7568)
- TLS1.0: considerado como no seguro (vulnerable al ataque BEAST). No debe ser utilizado mas. No es aceptado de por la norma PCI (junio 2018).
- TLS1.1: no tiene mas problemas de seguridad conocidos, pero no ofrece las características de cifrado modernas (rfc5246# sección 1.2)
- TLS1.2: no tiene mas problemas de seguridad conocidos y ofrece las características modernas de cifrado de tipo AEAD.
- TLS1.3: Desde agosto 2018, la Internet Engineering Task Force ha publicado TLS 1.3 que suprime las opciones problemáticas de las versiones previas de TLS y tienen instalados algoritmos sin vulnerabilidad conocida. Este debería ser el principal protocolo utilizado en la actualidad.


¿Que es una suite criptográfica (cypher suite)?

Una suite criptográfica es un conjunto de algoritmos utilizados por las sesiones SSL / TLS para proteger las conexiones de red entre el cliente y el servidor.

El conjunto de algoritmos que una suite criptográfica comprende en general es: un algoritmo de intercambio de clave, un algoritmo de cifrado masivo y un algoritmo de código de autenticación de mensaje (MAC, Message Authentication Code).

Ciertas suites criptográficas deben ser evitadas:
- RC4: ver CVE-2015-2808. Prohibición de Uso por la Internet Engineering Task Force (rfc7465)

- Bloque de cifrado de 64 bits cuando es usado en modo CBC:
DES CBC: ver CVE-2016-2183. Removido de TLS 1.2 (rfc5246)
IDEA CBC: considerado inseguro. Removido de TLS 1.2 (rfc5246)
3DES EDE CBC: ver CVE-2016-2183 (también conocido como ataque SWEET32).
RC2 CBC: considerado inseguro. Ver CVE-2016-2183.

- DH (Intercambio de llave Diffie–Hellman inférieur à 1024-bit) o suite de cifrado DHE_EXPORT: ver CVE-2015-4000
- Suite de cifrado RSA_EXPORT: ver CVE-2015-0204
- Suite de cifrado NULL desde que no proveen mas cifrado.


¿Que es OpenSSL ?

OpenSSL es una librería de licencias de herramientas de software bajo el estilo de licenciamiento Apache para implantaciones de los protocoles SSL y TLS.
La comunidad OpenSSL emite parches para arreglar vulnerabilidades identificadas.
Por ejemplo, CV-2014-3513 [Alta Severidad] https://www.openssl.org/news/secadv_20141015.txt
Asesoría de Seguridad de OpenSSL esta disponible en el siguiente enlace: https://www.openssl.org/news/vulnerabilities.html


Vulnerabilidad de ataque POODLE

El ataque POODLE (lo cual significa "Padding Oracle On Downgraded Legacy Encryption", CVE-2014-3566) es un “exploit” del tipo "ataque de intermediario" (MITM) que permite a un intruso, descifrar contenido selectivo dentro de la sesión SSL.

Variaciones de la vulnerabilidad afectan TLS porque un ataque activo MITM puede forzar al navegador a degradar la sesión a SSLv3, el cual puede ser atacado.


Vulnerabilidad de ataque BEAST

El ataque BEAST, reportado como CVE-2011-3389, aprovecha la debilidad en el modo de cifrado CBC (cipher-block chaining) de SSL/TLS, permitiendo a un atacante MITM recuperar cierta información de la sesión, tales como datos sobre “cookies” de lo que debería ser una conexión segura.


Vulnerabilidad de ataque SWEET32

El ataque “SWEET32” (asignado como CVE-2016-2183), aprovecha el ataque de colisión en el protocolo SSL/TLS que soporta las suites de cifrado que usan bloque de 64 bits para extraer texto plano de los datos cifrados, cuando es utilizado el modo de cifrado CBC.



¿Es mi servidor vulnerable a los ataques POODLE /SWEET32 / BEAST?

Acá presentamos una herramienta en línea para probar las distintas vulnerabilidades SSL/TLS de su sitio web, incluyendo POODLE:

https://www.ssllabs.com/ssltest/

Si su sito web es vulnerable, el reporte en línea le suministrara una lista detallada de vulnerabilidades SSL/TLS.

 

1.txt


Ud. puede listar las suites de cifrado soportadas por su servidor Web utilizando el siguiente comando como usuario root:

# nmap -Pn --script ssl-enum-ciphers -p 443 <IP-address>

Ejemplo de salida:

PORT STATE SERVICE
443/tcp open https
| ssl-enum-ciphers:
| SSLv3:
| ciphers:
| TLS_RSA_WITH_3DES_EDE_CBC_SHA (rsa 2048) - C
| TLS_RSA_WITH_RC4_128_SHA (rsa 2048) - C
| TLS_RSA_WITH_RC4_128_MD5 (rsa 2048) - C
| compressors:
| NULL
| cipher preference: server
| warnings:
| 64-bit block cipher 3DES vulnerable to SWEET32 attack
| Broken cipher RC4 is deprecated by RFC 7465
| CBC-mode cipher in SSLv3 (CVE-2014-3566)
| Ciphersuite uses MD5 for message integrity
| Weak certificate signature: SHA1
| TLSv1.0:
| ciphers:
| TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A
| TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A
| TLS_DHE_RSA_WITH_AES_256_CBC_SHA (dh 1024) - A
| TLS_DHE_RSA_WITH_AES_128_CBC_SHA (dh 1024) - A
| TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
| TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
| TLS_RSA_WITH_3DES_EDE_CBC_SHA (rsa 2048) - C
| TLS_RSA_WITH_RC4_128_SHA (rsa 2048) - C
| TLS_RSA_WITH_RC4_128_MD5 (rsa 2048) - C
| compressors:
| NULL
| cipher preference: server
| warnings:
| 64-bit block cipher 3DES vulnerable to SWEET32 attack
| Broken cipher RC4 is deprecated by RFC 7465
| Ciphersuite uses MD5 for message integrity
| Key exchange (dh 1024) of lower strength than certificate key
| Weak certificate signature: SHA1
| TLSv1.1:
| ciphers:
| TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A
| TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A
| TLS_DHE_RSA_WITH_AES_256_CBC_SHA (dh 1024) - A
| TLS_DHE_RSA_WITH_AES_128_CBC_SHA (dh 1024) - A
| TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
| TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
| TLS_RSA_WITH_3DES_EDE_CBC_SHA (rsa 2048) - C
| TLS_RSA_WITH_RC4_128_SHA (rsa 2048) - C
| TLS_RSA_WITH_RC4_128_MD5 (rsa 2048) - C
| compressors:
| NULL
| cipher preference: server
| warnings:
| 64-bit block cipher 3DES vulnerable to SWEET32 attack
| Broken cipher RC4 is deprecated by RFC 7465
| Ciphersuite uses MD5 for message integrity
| Key exchange (dh 1024) of lower strength than certificate key
| Weak certificate signature: SHA1
| TLSv1.2:
| ciphers:
| TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (secp256r1) - A
| TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (secp256r1) - A
| TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A
| TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A
| TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 (dh 1024) - A
| TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (dh 1024) - A
| TLS_DHE_RSA_WITH_AES_256_CBC_SHA (dh 1024) - A
| TLS_DHE_RSA_WITH_AES_128_CBC_SHA (dh 1024) - A
| TLS_RSA_WITH_3DES_EDE_CBC_SHA (rsa 2048) - C
| TLS_RSA_WITH_RC4_128_SHA (rsa 2048) - C
| TLS_RSA_WITH_RC4_128_MD5 (rsa 2048) - C
| compressors:
| NULL
| cipher preference: server
| warnings:
| 64-bit block cipher 3DES vulnerable to SWEET32 attack
| Broken cipher RC4 is deprecated by RFC 7465
| Ciphersuite uses MD5 for message integrity
| Key exchange (dh 1024) of lower strength than certificate key
| Weak certificate signature: SHA1
|_ least strength: C

 

Solución

Para proteger su servidor contra ataques POODLE/SWEET32/BEAST, SSLv3 y TLS1.0 deben estar deshabilitados, y la suite de cifrado utilizada por varios servicios (ejemplo: correo, web, etc.) deben estar configurados apropiadamente.

En primer lugar, Ud. deberia asegurarse que sus aplicaciones y sistema operativo (como servidor Web o panel de control) esten actualizados.

También deben ser realizadas pruebas adicionales que validen la seguridad de la versión OpenSSL utilizada en su servidor.

Asegurar su servidor contra vulnerabilidades SSL pudiera ocasionar problemas de compatibilidad con programas antiguos. Por ejemplo, luego de actualizar y asegurar su servidor, visitantes de su sitio web que usen versiones antiguas de Internet Explorer pudieran verse impedidos de ver su sitio web. Tome su tiempo para evaluar los impactos potenciales sobre sus usuarios antes de aplicar cambios.

Algunas maneras conocidas de hacer eso son:

1) Tener un segundo ambiente (ambiente de prueba, por ejemplo) que sea idéntico a su ambiente de producción y en el cual Ud. pueda probar los cambios de manera segura.

2) Planificar ventanas de mantenimiento, en las cuales Ud. pueda aplicar los cambios en su ambiente de producción y retirarlos en caso de presentarse algún problema.

En los siguientes artículos, podrá encontrar detalles técnicos para productos conocidos:

WHM/cPanel:
https://documentation.cpanel.net/display/CKB/How+to+Adjust+Cipher+Protocols

Plesk Windows:
https://support.plesk.com/hc/en-us/articles/115000157733-Is-it-possible-to-manage-SSL-TLS-ciphers-and-protocols-in-Plesk-for-Windows

Plesk Linux:
https://support.plesk.com/hc/en-us/articles/115000422229-How-to-enable-disable-particular-TLS-version-in-Plesk-on-Linux-
https://docs.plesk.com/en-US/onyx/advanced-administration-guide-linux/pci-dss-compliance/tune-plesk-to-meet-pci-dss-on-linux.65871/

Microsoft Windows Server:
https://docs.microsoft.com/en-us/windows-server/security/tls/tls-registry-settings
ADFS: https://docs.microsoft.com/en-us/windows-server/identity/ad-fs/operations/manage-ssl-protocols-in-ad-fs

VMware:
https://kb.vmware.com/s/article/2147469

Mas productos (tal como Lighttpd, Nginx, NodeJS, HAProxy etc.):
http://disablessl3.com/


Referencias externas:

https://www.openssl.org/~bodo/ssl-poodle.pdf
https://www.us-cert.gov/ncas/alerts/TA14-290A
https://www.gracefulsecurity.com/tls-ssl-vulnerabilities/
https://blog.cloudflare.com/padding-oracles-and-the-decline-of-cbc-mode-ciphersuites/
https://blog.cloudflare.com/yet-another-padding-oracle-in-openssl-cbc-ciphersuites/
https://github.com/ssllabs/research/wiki/SSL-and-TLS-Deployment-Best-Practices (https://www.ssllabs.com/projects/best-practices/)
https://blog.pcisecuritystandards.org/are-you-ready-for-30-june-2018-sayin-goodbye-to-ssl-early-tls
https://msdn.microsoft.com/en-gb/library/windows/desktop/aa374757(v=vs.85).aspx
https://blogs.vmware.com/security/2014/10/cve-2014-3566-aka-poodle.html
http://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-52r1.pdf
https://www.ietf.org/blog/tls13/

¿Tiene más preguntas? Enviar una solicitud

0 Comentarios

El artículo está cerrado para comentarios.
Tecnología de Zendesk