Heartbleed, o el ejemplo de que el Código Abierto no es más seguro

Esta semana hemos conocido, el que probablemente sea el fallo de seguridad más grande en la historia de internet: Heartbleed. Debido a un error en la librería OpenSSL, multitud de sitios han sido vulnerables durante un tiempo indeterminado. El fallo permitía a un atacante poder leer direcciones de memoria a las que de otra manera no tendría acceso. Con un poco de suerte, los malvados pueden haber accedido a contraseñas, usuarios o claves privadas del servidor. El fallo ha sido terrible, y multitud de los sitios de internet presentes en el Top 1000 de los más visitados han quedado expuestos, ya que son muchos los servicios que utilizan esta librería.

No me quiero extender mucho más, porque el tema ya ha sido ampliamente comentado. Para más detalles de la cantidad de servidores afectados, o de una explicación mejor del bug, podéis leer el artículo de mi compi Juan Quijano en GenbetaDev o el de Guillermo Julián en Genbeta.

Pero, ¿el Código Abierto no era más seguro?

Cuando se intenta defender el Código Abierto u Open Source, se tiende a usar el argumento de que es más seguro. La teoría de las personas que defienden esta postura es que, como el código puede ser revisado por miles de ojos, siempre va a ser más seguro que el código cerrado. Pues bien, aquí tenemos la prueba de que esto no es así. OpenSSL es código abierto, y esto no ha evitado el problema.

Ojo, que no se me malinterprete. No soy contrario al código Open Source. Simplemente pienso que ese argumento se utiliza muy a la ligera. De hecho me parece que es un argumento falso.

Es cierto que el código está accesible a cualquier usuario. Pero eso no implica que alguien se ponga a revisarlo. Hay miles de librerías Open Source, y cada día aparecen más. Es imposible que haya suficientes programadores para colaborar en todos estos proyectos, por lo que al final, los ojos que revisan el código no son tantos. Y aunque así fuera, las revisiones de código no va a detectar los errores.

Para evitar problemas de este tipo hay que hacer buen software. Para eso hay que aplicar todas las buenas prácticas que conozcamos: usar tests (muchos tests), mantener políticas de calidad, revisiones periódicas del software etc. Técnicas que podemos aplicar desarrollemos código abierto o no.

El Open Source tiene muchas ventajas sobre el código cerrado: cualquiera puede usarlo, las comunidades que se forman en torno a los proyectos son fantásticas, se gana independencia sobre los caprichos de las empresas, innovación en algunos casos etc. Pero que no nos engañen. El código abierto no es más seguro que el código cerrado. Ni tampoco tiene porque ser mejor.



¿Quiéres que te avisemos cuando se publiquen nuevas entradas en el blog?

Suscríbete por correo electrónico o por RSS