Etiquetas

, , , , , , , , , , , , ,

Cuando se habla de las ventajas del software libre, suele hacerse hincapié en el hecho de que la disponibilidad del código fuente permite analizar todas y cada una de las tareas que realiza un programa, evitando así la posibilidad de que se inserten virus, spyware o trabaje de un modo que no atiende a las características anunciadas. Cuando nos encontramos con software que funciona en un equipo para un usuario, esto es sencillo, ahora bien, en el mundo de la nube o cloud computing, las cosas son diferentes.

Cuando  un programa funciona en local, lo que ves es lo que tienes: tomas un código fuente, que previamente puedes haber analizado u ordenado auditar, lo compilas, y obtienes una funcionalidad. Sin embargo en aplicaciones remotas vía web lo único que funciona en tu equipo es una pequeña parte del código enviada desde el servidor y que actúa como interfaz, habitualmente HTML y JavaScript. El resto del proceso se da en el servidor, el PC remoto al que te conectas.

Allí puede haber código desarrollado en muchos lenguajes distintos, desde PHP hasta Java pasando por Python, ASP, ASP.NET, Perl o Ruby entre otros. En cualquier caso, es un código que se ejecuta en ordenadores gestionados por terceros y nuestro único y limitado acceso a ellos se encuentra en su interfaz web, es decir, el acceso desde el navegador a una serie de interfaces o páginas de donde se reciben datos y a donde envías tu información.

Al margen de otros componentes, las aplicaciones web suelen estar formadas al menos por código desarrollado al efecto más una base de datos:

  • En cuanto al código, se ejecuta cuando se hace una llamada a una URL concreta. Es decir, el servidor no envía ese código fuente al navegador para que este lo ejecute, sino que lo ejecuta en el propio servidor y devuelve al cliente el resultado de dicha ejecución. Así, si deseamos acceder a una parte del programa (un fichero) para auditarlo, no podremos, ya que no obtendremos dicho fichero con el código fuente sino el resultado de haberlo ejecutado en el servidor, o lo que es lo mismo, una página web, bien sea con una interfaz, bien sea con un mensaje de error. Adicionalmente, existen zonas del servidor web que, por restricciones de seguridad, no pueden ser accedidas directamente. Dichos ficheros pueden ser ejecutados por el servidor como parte del programa, pero no hay forma de acceder a ellos directamente.
  • Las licencias libres, generalmente, obligan a distribuir las modificaciones realizadas cuando redistribuimos software a terceros, no obstante, cuando se despliega una aplicación en un servidor no estamos redistribuyendo el software, simple y llanamente lo estamos utilizando internamente en nuestras instalaciones sin distribuir la aplicación a nadie. Lo único que recibe el cliente son los datos computados por el servidor, no la aplicación. Lo que implica, en definitiva, es que partiendo de un código fuente dado, podemos variar parámetros o incluir cambios en algoritmos o funcionalidades sin necesidad alguna de publicar dichas modificaciones. Por ese motivo, puede partirse de un código libre, cambiar su funcionalidad u añadir módulos que ofrezcan otras funcionalidades, crear un servicio web con ello y ofrecerlo a clientes sin necesidad expresa de reflejar dichos cambios de forma pública.
  •  Las bases de datos disponen de interfaces que permiten acceder a ellas para su administración de forma totalmente independiente al código de cualquier aplicación que estemos utilizando en conjunto con dicha base de datos. Así pues, cualquier tarea de administración que implique cambios en los datos de dicha base se puede realizar por parte de los operarios del servicio sin que esto quede reflejado de ningún modo en código fuente disponible para su auditoria.
  • Igualmente, pueden desarrollarse dentro del servidor, scripts o programas con interfaz local o web que modifiquen los datos de la base sin que ello haya de ser publicado, pues se trata de código totalmente ajeno a la aplicación web principal cuyo código es libre.

En resumen, de lo único que se puede estar seguro cuando se accede a un servicio web cuyo código es libre es de que el código está disponible para su descarga, bien sea a través de un servicio CVS, SVN, GIT o cualquier otro, y de que probablemente una comunidad de usuarios envíe parches para su mejora si dicho servicio se populariza y obtiene soporte por parte de la comunidad o empresas relacionadas con dicho servicio.

A partir de ahí, la aplicación instalada por un proveedor concreto puede contener modificaciones no publicadas, software adicional para gestión que amplíe o modifique su funcionalidad y una base de datos gestionada por humanos, cuyas acciones no veremos reflejadas en ningún código fuente.

Existen casos en los que la ley vigente obliga a no publicar datos privados confiados por clientes –desde datos de cuentas privadas hasta  sistemas de mensajería privada entre usuarios- si bien no hay nada que permita realizar una auditoria a priori del acceso de los operarios de una base de datos a dicha información y por el contrario entre en el ámbito de las decisiones judiciales en caso de que se produzcan irregularidades a posteriori.

Anuncios