Interesante el comentario de Bruce Schneier -uno de las celebridades en el segmento de la seguridad- sobre un tema que desde luego ya tenía muy mascado. ¿Son los desarrollos Open Source más inseguros por el acceso total al código fuente de estos desarrollos? Desde luego, la impresión inicial es esa, pero Schneier reniega de la falsa sensación de seguridad que da el secretismo.
Lo comenta en varios de los artículos de su blog (1, 2, 3) en los que habla del famoso concepto del «security through obscurity» que es uno de los argumentos de muchas empresas de software propietario: no te dejamos ver el código, así que no vas a poder descubrir vulnerabilidades.
Lo malo es que si alguien analiza ese código y logra desvelarlo con ingeniería inversa -algo que ha pasado recientemente con el protocolo de Skype- se caen todas las piezas del dominó: la seguridad se rompe, y corregirla o controlar los efectos del problema es aún más complicado. Pero cuidado: que uno publique su código con licencia Open Source no hace que este sea más seguro.
La ventaja de este modelo es precisamente otra:
The point of making it open source is so that many, many people look at the code for security flaws and find them. Quickly. These then have to be fixed. So a two year-old piece of open source code is likely to have far fewer security flaws than proprietary code, simply because so many of them have been found and fixed over that time. Security flaws will also be discovered in proprietary code, but at a much slower rate.
Ahí le has dado, Bruce.
De todo habrá… al final todos los proyectos OpenSource no reciben la misma atención por parte de la comunidad. Los que son mayoritarios y reciben mucha atención y correcciones rápidamente se verán mejorados, pero otros seguramente están en las mismas condiciones que el software propietario en cuanto a recursos de desarrolladores y puede que nadie o casi nadie se interese en buscar bugs.
No podemos pensar que todo el Opensource está participado activamente por toda la comunidad y que se beneficia de las mismas aportaciones exactamente. Como en todas partes habrá mejores y peores programadores y mejor y peor software.
Lo que yo siempre he achacado al Opensource es lo poco cuidado que está en términos estéticos, debido a que la gran mayoría de la comunidad no es experta en «diseño» pero normalmente las tripas del software sí están mejor cuidadas.
Y dicho todo esto, creo que la reflexión de Javi no es descabellada porque no deberíamos dar por hecho que por ser OpenSource lleva un sello de garantía especial contra bugs. Habrá software muy robusto porque recibe muchas aportaciones y habrá software que no tanto porque está menos «atendido»
Creo que hay que leer este post y leer entre líneas lo que yo creo que Javi viene a poner de manifiesto.
Con el modelo open source tambien nos libramos de «códigos maliciosos ocultos y con oscuras intenciones». Recuerdo que no hace mucho salio a la luz una empresa de software de gestión (española ademas) que tenia su programita preparado para que fallase cada cierto tiempo.
Además, ¿quien dijo que hace falta «mirar el código fuente» para encontrar errores?
Durante todas las betas de firefox 4, cualquiera podia expresar su opinión con el correspondiente botón, (espero estén haciendo lo mismo con firefox 5, aun no lo he probado) y así, legiones de usuarios que no tenian ni idea de programar expresaban lo que les gustaba y lo que no, sobretodo estéticamente.
Para descubrir esos efectos maliciosos si que tienes que mirar el código, para decir si te gusta cómo hace algo no… no es lo mismo desdelsur.
Eso si, el opensource está expuesto a que te pillen un bug «voluntario» o no… y solucionarlo, pero también es relativo a cuanta gente de la comunidad de desarrollo está prestando atención a tu proyecto. Generalmente el software de gran penetración en el mercado es más seguro porque tiene más ojos vigilando, pero el de menor relevancia puede que no tenga a nadie más que al propio desarrollador.
Y una empresa que vende su producto y luego «no cobra» por los parches como casi todas, es tontería que lo haga mal a propósito porque tendrá que arreglarlo cuando falle. Y fallará.
El caso es que en terminos generales no es ni más ni menos seguro, pero sí que puede aprovecharse hasta cierto punto de la cantidad de aportaciones de la comunidad para progresar a buen ritmo en la reparación y mejora.
No, al contrario, es mas seguro.
Saludos