Pandemonium Debian



Mucho se ha escrito sobre el reciente bug en el OpenSSL, que afectan las distribuciones Debian y sus derivados, descubierto por Luciano Bello (un desarrollador de Debian autóctono), bug que ha tomado la dimensión de cuasi desastre por las consecuencias derivadas de éste.
No es mi intención profundizar en detalles, soluciones y consecuencias del mismo. Mucho se ha escrito ya en la web y para buscar esto, nada mejor que San Google que todo lo encuentra.




Lo que si me llamó mucho la atención y me motivó a este posteo son unos comentarios que escribió un lector anónimo en el blog de Luciano, haciendo referencia a un posteo del mismo Bello sobre lo acontecido con el OpenSSL.
Realmente sin desperdicio. Léanlo y saquen sus propias conclusiones...

Aqui va:


Fuente: http://lbello.livejournal.com/52684.html

gracias y comentarios sobre debian
(Anónimo)
2008-05-14 04:14 am UTC
Gracias Luciano por el dato y felicitaciones, un orgullo que sea argentino el que contribuyo alertando este problema.

Quiero expresar algunos comentarios sobre este incidente, por favor no interpretar como que quiero hacer lena del arbol caido...

Leyendo el infaltable post de slashdot sobre este tema [1] mi sensacion fue de estar viviendo algo irreal ....

Yo, que me considero un programador de cuarta, antes de comentar/eliminar cualquier codigo:

i) analizo cuidadosamente quien y como usa cada una de las variables a eliminar

ii) corro rigurosos tests que yo le llamo de "continuidad de normalidad" ... es decir, que todo el codigo afectado por la modificacion se siga comportando como lo hacia antes

Y me falta algo que no hago pero que deberia hacer: que alguien mas revise lo que hice para tener una segunda( si fuera tercera, cuarta mejor ! ) opinion.

Yo, repito , que soy un "aprendiz" en comparacion a los programadores que hay en el mundo hago esto y hoy me entero que Kurt Roeckx, el "encargado de paquete", de ni mas ni menos que openssl hace dos cambios al fuente md_rand.c , a saber:

i) comenta intencionalmente una linea de codigo con el objeto de que un debuggeador ( valgring ) no se "queje" , pero con el efecto secundario ( sabido por Kurt ) de que se disminuira la entropia en la generacion de claves criptograficas.

Me pregunto. Como puede ser que una persona decida tan facilmente que debian va a generar de golpe y porrazo claves criptograficas con menos entropia que las demas distribuciones linux? Como puede ser que la mayoria de los usuarios de Debian ni se hayan enterado de tamano cambio de comportamiento en un paquete tan pervasivo.

ii) comenta ( quiero creer inintencionalmente ) otra linea de codigo que tiene el efecto secundario de desactivar completamente la incorporacion de entropia efectiva a la generacion de claves criptograficas en openssl

Y no puedo dejar de preguntar: como puede ser que la reputacion, imagen e historia de una distribucion tan buena como Debian quede en las manos de una sola persona, que como todas puede cometer errores ( aun errores de programador amateur como estos ) ?

Leyendo el bug que motivo este desafortunado patch, no veo en ningun momento que el equipo debian de openssl haya "consensuado" el cambio , porque se commiteo el patch entonces ?

En el mismo sentido a lo que dijiste en tu post, creo que esto debe servir para que Debian incorpore politicas de testeo de codigo y auditorias tipo "peer review", por lo menos en paquetes delicados y pervasivos como estos.

Un saludo desde cordoba

Orlando

[1] http://it.slashdot.org/article.pl?sid=08/05/13/1533212&from=rss


Re: gracias y comentarios sobre debian
lbello
2008-05-14 05:39 pm UTC
El problema no surge de los regression test. El bug original por las que aquellas lineas fueron comentadas es público, y el mantenedor preguntó en la lista de desarrolladores de OpenSSL sobre el tema y tuvo una respuesta ambigua.

El error no fue evidente y estuvo durante 2 años. A diferencia de lo que ocurre en RL, puede pasar que errores sencillos en cuanto a lineas pero no-triviales en cuanto a sus efectos lleven a catástrofes.

Debian tiene un compromiso con los usuario de no ocultar los problemas y, una vez más, cumplió. Los errores ocurren y lo importante es reaccionar bien ante ellos. Como submitter del problema, puedo decir que el proceso fue realmente corto y expeditivo. Eso habla muy bien de esta excelente distribución.

Un consejo, si no sos un gran programador (e incluso si lo fueses), no deberías tratar de "aprendices" a las personas. Es solo mi opinión.


Re: gracias y comentarios sobre debian
(Anónimo)
2008-05-15 12:37 pm UTC

[[ post en dos partes, parte 1 /2 ]]

>El problema no surge de los regression test.

no me referia especificamente a un regression test. Me explico: si estas tocando el codigo que afecta el RNG y ademas *sabes* que estas tocando codigo que puede afectar la entropia en dicha generacion ( Kurt lo sabia ) o como cualquier toque puede meter algun efecto secundario no deseado ( esto, cualquier programador con experiencia lo sabe , el codigo es "traicionero" ;-), *tenes* que correr un test que asegure que el RNG *sique* funcionando igual que antes. Kurt no lo hizo.

Un test podria haber sido el siguiente ( extraido de http://mag.entropy.be/blog/2008/05/13/how-badly-debianubunutu-openssl-is-fscked-up ):

for i in `seq 100000`; do openssl rand -base64 40 >> test; done

$ wc -l test; cat test | sort| uniq -c | sort | tail

En debian no parchado ese tail final te muestra una cantidad grande de claves repetidas

>El bug original

AFAIK no habia ningun "bug" en md_rand.c . Solamente una asignacion de memoria no inicializada *intencional* y ademas comentada con un #ifdef PURIFY para permitir compilar sin esa asignacion para satisfacer debuggeadores quejosos. Una de las respuestas en la lista openssl-dev a Kurt fue clara al respecto

"There's your first clue, build with -DPURIFY :-)

Cheers,
Geoff [Thorpe] " ( http://marc.info/?l=openssl-dev&m=114654760312453&w=2 )

>y el mantenedor preguntó en la lista de desarrolladores de OpenSSL
>sobre el tema y tuvo una respuesta ambigua.

veo dos problemas aca, ambos graves:

i) el mantenedor debian de openssl pregunta y admite en una lista publica que no sabe que efecto va a causar comentar esas lineas ( "But I have no idea what effect this really has on the RNG" ). Mi respuesta para Kurt es: si no sabes analizar el codigo de openssl, *no toques* mas codigo openssl, el riesgo es demasiado grande. Deja a los upstream hacer este tipo de modificaciones, que se supone que ellos si saben.

ii) tal como vos decis, Kurt recibio una respuesta "ambigua" en openssl-dev, por lo tanto _con mas razon_ no deberia haber committeado ningun cambio y asegurar un total consenso, pre-analisis de impacto y peer review de un cambio tan importante

( me hace acordar de una pelicula "Carlito Way", donde el personaje que hacia Sean Penn era instado por Al Pacino en joda a prepear a unos mafiosos y Sean Penn se lo cree en serio y sale a prepearlos y casi lo matan ... es una conducta tipo exceso-de-cafeina-y-confianza-en-uno-mismo muy peligrosa ... salvando las distancias y valga la analogia )


>El error no fue evidente

porque la correccion no fue evidente ... este tipo de correcciones *tienen* que ser evidentes . Como sabras, no todos las modificaciones de codigo provocan problemas evidentes ... como decis mas adelante hay bugs muy oscuros provocados por cambios "sencillos"; justamente este tipo de errores es mas facil prevenirlos analizando cuidadosamente lo que se modifica, haciendo tests, consensuando los cambios y peer reviewing


Re: gracias y comentarios sobre debian
(Anónimo)
2008-05-15 12:37 pm UTC

[[ post en dos partes, parte 2 /2 ]]

>Debian tiene un compromiso con los usuario de no ocultar los problemas y,
>una vez más, cumplió.

por supuesto y eso es una de las cosas que nos diferencian del software propietario, no estoy para nada criticando eso, pero lamentablemente , eso no le quita gravedad a lo que paso

> Los errores ocurren

pero pueden no ocurrir, o por lo menos tenemos que tratar de que no sea cierta la frase que escuche decir a alguien en slashdot ( estupendo slogan para la gente de marketing de Microsoft ):
"el software abierto es tan bueno y seguro como lo sea el ultimo programador de la cadena"

En Debian no tiene que haber un unico ultimo programador en la cadena. Repitiendo lo que dije antes: "como puede ser que la reputacion, imagen e historia de una distribucion tan buena como Debian quede en las manos de una sola persona, que como todas puede cometer errores"

>Un consejo, si no sos un gran programador (e incluso si lo fueses),

no , justamente si lees mi comentario me considero un aprendiz ( en relacion a "la media" de programadores en el mundo )

>no deberías tratar de "aprendices" a las personas.

en este caso, me trate a mi mismo de aprendiz :-) y siempre fui modesto

Si te referis a Kurt Roeckx, mi opinion con respecto a esa persona ( y seria la misma opinion si fuera yo el que cometio el "accidente" ) es que

------------------------
Kurt Roeckx no tiene que hacer committ de ninguna linea mas de codigo en debian ( por lo menos en paquetes pervasivos y core como openssl ) hasta que (esperemos) se fijen politicas que manden el testeo previo de impacto , regresion test, claro consenso del cambio en el equipo de mantencion, peer review , firma obligatoria del patch de por lo menos una persona mas ademas del originador del patch y una clara publicacion en debian de los cambios debian-particulares en paquetes upstream sensibles.
------------------------

>Es solo mi opinión.

gracias por contestar y te pido que no tomes mi respuesta como un ataque a debian. En mi casa tengo 3 ubuntus instalados, y en server siempre admire a Debian. ( aunque ahora no estoy en mi casa y esto lo estoy escribiendo en un puppy linux fire hydrant :-)

Un saludo


Re: gracias y comentarios sobre debian
lbello
2008-05-15 10:46 pm UTC

Es realmente mucho lo analizable acá y entenderás que son días complejos.

Si no te molesta, voy a tomarte el tiempo para responderte con detalle en un par de días, cuando baje el agua. Mandame un correo así te aviso cuando te tenga la respuesta.

saludos, luciano

Comentarios

Entradas populares