SSL (Secure Sockets Layer) es el sistema encargado de la seguridad en las transacciones que se hacen normalmente por Internet. SSL se utiliza para garantizar la seguridad de la información que se envía e intercambia por Internet creando un canal de comunicaciones cifrado y seguro entre dos equipos, cliente y servidor. Y TLS (Transport Layer Security) es el sucesor de SSL, es decir, SSL versión 3.1. SSL/TLS se utiliza, por ejemplo, para conectar con la página Web de la entidad bancaria de turno, para leer el correo electrónico de Gmail o Yahoo, para acceder a Paypal, Amazon, etc.
SSL/TLS está soportado por todos los navegadores y se ha convertido en el estándar para todo lo referido a comercio electrónico y transacciones por redes informáticas pero, aún así, existen diferentes alternativas como pueden ser PCT (desarrollado por Microsoft), S-HTTP que está ya en desuso, o TLS versión 1.1 que, actualmente, sólo está implementado en los navegadores Opera e Internet Explorer 9.

Recientemente, se han encontrado varias vulnerabilidades críticas en la definición de SSL/TLS. La más importante de ellas, descubierta por Thai Duong y Juliano Rizzo, permite descifrar los datos que se intercambian entre un servidor Web y el equipo del usuario con el que se está navegando por Internet. Dicha vulnerabilidad afecta a los navegadores con las versiones 1.0 y anteriores de TLS, es decir, a todos los navegadores Web. Por otro lado, la gente de THC (The Hacker's Choice) publicó también a finales de octubre su herramienta THC-SSL-DOS, compatible con sistemas Windows y Linux para, aprovechando otra vulnerabilidad, provocar una Denegación de Servicio (DoS) en el servidor Web que utilice SSL/TLS.
La vulnerabilidad utilizada por THC en su herramienta se basa en dos aspectos principales:
1. En una transacción con SSL/TLS, el servidor Web soporta aproximadamente 15 veces más de carga de trabajo que el cliente, ya que se necesita más capacidad de procesamiento y recursos de los que en la actualidad se pueden encontrar en una estación de trabajo típica de un usuario.
2. El servidor Web analizado debe soportar renegociación SSL para que en una misma conexión se puedan realizar varias peticiones para renegociar esa misma conexión TCP y conseguir que el servidor eleve su carga de trabajo hasta saturarse y provocar así un DoS. Con una simple ADSL, se pueden tumbar servidores Web de manera fácil y relativamente rápida.
Por ambas vulnerabilidades, y alguna otra, cada vez resulta más indispensable configurar correctamente SSL/TLS en el servidor Web y mitigar y corregir posibles vulnerabilidades existentes. Una herramienta como sslyze resulta muy recomendable: escrita en Python, y funcionando en sistemas Windows y Linux, verifica el correcto funcionamiento de la configuración SSL/TLS de un servidor. Sslyze es capaz de encontrar versiones obsoletas de SSL/TLS, diversos errores de configuración, sistemas de cifrado débiles en la cadena de negociación, además de verificar si el servidor es susceptible de ser vulnerable o no al uso de la herramienta de THC, etc.
La instalación de sslyze es muy sencilla, únicamente se precisa un intérprete del lenguaje Python y OpenSSL. A modo de ejemplo, a continuación se revisa la configuración de diferentes servidores Web públicos que utilizan SSL/TLS, donde destaca poderosamente el hecho de que muchas de las diferentes entidades bancarias revisadas todavía son, aparentemente, vulnerables contra el ataque de Denegación de Servicio que explota la herramienta de THC.
El uso de sslyze es también muy fácil, con la opción “regular” se revisa la configuración completa del servidor Web, con “reneg” se comprueba el servidor contra la vulnerabilidad de DoS, con el parámetro "resum_rate" se busca balanceadores de carga, etc. Por ejemplo, para analizar la configuración SSL/TLS de Gmail.com, el comando a utilizar sería:
c:\python sslyze.py --regular www.gmail.com:443
REGISTERING AVAILABLE PLUGINS
-----------------------------
PluginCertInfo - OK
PluginOpenSSLCipherSuites - OK
PluginSessionRenegotiation - OK
PluginSessionResumption - OK
CHECKING HOST(S) AVAILABILITY
-----------------------------
www.gmail.com:443 => 173.194.34.23:443
SCAN RESULTS FOR WWW.GMAIL.COM:443 - 173.194.34.23:443
------------------------------------------------------
* Certificate :
Validation w/ Mozilla's CA Store: Certificate is Trusted
Subject CN: mail.google.com
Issuer: /C=ZA/O=Thawte Consulting (Pty) Ltd./CN=Thawte SGC CA
Serial Number: 2B9F7EE5CA25A62514204782753A9BB9
Not before: Oct 26 00:00:00 2011 GMT
Not after: Sep 30 23:59:59 2013 GMT
Keysize: 1024 bits
Signature Algorithm: sha1WithRSAEncryption
Version: 3 (0x2)
SHA1 Fingerprint: 592978A72A9061F70AD7C44C4D449DCF258CD534
Number of Extensions: 4
* Session Renegotiation :
Client-initiated Renegotiations: Rejected
Secure Renegotiation: Supported
* Session Resumption :
Using TLSv1 Session Tickets: Supported
Using SSLv3 Session IDs: Supported
Using TLSv1 Session IDs: Supported
* SSLV2 Cipher Suites :
Cipher Suite: SSL Handshake: HTTP GET:
RC4-MD5 Rejected - TCP FIN N/A
RC2-CBC-MD5 Rejected - TCP FIN N/A
IDEA-CBC-MD5 Rejected - TCP FIN N/A
...
DES-CBC3-MD5 Rejected - TCP FIN N/A
* SSLV3 Cipher Suites :
Cipher Suite: SSL Handshake: HTTP GET:
ECDHE-RSA-RC4-SHA 128bits Preferred 301 Moved Permanently
RC4-SHA 128bits Accepted 301 Moved Permanently
RC4-MD5 128bits Accepted 301 Moved Permanently
…
PSK-AES128-CBC-SHA Failed - SSL No ciphers avail N/A
PSK-3DES-EDE-CBC-SHA Failed - SSL No ciphers avail N/A
* TLSV1 Cipher Suites :
Cipher Suite: SSL Handshake: HTTP GET:
ECDHE-RSA-RC4-SHA 128bits Preferred 301 Moved Permanently
RC4-SHA 128bits Accepted 301 Moved Permanently
RC4-MD5 128bits Accepted 301 Moved Permanently
…
PSK-3DES-EDE-CBC-SHA Failed - SSL No ciphers avail N/A
SCAN COMPLETED IN 4.51 S
------------------------Otro ejemplo de uso de sslyze ha consistido en comprobar diferentes servidores de banca electrónica de entidades bancarias ante la vulnerabilidad de DoS, opción "reneg". Aparentemente, la mayoría de los servidores parecen vulnerables y no están configurados para rechazar renegocaciones de un determinado cliente. De todas formas, es muy probable que detrás de dichos servidores analizados se encuentre algún firewall de aplicación (WAF), balanceadores de carga e, incluso, aceleradores SSL y por ello el impacto de la vulnerabilidad se reduce considerablemente.
a) BANKIA: vulnerable
...
SCAN RESULTS FOR WWW.BANKIA.ES:443 - 213.164.164.171:443
--------------------------------------------------------
* Session Renegotiation :
Client-initiated Renegotiations: Honored
Secure Renegotiation: Not Supported
...
b) Banco Santander: vulnerable
...
SCAN RESULTS FOR WWW.BANCOSANTANDER.ES:443 - 92.122.20.113:443
--------------------------------------------------------------
* Session Renegotiation :
Client-initiated Renegotiations: Honored
Secure Renegotiation: Supported
...
c) Banesto: vulnerable
...
SCAN RESULTS FOR WWW.BANESTO.ES:443 - 80.67.91.92:443
-----------------------------------------------------
* Session Renegotiation :
Client-initiated Renegotiations: Honored
Secure Renegotiation: Supported
...
d) CatalunyaCaixa: vulnerable
...
SCAN RESULTS FOR WWW.CATALUNYACAIXA.COM:443 - 194.179.109.104:443
-----------------------------------------------------------------
* Session Renegotiation :
Client-initiated Renegotiations: Honored
Secure Renegotiation: Supported
...
e) Novagalicia Banco: vulnerable
...
SCAN RESULTS FOR BANCAELECTRONICA.NOVAGALICIABANCO.ES:443 - 91.116.134.37:443
-----------------------------------------------------------------------------
* Session Renegotiation :
Client-initiated Renegotiations: Honored
Secure Renegotiation: Not Supported
...
f) Banco Popular: no vulnerable
...
SCAN RESULTS FOR WWW2.BANCOPOPULAR.ES:443 - 85.62.140.72:443
------------------------------------------------------------
* Session Renegotiation :
Client-initiated Renegotiations: Rejected
Secure Renegotiation: Not Supported
...
g) Unnim: vulnerable
...
SCAN RESULTS FOR WWW.UNNIM.ES:443 - 195.77.45.5:443
---------------------------------------------------
* Session Renegotiation :
Client-initiated Renegotiations: Honored
Secure Renegotiation: Not Supported
...
h) La Caixa: vulnerable
...
SCAN RESULTS FOR PORTAL.LACAIXA.ES:443 - 2.20.202.235:443
---------------------------------------------------
* Session Renegotiation :
Client-initiated Renegotiations: Honored
Secure Renegotiation: Not Supported
...
Más información en:
http://vincent.bernat.im/en/blog/2011-ssl-dos-mitigation.html
Página principal de la herramienta de THC: http://www.thc.org/thc-ssl-dos/
Noticia de la vulnerabilidad encontrada que permite descifrar el tráfico SSL: http://www.theregister.co.uk/2011/09/19/beast_exploits_paypal_ssl/
Página principal de la herramienta sslyze: http://code.google.com/p/sslyze/
Otra herramienta similar a sslyze es TLSSLed v1.2: http://blog.taddong.com/2011/10/tlssled-v12.html


Comentarios
Los dos primeros puntos, considerados vulnerabilidades...??? Vamos mal...
Muy interesante la herramienta esta, no la conocía. Acabo de probar contra los bancos de ING (ing.ingdirect.es) y Bankinter (www.bankinter.com) y no son vulnerables.
Añadir comentario