Feeds:
Entradas
Comentarios

Posts Tagged ‘cyberseguridad’

[Esta entrada es una amable colaboración de @PioIin]

Para que se pueda entender la “polémica” sobre la importancia de liberar el código fuente de la aplicación de rastreo RADAR COVID del gobierno primero hay que explicar que es liberar el código y para que se hace.

Que es “Open Source” o código abierto

Toda aplicación se desarrolla en un lenguaje de programación, en concreto el código de Radar Covid se libera en esta url (https://github.com/RadarCOVID/radar-covid-android) y se publican los ficheros que construyen la aplicación que finalmente se publica en la App Store de Google o Apple.

Estos son los ficheros de Radar Covid

Y esto es una pequeña parte del código fuente.

El código una vez liberado puede ser revisado, corregido y/o copiado bajo ciertas condiciones. Hay muchos proyectos de código libre que se han compartido desde hace años, el más conocido es Linux, el más utilizado actualmente es posiblemente Android (aunque no todo está liberado).

Hay dos formas de “liberar” una aplicación, hay proyectos que nacen como código abierto desde el inicio del desarrollo (que realiza una comunidad de modo cooperativo) y otras se libera la aplicación total o parcialmente al final del desarrollo, liberar código es también una forma de comercializarlo proporcionando una versión gratuita abierta para que los clientes prueben las aplicaciones y luego adquieran una versión más potente ya con soporte comercial. En otros casos es para, como Android, permitir que otros desarrollen aplicaciones similares o relacionadas.

Esto en todo caso es irrelevante para el Radar COVID, pero es importante saber que no todo el mundo libera el código por el mismo motivo.

¿Por qué no se libera todo el código siempre?

Hay dos motivos principales, el primero es contractual, si contratas una empresa para que te desarrolle una aplicación estás “poniendo al público” su trabajo, que habitualmente las empresa de informática preferíamos que no ocurriera, así que en algunos contratos podría no estar permitido o no estar previsto. Si esto fuera una política común posiblemente los precios de contratación subirán, los insultos a la avaricia profesional de los informáticos se aceptan y se comprenden de todos menos novelistas, periodistas y mundo del cine que viven del copyrigth porque nosotros también tenemos derecho a vivir.

El segundo motivo es que liberar el código exige más tiempo, hay que limpiar código no relevante, hacer el código legible, crear el paquete de documentación y hacer seguimiento de los comentarios que te hagan. Todo ello son buenas prácticas que todos deberíamos hacer siempre, pero que no siempre se hacen. Hay quien afirma que todo el código de aplicaciones pagadas con dinero público debería ser código libre, y puede que tengan razón (personalmente yo lo apoyaría) pero no es algo tan evidente como ordenar que se haga y es un sobrecoste que no siempre queremos asumir porque los presupuestos ya están muy justos.

Para que quede claro, yo voto por liberar código de forma masiva de todos los desarrollos interesantes que paga cualquier administración, y que se fomente la cooperación entre ellas reutilizando.

¿Por qué es bueno liberar el código de Radar Covid concretamente?

Hay dos motivos mayores y uno menor, en mi opinión, para liberar esta aplicación y muchas otras similares que desarrolla un gobierno como España:

  • Generar confianza en la aplicación, ya que si podemos revisar el código podemos certificar que la aplicación hace solo lo que nos dicen.

  • Permitir a otros países que no tienen la aplicación copiar la aplicación y publicar su propia versión.

  • Por último y para mi menos relevante, liberar permite verificar la seguridad del código.

El primer motivo (generar confianza) es el más importante, cuando instalamos una aplicación le damos “permisos” en nuestro móvil, como identificarnos, ver nuestras fotos o ficheros, localizar nuestra posición, comunicarse con el exterior (internet) o comunicarse con otros dispositivos (Bluethoot). Radar Covid nos pide los siguientes permisos.

Estos permisos no son esencialmente muy diferentes de cualquier otra aplicación que los usuarios se instalan sin mayor preocupación, pero si el código está liberado podemos comprobar que el gobierno no está leyendo nuestros whatsapp para enviarlos al CNI o creando una lista de personas con las que nos relacionamos cada día. Para vuestra tranquilidad, no lo están haciendo.

¿Es imprescindible liberar el código para verificar que la aplicación no hace este tipo de cosas? No, hay métodos de análisis de la conducta de una aplicación sin necesidad de ver el código. Pero si liberas el código es más sencillo.

El segundo motivo (compartir el desarrollo) es el verdaderamente importante, tampoco es imprescindible porque otros países han liberado sus propias versiones, pero esto permitirá a países más pobres copiar el desarrollo y tener sus versiones a menor coste. Aquí hay quejas, porque se ha liberado el código pero no la documentación, de modo que reutilizarlo es más complicado, pero estos aspectos no afectan a los otros dos puntos.

El tercer motivo (seguridad del código) es el que está creando más polémica por los mensajes confusos, tenemos gente buscando “fallos del código” y gente anunciando que se están analizando “errores del aplicativo”, de momento no existe ningún error reportado relevante, lo que no ha impedido a diferentes “expertos” lanzar mensajes de alarma.

¿Cual es el error de la polémica y el manifiesto de los expertos?

El primer error es que la polémica puede crear desconfianza en la aplicación, si lanzas al público sin conocimiento técnico dudas “sobre la seguridad” habrá gente que entienda cosas que no tienen que ver con lo que en realidad estás diciendo (apuesto que algún firmante le pasa viendo la lista). La confianza una vez que se pierde es muy complicado que vuelva, así que ese debate debió ser más directo con la administración y no en los medios.

El segundo error es culpa de la comunidad informática, que se ha lanzado a una competición para encontrar “incidencias” que son en su mayoría técnicas e irrelevantes para la seguridad de la aplicación, sobre el espacio que usa la aplicación, el consumo de batería o la codificación. Esto ha generado que algunos “expertos” para darse más relevancia generen de nuevo dudas sobre posibles errores de la aplicación.

El tercer error es que liberar no es NECESARIAMENTE mejor ni para la confianza en el objeto de la aplicación ni para la seguridad.

La aplicación se ha desarrollado entre la administración, empresas reconocidas de desarrollo, Google y Apple, confiamos ciegamente en mil aplicaciones similares que no se liberan jamás.

Una aplicación no se libera para que te solucionen la seguridad del código, eso se debe verificar antes, porque la comunidad puede revisarla o no, y en todo caso la aplicación está instalada en millones de dispositivos, es posible que alguien encuentre una vulnerabilidad porque eso siempre puede pasar, pero quiero creer que esa revisión se ha hecho ANTES de publicar la aplicación y de liberar el código. No, un aficionado revisando el código en casa no va a encontrar nada.

Read Full Post »