Hace unos días os hablábamos del fallo goto fail en la librería de SSL de OS X e iOS. Y, casualidades de la vida, hoy ha aparecido otro similar en GnuTLS, una librería de SSL para Linux, con consecuencias muy similares. Un atacante con conocimiento del fallo podría crear certificados que siempre serían aceptados como válidos por la librería, y espiar así comunicaciones aparentemente seguras.
En realidad, el fallo no tiene prácticamente que ver con criptografía. En la función encargada de verificar la validez de certificados X.509 tipo ASN.1, el desarrollador se equivocó al programar y no se interpretó bien el código de salida. Así, un código de retorno negativo que indica un error se convertía en un código de retorno distinto de 0 que indica que todo ha ido bien. Este esquema de @0xabad1dea lo explica con más claridad para los que sepáis programación.
*: Podéis ver qué aplicaciones dependen de GnuTLS ejecutando apt-cache rdepends libgnutls26 en Debian y derivados. Es posible que no todas las aplicaciones utilicen siempre GnuTLS sino que sólo lo tengan como opción.
Este fallo tan estúpido habría sido introducido hace 10 años. Es muy grave. La librería GnuTLS es ampliamente usada en Linux por varios programas para establecer conexiones seguras por SSL, y todas ellas se ven afectadas por la vulnerabilidad. Por ejemplo, aplicaciones* como Chromium, el servidor Apache en ciertas configuraciones, Filezilla u OpenOffice usarían GnuTLS para establecer sus conexiones seguras. Alguien con conocimiento del fallo podría haber interceptado las comunicaciones usando un certificado inválido pero que no haría saltar ninguna alarma. Eso sí, es improbable que alguien haya tenido acceso a ese fallo.
Por suerte, el parche ya está disponible y muchas distribuciones lo tienen ya listo para que podáis actualizar.
Software libre, seguridad y casualidades
El primer tema que se nos viene a la cabeza con este fallo es el del software libre y la seguridad. Uno podría pensar que es muy curioso el hecho de que nadie haya visto el fallo (estúpido aunque no del todo obvio) en 10 años a pesar de que el código esté disponible para que cualquier lo mire. Por otra parte, también podríamos pensar que quizás si no hubiese sido software libre, la auditoría de RedHat no habría encontrado el fallo. ¿O quizás sí?
Este fallo cuestiona el mantra muchas veces repetido de "el software libre es más seguro porque hay más ojos para detectar bugs". La criptografía es un tema muy, muy complejo y lo que se necesitan no son muchos ojos inexpertos mirando por encima, sino sólo unos pocos expertos en el tema y con la motivación para hacer una auditoría a fondo, explorando y entendiendo el código.
Por otra parte, también resulta muy casual que se descubra ahora este fallo, tan cercano en el tiempo al de Apple y además muy similar. Uno podría especular con la relación de la NSA con este fallo, aunque por otra parte tampoco parece muy probable: por ejemplo, se pueden encontrar por Internet hilos de correo discutiendo el poco cuidado de los desarrolladores de GnuTLS. Como siempre, no hay nada seguro, aunque tampoco alimentaría paranoias de este tipo.
Vía | Ars Technica
Ver 89 comentarios
89 comentarios
plvsti
"El primer tema que se nos viene a la cabeza con este fallo es el del software libre y la seguridad." "Este fallo cuestiona el mantra muchas veces repetido de “el software libre es más seguro porque hay más ojos para detectar bugs”"
Claro. Por eso el 99% de los departamentos de seguridad de la tierra, usan Linux o plataformas libres. Ya sé que te gusta mucho Windows, peeeero.... intentar cuestionar la seguridad del software libre es absurdo. Hoy por hoy es más seguro un proyecto abierto que privativo. Y esto esta amparado por LOS grandes hackers del mundo, ni más ni menos.
atoi
Ese fallo no cuestiona nada. En ningún momento se dijo que por ser libre se garantiza la total ausencia de errores.
El software libre da la posibilidad a cualquiera de realizar una auditoría de calidad del código, mientras que el software propietario sólo puede ser auditado por aquellos a quienes se les permite el acceso al código.
En realidad la mayoría de los bugs se deben a la falta de entendimiento de las interfaces. Si este es uno estúpido, entonces casi todos los son.
sergio.mendez
gracias por la info!
yo también pienso que el software libre es "mas seguro" (lo que no significa que sea inquebrantable)y me parece que da igual las intenciones del programador que mire o modifique el código, ya que si lo hacen para mal, seguro que habrá otro programador que lo haga para bien.
victor.dzmr
El software libre es más seguro que el no libre y esto no cuestiona nada.
Por otra parte, la palabra "criptografía" no se utiliza en la informática, sino que se utiliza "cifrado".
slif24
Los de Apple buscando la china a Linux para escudarse en un "pero él también...".
aioros
Estoy de acuerdo, pero la frase debería ser: Este fallo cuestiona el mantra muchas veces repetido de “el código abierto es más seguro porque hay más ojos para detectar bugs”, debido a que el Software Libre sólo trata aspectos referentes a la Libertad y nunca se ha mojado con otros temas; mientras tanto el Open Source se diferencia en que no habla de Libertad sino que siempre ha hablado de aspectos referentes a la (supuesta) Superioridad y Excelencia del código abierto por ser OpenSource; superioridad en cuanto a seguridad, eficiencia, belleza, etc.
Esa afirmación de los millones de ojos es de hecho una de las grandes "verdades" escritas en la Catedral y el Bazar y en el mundo OpenSource es llamada "Ley de Linus" y es quizás el pilar del principal en el cuál se sostiene la ideología del OpenSource y su "superioridad". Dicho de nuevo, no hay duda que esa es una afirmación OpenSource y no Free Software.
Ahora, todos querrán desconocer o reinterpretar esa afirmación, pero si hubiese sido cierta entonces ése error gordo no habría estado ahí por 10 años sin ser visto y ya se hubiese descubierto por alguno de los millones de ojos.
Lo más irónico es lo gordo del error, todo éste tiempo los certificados tuvieron una puerta bien abierta en el OpenSource, vaya hueco en seguridad.
laregentadelmar
puestos a buscar fallos de seguridad que miren históricamente Internet Explorer, por ejemplo...
manelzaera
Un artículo que aparenta neutralidad pero que evidencia algo de aversión al software libre. Es cierto que el software libre tiene errores, y pueden ser graves. También es cierto que la probabilidad de detectarlos es mayor cuanta más gente colabore en les proyectos. Es transparente, porque todo el mundo puede ver los errores -y explotarlos, claro-. Y los errores se solucionan con la colaboración de la comunidad, no esperando a que la empresa de turno decida que le conviene solucionarlos. Por no hablar de todo lo que estamos utilizando, incluido el autor del artículo, basado en software libre.