jueves, 26 de junio de 2008

Free Software: Modelos de seguridad

Aún no hace mucho tiempo que estuve discutiendo con unos compañeros sobre los modelos de publicación del código fuente de los programas creados, desde el punto de vista de la seguridad.

Básicamente, la discusión venía porque algunos no terminaban de ver seguro la publicación pública del código. Aparentemente esto presenta varios problemas:

  1. Cualquiera puede auditar el código, y aprovecharse de las vulnerabilidades encontradas.
  2. ¿Como sacar negocio de un software que cualquiera puede compilar y utilizar?¿Quien va a pagar por lo que puede obtener gratis?
Primeramente veamos cuales son las diferentes alternativas en publicación de código fuente:

  1. Security Throw Obscurity: No publicar nada.
  2. Responsible Disclousure: Publicar tanto el código como las vulnerabilidades, pero dentro de circulos donde se le pueda sacar un provecho "positivo". Digamos que una publicación pública, pero limitada.
  3. Full Disclousure: Publicarlo a los cuatro vientos.
Mediante el método de Security Throw Obsurity, en principio, parece que el nivel de seguridad es mayor. Es el método utilizado, por ejemplo, por Micro$oft. Pero... ¿es realmente seguro?. La respuesta la sabeis ya casi todos: no. El que no publiques el código ni las vulnerabilidades no te libra ni de que los demás usen tus programas sin permiso ni de que estas vulnerabilidades sean publicadas. Está visto, a lo demás, que el hecho de que se publiquen las vulnerabilidades, acelera el proceso de corrección de estas. A lo demás, la no publicación del código puede llevar a que haya vulnerabilidades no encontradas, que algún hacker avispado pueda estar utilizando si que lo sepas. Decididamente no es el mejor método.

Responsible Disclosure: Es, sin duda, el método que ofrece más confianza. Puedes controlar, hasta cierto punto, quien accede a tu código, y evitas que individuos no deseables accedan a él sin control ninguno. Es el método de moda, por decirlo de alguna manera. Empresas como Sun Microsystems, Oracle, HP o IBM lo utilizan, ya desde hace algún tiempo, en todos sus proyectos Open Source (que cada día son más). Incluso la todo poderosa Micro$oft se está subiendo al carro.

Full disclousure: el que acceda todo el mundo es el método en el que se basaron inicialmente al crear el software libre. Linux, Open Office, Firefox o MySQL se han basado desde sus inicios en este modelo. Evidentemente han funcionado bien, sobre todo gracias a una trabajadora comunidad que ha hecho grandes progresos. Es un método que, disponiendo de grandes comunidades va bien, pero en caso de no ser un software de amplio espectro puede dar problemas. Tenedlo en cuenta.

Con respecto al modelo de negocio, habría que mirar el modelo económico de recursos gratuitos. Llevamos ya años utilizandolo con éxito, y desde luego a las empresas que lo utilizan no les va nada mal. Se basa, sobre todo en hacer bien el trabajo, y ofrecer servicios en torno al producto que se ofrece. Empresas como Red Hat, Suse, Google o incluso ahora Oracle, sacan pingües beneficios de estas prácticas. Esta claro que dinero se puede obtener. De hecho es el modelo que está triunfando a nivel mundial. El secreto del éxito se basa en poder ofrecer los mismos servicios que la competencia, a un menor coste, lo cual es evidentemente muy ventajoso.

Cada uno que saque sus conclusiones. Evidentemente cada modelo ha de usarse según las circunstancias, y no debería elegirse a la ligera. Yo, aquí dejo las opciones.

No hay comentarios:

Powered By Blogger

Datos personales