Omicrono, la tecnología de El Español

Omicrono

“No puedes pretender que nadie encuentre una clave pública”. La chapuza que expuso los datos de miles de valencianos

“No puedes pretender que nadie encuentre una clave pública”. La chapuza que expuso los datos de miles de valencianos

La última aplicación de Metrovalencia y TRAM d'Alacant ha sido un arma de doble filo. Su imperdonable forma de desarrollo expuso datos personales de miles.

Hace unas semanas los usuarios de Metrovalencia y TRAM d’Alacant (servicios gestionados por Ferrocarrils de la Generalitat Valenciana) pudieron empezar a utilizar en sus móviles una aplicación para gestionar sus tarjetas de transporte y consultar los datos en tiempo real de las líneas.

La aplicación había sido diseñada para otorgar a los usuarios multitud de utilidades relacionadas con los servicios como consultar los horarios, calcular trayectos, consultar información de tarifas y líneas… Pero también podías acceder a tu área personal donde vincular tus tarjetas de transporte y recargarlas desde la aplicación.

Sobre el papel no parece una aplicación revolucionaria, pero si muy útil y tampoco se trata de una creación digna del olimpo de software por dificultad de desarrollo. En cambio, en su interior albergaba una chapuza que provocó que durante días los datos personales de miles de usuarios estuvieran expuestos al público.

Cómo funciona una aplicación como esta

Aplicación para Android de Metrovalencia

Para comprender donde se encontraba la chapuza, primero vamos a repasar de manera sencilla como funciona una aplicación como la de Metrovalencia. Te aseguro que podrás comprenderlo aunque no sepas nada de informática.

Para empezar, Ferrocarrils de la Generalitat Valenciana (en adelante FGV), dispone de un almacén donde se guardan todos los datos de los usuarios y del servicio. Necesario para saber que una tarjeta te corresponde, cuanto saldo tiene o donde está cada vagón.

En el momento en el que FGV quiere dar esta información a los usuarios crea una aplicación para móviles. Pero una aplicación no puede acceder al almacén de datos. Por ello se crea una capa intermedia donde la aplicación pide datos al almacén. Esta capa, la API, realiza las comprobaciones de seguridad pertinentes y si son correctas da a la aplicación los datos que ha pedido.

Por ejemplo, Fulanito puede consultar toda la información del estado de las líneas, porque es público, no se realiza ninguna comprobación. En cambio, Fulanito no debe saber cuantos viajes quedan en la tarjeta de Menganito, porque es un dato privado. Por ello el sistema se encarga de dar una clave única a Fulanito que le permite, solo a él, entrar en sus datos.

Nunca el almacén de datos debe dar información a alguien sin acceso a ella. Por ello se requiere una clave que identifique a cada persona.

Fulanito entrará con sus credenciales a la aplicación y entonces el almacén le reconocerá, dejándole usar su clave privada asignada. De cara al usuario, este entra con sus credenciales y el resto es totalmente transparente.

La chapuza: proteger algo ocultándolo

Existen muchos algoritmos pensados para esta tarea, la de ofrecer una clave privada a una aplicación para que la use para obtener los datos privados del usuario. Pero la aplicación desarrollada para FGV decidió usar su propia forma, o mejor dicho, no usar ninguna forma segura.

Fue un ingeniero informático sin relación con el desarrollo de la aplicación o con FGV descubrió la enorme chapuza realizada y decidió interponer por su cuenta una denuncia ante la Agencia de Protección de Datos que ahora se encuentra aceptada y ha provocado un arreglo rápido por parte de FGV.

No puedes pretender que escondiendo una clave de acceso en algo público nadie la encuentre nunca.

Durante el desarrollo de la aplicación, ya fuera por falta de personal cualificado, de técnicas de revisión o de condiciones de tiempo precarias, no se optó por mayor método de seguridad que, explicado sencillamente: crear una sola contraseña y guardarla en un papelito dentro del programa.

A fin de cuentas, eso es lo que hicieron. Ahondando más en el funcionamiento técnico, lo que hicieron fue no crear una clave para cada usuario, sino usar la mismacolocar la clave dentro de la aplicación. Solo era necesario descargarse la aplicación, acceder a su código con ingeniería inversa (una técnica lícita, pues el código no estaba protegido) y encontrar allí la clave. Con ella podías acceder a todo lo que quisieras.

Multitud de datos personales y de afectados

[Juan Enrique Gilardi | Flickr]

Actualmente todas las operaciones afectadas han sido deshabilitadas aunque todavía no arregladas. En Omicrono pudimos comprobar por nuestra cuenta, gracias a la auditoría realizada por el ingeniero denunciante, la veracidad de estos hechos y hoy en día la clave única todavía funciona, pero ya no se transmiten datos. Simplemente se ha cortado por lo sano, pero dejando a los usuarios sin servicio de algunas utilidades.

Actualmente, toda la información delicada ya no está disponible.

Los métodos, sencillos de llevar a cabo, permitían obtener información de más de 50.000 usuarios entre la que se encontraba:

  • Nombre, apellidos y NIF.
  • Fecha de nacimiento.
  • Género.
  • Teléfono móvil.
  • Dirección de correo electrónica.
  • Dirección postal completa:
    • Dirección, población, código postal y provincia.
  • Tarjetas de transporte vinculadas y:
    • dónde se utilizaron (estación).
    • cuándo se utilizaron (fecha y hora).
    • uso realizado (validación de entrada o de salida).
    • pagos realizados.
  • Fecha de caducidad de la tarjeta de crédito/débito y entidad (VISA/MasterCard…)

De nuevo incidir en que toda esta información ya no se encuentra disponible. Desde FGV aseguran que no hubo un volcado masivo de datos, séase, que nadie descargó todos estos datos en masa. Aseguran tener métodos para detectar estos actos, aunque lo efectivo no es detectarlo sino evitarlo.

Denuncia ciudadana y el sector informático

[Peter | Flickr]

La obtención de estos datos con malos fines podrían haber provocado serios problemas en los usuarios afectados, pudiendo intentar conseguir el resto de datos de la tarjeta por medio de ingeniería social o dando lugar a situaciones de phishing o acoso.

Nuestros datos son muy importantes y más en el entorno tecnológico actual en el que vivimos donde todo gira entorno a ellos. Cuando usamos un servicio y damos nuestros datos para disfrutar de él damos un voto de confianza. La famosa GDPR o la LOPD (Ley Orgánica de Protección de Datos) existen para protegernos y asegurar que no tengamos que auditar cada servicio para asegurarnos que es seguro usarlo.

El desarrollo de software es una piedra clave para asegurar la privacidad de nuestros datos, pero es infravalorado muchas veces.

Pero este ejemplo ya nos deja ver que ni la existencia de leyes hace que en alguno sitios se tome en serio tanto la seguridad de los datos como el desarrollo del software. En este caso la Agencia Española de Protección de Datos ha podido empezar a tomar cartas en el asunto gracias a la denuncia de un ciudadano, dejando presente que en nuestra mano se encuentra también el poder de que las irregularidades se corrijan.

Es de esperar que estas cosas ocurran cuando se menosprecia el desarrollo de software, centro de nuestras vidas actualmente conectadas a todo. Se somete a los trabajadores del sector a plazos imposibles y al menor precio posible, obteniendo trabajadores sin el conocimiento necesario. Todavía queda el arcaico pensamiento en algunas empresas de que “estas cosas de ordenadores te las hace cualquiera de los jovenes de ahora”.

Foto de portada: Yasuhiro Chatani (Flickr)