Esta semana se difundió en los medios de comunicación una inquietante noticia informando de la detección en la noche del 7 al 8 de abril de una vulnerabilidad que permitiría a un atacante acceder a datos hasta ahora seguros de determinados servidores de Internet. Bautizada como Heartbleed, inmediatamente provocó una gran alarma hasta el punto de ser calificada por algunos como el fallo más terrible y grave de la historia de Internet, ante el temor de que se haya producido el saqueo masivo de datos sensibles de millones de usuarios.
Dados tan alarmantes extremos parece conveniente encuadrar el asunto en sus justos límites, lo cual trataré de hacer en los siguientes párrafos por medio de respuestas sencillas a las preguntas más habituales en casos como este: ¿de qué se trata?, ¿cómo funciona?, ¿a quién afecta o puede afectar? y ¿cómo protegerse?
Los autores del descubrimiento, un grupo de investigadores de la compañía finlandesa Codenomicon y un equipo de Google Security, informaron de la existencia de un bug, es decir un error de software, en el código de OpenSSL, un protocolo que se utiliza para cifrar el tráfico Web y asimismo para proteger los datos de los internautas que utilizan determinados servicios que demandan un cierto grado de seguridad.
La tecnología SSL (Secure Sockets Layer) en unión de la TLS (Transport Layer Security) constituye el núcleo de las transacciones seguras en Internet. Los servidores que la utilizan envían una clave de cifrado al dispositivo que se conecta a él para que ambos puedan conocer quiénes son y si pueden operar juntos de forma segura protegiendo los datos e información que transitan entre ellos.
Aunque parezca algo desconocido para un usuario inexperto su utilización es muy habitual y en múltiples ocasiones habremos podido comprobar su existencia por la simbología que la caracteriza, como puede ser el icono de un candado o la denominación de https:// que representa a los protocolos seguros de transferencia de hipertexto.
El código donde se ha descubierto el fallo, OpenSSL, es un paquete de cifrado de fuente abierta (como indica su nombre) muy utilizado al estar disponible para la mayoría de los sistemas operativos. El error aparece en una función (heartbeat) que permite mantener activa una conexión segura incluso cuando no haya transmisión de datos entre cliente y servidor, lo cual se consigue enviando periódicamente una petición (latido) que evita tener que restablecer la conexión asegurando que está permanentemente abierta.
Explotando el fallo, un atacante puede enviar un “latido” precisando que tiene un peso determinado (hasta 64 Kb), aunque sea inferior, y solicitando respuesta al servidor. Este, sin comprobar el tamaño, responderá enviando parte de los datos almacenados en su memoria por el total de dicha cantidad que, si bien no es muy elevada, equivale a un archivo de texto pequeño lo que puede suponer obtener información valiosa como contraseñas, datos de usuarios o claves de cifrado del tráfico del propio servidor, sin que quede rastro alguno.
Utilizando el nombre de la función que presenta la vulnerabilidad (heartbeat) los descubridores del bug crearon una alegoría para bautizarlo con el nombre de heartbleed o corazón sangrante.
Otra de las preguntas, a quien afecta o puede haber afectado, es más difícil de responder pues, si bien podría estimarse cuantos servidores pueden estar implicados, por el contrario será muy complicado precisar el número de usuarios dado que, como indiqué anteriormente, el fallo fue detectado a principios de esta semana pero su origen data de diciembre de 2011 cuando se actualizó el código del OpenSSL.
Se evalúa que más del 60% de los sitios Web están alojados en servidores basados en OpenSSL pero como el fallo solamente incluye a aquellos que mantengan versiones anteriores a la 1.0.1f, que data de marzo de 2012, el número de estos se reduce a aproximadamente al 18%, alcanzando según Netcraf una cifra aproximada de 500.000.
Pero el bug no solamente afecta a sitios de alojamiento Web. OpenSSL se utiliza también para proteger servidores de correo, mensajería instantánea, redes privadas virtuales, dispositivos de red y una amplia variedad de software cliente, por lo cual se cree que ha impactado en sitios tan populares como Twitter, Yahoo, la plataforma de microblogging Tumblr, la de distribución digital Steam (Linux) o el servicio de almacenamiento en la nube DropBox.
En España, aunque no se puede asegurar que haya habido robos de información, si se conoce que hay múltiples servidores expuestos al fallo, particularmente en algunos sectores reconocidos como estratégicos en la normativa y legislación de protección de infraestructuras críticas, como por ejemplo energía y finanzas, en particular algunos servicios bancarios on line según informaciones facilitadas por la Asociación de usuarios de bancos, cajas y seguros (ADICAE)
Respecto a los usuarios el número de estos que utilizan servidores y aplicaciones que se basan en OpenSSL alcanza cifras millonarias, pero como no todos los sitios mantienen las versiones mencionadas anteriormente y además el bug ha permanecido sin solución por más de dos años y los ataques no dejan ningún rastro, es prácticamente imposible hacer una estimación o una aproximación.
Finalmente: ¿cómo protegerse? Desde una perspectiva puramente técnica el fallo se puede reparar al menos parcialmente. Para cualquier servidor que utilice desde la versión 1.0.1 a la 1.0.1f de OpenSSL la mejor solución es actualizarlo con la versión corregida (1.0.1g) o bien hacer una compilación del código eliminando la función heartbeat.
Una vez corregido el fallo se debe comprobar si se han visto afectados por el bug los certificados digitales de seguridad de los servidores y en caso afirmativo solicitar su cambio a la Autoridad de certificación correspondiente. Asimismo debería procederse a cambiar todas las passwords que potencialmente pueden haberse visto afectadas.
La recomendación a los usuarios se resume en principio a esperar a que su proveedor de servicios comunique si se ha visto afectado, lo cual debería hacer, pero no es seguro que lo haga. Si se confirma, deben cambiarse todas las contraseñas, de cualquier tipo, siguiendo las normas establecidas, y mantener una vigilancia estricta de las diferentes cuentas para detectar cualquier transacción no habitual.
En caso de duda debería verificarse que los servidores que se utilizan normalmente no albergan el bug para lo cual pueden utilizarse algunas herramientas que se están proporcionando en sitios Web de confianza.
Además, en cualquier circunstancia, deben aplicarse las medidas de precaución habituales, tantas veces repetidas, pero escasamente implementadas, como por ejemplo no utilizar contraseñas débiles, cambiarlas de forma periódica, no responder a los email que solicitan renovar las passwords, no visitar sitios de dudosa o ninguna reputación, etc.
La aparición de Heartbleed ha puesto de manifiesto una vez más lo vulnerables que somos al utilizar los servicios que proporcionan las tecnologías digitales y la necesidad aplicar en toda su dimensión las estrategias, normativas, medidas y prácticas de ciberseguridad.
Algunos aprecian que no debería dar lugar a provocar una alarma social respecto al uso de Internet pues en este caso se ha producido un fallo menor. Este razonamiento se basa en la circunstancia de que, al no disponer de evaluaciones concretas de la potencial sustracción, se opina e informa con grandes dosis de subjetividad. Admitiendo la validez del argumento no debe menospreciarse el hecho pues se trata de una vulnerabilidad de los propios mecanismos de seguridad, que además ha tardado tiempo en corregirse y también en informar sobre ella, lo cual la convierte en un fallo critico para todos, incluso para quienes no se hayan visto afectados por él.