Archivos Seguridad: Noviembre 2007
La vulnerabilidades de Wordpress demuestran lo dicho por Ben Laurie, Director de Seguridad de la Apache Foundation:
"... me parece bastante claro que el argumento de los "muchos ojos", cuando se aplica a la segurida no es cierto" [1].
Laurie hace una crítica a la llamada Ley de Linus, formulada por Eryc Raymond en su famoso ensayo, La Catedral y el Bazar".
La Ley de Linus dice:
"Dados muchos ojos, todos los errores serán obvios".
Pues bien, desde la versión 1.5 que Wordpress almacena las claves de los usuarios aplicándoles un hash MD5, así directamente, y sin hecharle un poco de sal! ;)
Pero además el manejo de sesiones es bastante malo, las cookies no expiran, y contienen toda la información para poder realizar un session-hijacking.
Con poco esfuerzo es posible ingresar como administrador a cualquier instalación de WordPress. Además descubrir las claves también es sencillo, porque usan MD5, a pesar de que hace rato que decimos que es un algoritmo que deberia abandonarse para estos usos.
Todo estos problemas en Wordpres se saben hace tiempo, o al menos deberían saberse, puesto que cualquiera puede ver el código. Sin embargo no se han corregido.
Probablemente corregir todos los problemas de seguridad que tiene Wordpress en estos momentos puede ser un trabajo de envergadura.
¿Donde está la sabiduría de la comunidad? ¿La inteligencia colectiva? ¿Donde están todos esos ojos que hacen que los errores sean evidentes?
Es un problema de proporción entre usadores versus creadores, como siempre pasa en todo lo relacionado con el software libre y la (mal llamada) "cultura libre".
La cantidad de usuarios (usadores) es enorme frente a la cantidad de desarrolladores (creadores), pero de estos últimos los que tienen los conocimientos necesarios para crear código de calidad (los verdaderos artistas) son aún menos.
Los buenos desarrolladores no sólo son pocos, sino que sus servicios son altamente requeridos, y por lo tanto están ocupados trabajando en proyectos que les generan lucrativos ingresos.
Los proyectos de software libre de calidad, con un buen nivel de seguridad y estabilidad son aquellos en que hay un mecanismo que financia el tiempo de un grupo de desarrolladores que contribuyen activamente al proyecto
El resto de los proyecto no garantizan, por el sólo hecho de publicar su código, ni la calidad, ni menos la seguridad de las aplicaciones.
La seguridad es dificil, requiere dedicación, tiempo, recursos.
¿Puede el software libre garantizar calidad y seguridad?
Yo creo que sí, como cualquier producto, pero debemos empezar por derribar algunos mitos, y cierta arrogancia por parte de la comunidad que promueve el uso del software libre (no confundir con la comunidad que desarrolla software libre).
Argumentos como el de la Ley de Linus no sólo deben ser reexaminados, sino que deberían ser desterrados de las discusiones sobre estos asuntos, porque son argumentos incorrectos, por no decir falaces y voluntaristas. Puro wishful thinking.
La seguridad de un producto no depende de si el software es abierto o no, depende de la calidad del equipo que desarrolla.
[1] ver OK, es un aviso de Microsoft, pero hasta donde sé el señor Laurie no ha desmentido lo dicho. La cita completa en inglés es:
"Although it's still often used as an argument, it seems quite clear to me that the "many eyes" argument, when applied to security, is not true." -- Ben Laurie, Director of Security, Apache Foundation
Una oscura nota del New York Times indica que Adi Shamir (la S en el algoritmo RSA) sospecha que los bugs matemáticos, como el encontrado en Excel, o los que afectaron al Pentium en 1994, pueden abrir una brecha en los algoritmos de llave pública y privada.
Al parecer Shamir ha enviado una nota de circulación restringida entre distintos criptógraficos indicando que una organización de inteligencia, que supiera del fallo en el diseño de un chip distribuido a larga escala, podría enviar mensajes específicos (envenenados) a un sistema y descubrir las claves secretas.
Esto es interesante, porque estaría revelando una potencial falla del algoritmo RSA, como sugiere Jean-Jacques Quisquater, profesor e investigador en criptografía de la Universidad Católica de Lovaina, en Bélgica.
En general los criptógrafos son bastante paranoicos con estas cosas, y supongo que la nota de Shamir debe ser bastante reveladora, pero mientras no se haga pública no nos va a quedar claro cómo aprovechar estos bugs.
Especulo que el temor de Shamir es que si uno sabe que cierta operación matemática tiene un bug que se gatilla con ciertos números específicos, (como por ejemplo, al multiplicar 77,1 por 850), entonces se podria enviar un mensaje cifrado "armado de cierta manera" con estos numeros "venenosos" al sistema que se quiera atacar comprometiendo sus claves por un efecto de la acumulación de errores intermedios.
Aprovecho de comentarles que el investigador Chris Lomont, ha logrado hacer una ingeniería en reversa del bug de excel, y habría demostrado que el problema es sólo de presentación, y que internamente los cálculos de Excel son correctos.
Al parecer la causa del bug estaría al migrar un trozo de código en assembler desde 16 bits a instrucciones en 32 bits. Para los que tengan la paciencia, o la curiosidad, la explicación detalla está en el artículo publicado por Chris Lomont.

