¿Qué sabe la BIP! sobre ti?

Framartin - Derechos Digitales

Primavera Hacker - Santiago

05/11/16

Análisis de riesgos y demostración práctica

tabla de contenido

Los riesgos por la privacidad...

I - De las tarjetas físicas

II - del problema entre tne y bip!

III - De los sitios web

En pocas palabras...

Porque es primordial cuidar
el manejo de datos
cuando una organización tiene información sobre millones de usuarios
para resguardar la privacidad y la seguridad

Introducción

Martin

Equipo tech de Derechos Digitales durante 2015 y 2016 como fellow del programa de Mozilla/Ford Foundation

 

Formación en ciencia de datos, estadísticas y econometría

Publicación de tus datos

  • Puedes elegir en los redes sociales qué publicar o no
  • Y si otros sitios web publican tus datos automáticamente sin que te des cuenta?

Piensas que no Tienes nada que esconder?

0 - Transantiago

4 tipos de tarjetas BIP!

  • bip! normal (anónima)
  • tarjeta nacional estudiantil (TNE)
  • bip! personalizada
  • bip! bancaria

I - Las tarjetas físicas

TECNOLOGÍAS

  • Tarjetas NFC
  • BIP!: MIFARE Classic 1k
  • TNE: MIFARE Classic 4k

Más MEMORIA:
HAY más DATOS PERSONALES DENTRO DE LA TNE?

criptografía

  • Mala pero barata









     
  • Oportunidad de negocio
  • Usada en muchos países
    (AR, BR, IR, PL, US, SE, TK, etc.)
                             Pero...

CRIPTOGRAFÍA

Algoritmo "Crypto-1":

  • Privado y cerrado
  • No revisado por pares
  • Simple (hardware barato)
  • Quebrado
  • No funciona la seguridad por secreto
    (Security by obscurity)
  • Diferentes tipos de ataques (online, offline)
    implementados en algunos softwares:
    mfcuk, mfoc, crapto1

El "hackeo" de la tarjeta

 

  • En 2014 algunas personas usaron las vulnerabilidades para modificar el contenido de la memoria de las tarjetas
  • Popular después de creación de la aplicación que permite cargar gratuitamente
    10.000 CLP en su bip!
     
  • Muchos detalles técnicos en Internet sobre comó se hace

reacción de Transantiago

 

  • Verificar el saldo cuando entras en el metro
  • No más cambios (no cambiaron la llave*)

* archivo binario para leer todas las tarjetas bip!

Leer las tarjetas


Por qué?

Qué tipos de datos hay dentro?

 

ETAPA 1: CREAR EL DUMP de la memoria

Requisitos:

  • Hardware: lector NFC (compatible con libnfc)
    dongle NFC USB SCL3711 - 40 USD
  • Software: mfoc
  • Llave para leer y/o escribir la memoria:
    esta en Internet
    misma llave por bip! anónima y TNE

Leer las tarjetas

 

ETAPA 2: investigar el dump

Requisitos:

  • Softwares: lector de archivos binarios
    + mfdread: parser de dump de tarjetas Mifare Classic
    + un poquito de Python para leer el numero de tarjeta

 

Resultados

  • TNE: primero nombre y apellido paterno
  • bip! y TNE: numeró de tarjeta

El problema

  • Siempre tienes tu tarjeta contigo
  • El numero de tarjeta es suficiente para ver los 3 últimos meses de su uso (metro, bus y cargas)
  • La llave se puede encentrar fácilmente en Internet
  • El hardware para hacer un sniffer es barato (40 USD por un Arduino con NFC; pero pequeño alcance)
  • Antena para alcance más grande (más cara)

 

Tipos de AMENAZAS:

  • Acosadores (menores de edad tienen la TNE)
  • Amenaces a activistas
  • Investigaciones policial ilegales
  • Otros...

SOLUCIÓN

por TranSantiago

  • Mejor criptografía
  • No guardar datos personales en la memoria de la tarjeta
  • No usar únicamente el numero de la tarjeta para acceder a sus datos guardados

POR TODOS

Usar un protector de tarjeta

O guardar su tarjeta en aluminio 

 

derechosdigitales.org/amistosa/

II - El PROBLEMA ENTRE TNE Y BIP!

Gracias

A Pedro Aste por el descubrimiento

:)

DESCRIPCIÓN

Cualquier persona puede fácilmente obtener la historia de los últimos 3 meses de todos los usos de la tarjeta de transporte de cualquier estudiante en Santiago

  • privacidad de los estudiantes (vigilancia policial por ejemplo)
  • arriesgar menores de edad

Processo

RUT

Nombre

Numero de TNE parcial

Numero de TNE completo

3 meses de usos de transporte
(metro, bus, carga)

Rutificador
tne.cl "Estado de tu TNE"
Brute Force en "Bip! en linea"
"Bip! en linea"

tne.cl "Estado de tu TNE"

"Bip! en linea"

"Bip en linea"

  • Brute force: (numero de TNE a intentar, RUT)
  • 2 cifras escondidas = 100 posibilidades
  • Excepto si sabes que la primera cifra es '7' o '8'
    -> 20 posibilidades
  • Todos pueden hacerlo a mano
    (no se necesita de saber programar)

Demo

python2 demo_taller.py --help
python2 demo_taller.py -r '22222222-2' -w old

Y DESPUÉS...

  • acceder a tres meses de historial de la tarjeta
  • incluyendo todas las actividades y transacciones realizadas (validaciones, cargas y otras)

Lo qué hizo Derechos Digitales para solucionarlo

  • Investigaciones
  • Reporte tecnico para comunicar el problema y proponer soluciones
  • Reunión con el Ministerio de Transporte (y JUNAEB)

Y un DÍA...

Demo

python2 demo_taller.py -r '22222222-2' -w new

Pero...

  • 5 numeros escondidos =                    posibilidades
  • 1000 intentos = 3 minutos
    -> máximo 1 hora para los 20.000 números
  • Nueva URL...
  • El viejo sistema esta todavía en linea :-o
2*10^4
21042*10^4

III - Los sitios web

A - "Bip! en linea"

FACILIDAD DEL GUARDADO MASIVO DE DATOS

  • Sistema de login
    • 2 requests por tarjeta
    • Quebrado en las TNE...
  • No hay lista negra automatica en caso de numero
    excesivo de conexión desde la misma IP
     (fail2ban)
  • Números de tarjetas consecutivas 
  • Sitio un poquito lento
  • Errores en los nombres
    de estaciones de metro

 

Bastante fácil

Configuración del servidor web

  • Mala...
    pocae.tstgo.cl/PortalCAE-WAR-MODULE/
    -> pocae.tstgo.cl 
  • Tomcat no actualizado desde 2009
    antes de nuestro scraping masiva
  • ​Versión que tiene exploits para tener acceso
    al servidor usando vulnerabilidades
  • No ofrece TLS (https)

Mala politica: no esperar problemas para actualizar. Una infiltración no se ve

recomendaciones

  • No guardar los datos de los movimientos de todos los usuarios
  • Si TranSantiago necesita guardarlos, hacerlo en un servidor desconectado del Internet (backend)
  • Si TranSantiago necesita de poner estos datos en linea, usar un sistema de login adaptado: captcha, contraseña, verificación suficiente del servidor

B - TNE.CL

Datos disponibles

  • código de la institución educacional
    Educacion basica: lista disponible en Internet
  • historial de todas las TNE

data minimization: presentar solamente los datos estrictamente necesarios para una funcionalidad

Facilidad del guardado MASIVO de datos

  • No hay lista negra en caso de numero excesivo
    de conexión desde la misma IP
    (fail2ban)
  • No hay sistema de login (ingreso)
    • 1 request por persona
  • Datos en variables Javascript
  • RUT consecutivos (intervalo de edad)
  • Sitio rapido

 

Súper fácil

Demo:
Valor de los datos de movimientos

Informaciones Supuestas

 

  • La casa
  • El trabajo
  • Si tiene un trabajo o no
  • Hábitos, lugares favoritos
  • Estilo de vida
  • Recorridos usuales
  • Recorridos inusuales
  • Mapa de los recorridos
. venv/bin/activate
rm data.json
nano scrapy/bip/settings.py                       # editar config scrapy
cd srapy
scrapy crawl bip -o ../data.json --loglevel INFO  # guardar datos
cd ..
ls -lh data.json
python -m json.tool data.json                     # viz


cd web
python json2sqlite.py # computar informaciones de interes
python json2map.py    # computar mapas
python bip.py         # mini-sitio web

CONCLUSIÓN

El lado obscuro del uso del metro

es importante no exponer a las personas todos los días a riesgos que pueden ser evitados aplicando buenas practicas para manejar datos

Nuevo sistema

Es mas fácil de diseñar un buen manejo de datos desde el inicio que de cambiar un sistema vigente

 

Evitar los mismos errores

Recomendaciones para todos

  • Usar un protector de tarjeta
  • O no ir con su bip! en las marchas
  • No dejar la boleta cuando cargas tu bip!

Fallas del Diseño
Fallas del Sistema

Gracias!

Made with Slides.com