Captura de pantalla 2014-04-09 a la(s) 20.12.30

La que se ha montado hoy por un bug. Si hombre, un bug que le han puesto un nombre rimbombante debido a lo que se refiere.

La desinformación que ha salido hoy en las noticias de la televisión ha sido tal que más que informar esta creando un panico del copon. Y si esto unimos los esparcidores de mierda, que traducen mal el origen o, como este esta en ingles, hacen unos bolos de lo que leen por ahí sumando a lo que han oido en el metro y una piza de lo repetido en TV tenemos montado un bollo muy grande.

Ante todo, primero indicar que es un simple bug, «peligroso» hasta cierto punto ya que, realmente, lo que permite es leer sin restricción una cantidad de kb de una llamada a un servicio que use OpenSSL.

En palabras más sencillas, OpenSSL es una librería que se usa para comunicaciones seguras y cifradas. Se usa para varias cosas, desde cuando abrís una pagina web segura (incluido algún que otro servicio web) hasta cuando os conectáis por SSH a un equipo. Pero la gente solo ha puesto el grito en el cielo, parece ser por las webs sin entender que hay más servicios relacionados.

Ahora que estais nerviosos ya que parece que hasta las cajas de leche usan SSL, vamos a rebajar el nivel de nerviosismo.

Captura de pantalla 2014-04-09 a la(s) 20.48.26

El bug afecta a una versión concreta (bueno un rango) muy pequeños de la OpenSSL. Es decir, que quien no tenga instalado en su servidor OpenSSL 1.0.1 esta afectado salvo la versión g. Es decir, que es un rango muy pequeño.

Y aun siendo muy pequeño (el rango con esa versión), mucha gente lo tiene instalado sin la extensión problemática. Porque, amigos, el problema no es del servicio en concreto sino de aquellos que han instalado una «extensión» llamada heartbread (de ahí el nombre del bug).

Vamos, que tirando de números, no llega ni al 18% de los equipos que tienen instalado OpenSSL y que puedan ser rastreables.

¿Y como se rastrean esos equipos?. Pues principalmente son aquellos que tienen un servidor web, y que ademas, usan SSL para las comunicaciones, vamos que van con «HTTPS».

¿Y como se puede solucionar?. Sencillo. Primero revisad (si eres el administrador o root de la maquina que tiene un servicio que usa OpenSSL) que versión tienes instalada. Para ello:

openssl version

Esto os escupirá la versión de OpenSSL que tenéis instalada.

Si tenéis la versión 1.0.1a-f (de la a a la f) aun no tenéis que preocuparos. Pensad si tenéis algún servicio que este usando comunicaciones TSL, vamos que use SSL. Si no lo tenéis, no os tenéis que poner en modo pánico ya que no os afecta, pero si es conveniente que lo corrijáis.

Si tenéis equipos con OSX como servidores, estad tranquilos ya que Apple es un poco lenta en la adopción de estas cosas y todos usamos la versión 0.9.8y desde hace muchos años sin previsión (a no ser que hayáis hecho un port y/o os lo hayáis compilado a mano) de que se actualice en breve.

Si lo usáis y estáis afectados, simplemente, actualizad vuestra versión. ¿Como? pues como seguro que habéis tirado por la via de en medio y lo habéis instalado vía vuestro gestor de paquetes favorito, tenéis que saber que en la mayoría de las distribuciones han puesto por defecto la versión 1.0.1g que no esta afectada.

Vamos, vía vuestro amigo yum, apt-get o lo que narices use vuestra distribución, actualizaros. Y aprended a estar actualizados siempre con estas cosas ya que aunque lo nuevo trae nuevos bugs, se corrigen los viejos.

Si, por desgracia, vuestras aplicaciones necesitan por fuerza, por el ecosistema usar una versión de las que estan afectadas (y por lo tanto, chico listo, lo has compilado a piñon -mi enhorabuena, porque asi es como se trabaja-) siempre podeis recompilarlo con la opción que elimina «el extra» heartbread.

-DOPENSSL_NO_HEARTBEATS

Le quitáis este feature y en los 3 minutos que tarda en compilarse e instalarse estará solucionado. Eso sí, recordad, si lo usáis con otro servicio, es decir, si tenéis otro servicio que depende del OpenSSL de reiniciarle para que coja la nueva versión.

¿Y como ha pasado esto?. Pues sencillo, como he indicado antes los administradores de sistemas (incluido tu, so vago) son unos vagos que tiran de repositorios de paquetes donde esta ya compilado con tal de no hacer algo que muchos tenemos el culo pelado: compilar las cosas.

Cuando compilas, lo dejas «mas fino» para tus necesidades (y señores, el extra del heartbread) no hace mucha falta para muchos de los servicios, ya que es una especie de hamereo o reintento o descriptor que indica que no cierre la conexión, un keep alive ya que las comunicaciones por SSL tienen lo que se llama una terminación SSL y esto es un parche para «no cerrar» la conexión (que por cierto, no había explicado antes que es). Por eso se llama «latido».

Y no solo lo dejas más fino, sino que sueles estar más atento a actualizaciones o mejoras.

Recordad, nunca una cosa que sirve para todos, realmente sirve bien para todos, ya que se hace a máximos.

Resumiendo: No os preocupeis tanto, que aunque un bug grave, no es un bug importante ni que haya sido muy explotado. No os emparanoies con «cambiar ahora corriendo las contraseñas» si no tenéis la sana costumbre de cambiarlas cada cierto tiempo y esperad a que el sitio web, tras comprobar que esta afectado y que lo ha solucionado (porque cambiarla si no lo ha solucionado es tonteria) os avise.

Y si eres un administrador de sistemas. Chico, revisalo, que no cuesta nada y estate actualizado. Pero sobre todo, recuerda, que si un servicio es fundamental, compilalo tu mismo y ajustalo, que no cuesta nada y quedas muy bien, ademas de que es por eso por lo que te pagan.

Link: CVE
Vía: Blogs asustadizos


Actualización del 11 de abril de 2014

En este comic lo explican bastante bien, pero recordad que solo devuelve 64Kb máximo… que os pueden parecer pocos, pero realmente, en texto es un pasote.