¿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...
Imagen: Adrian Dabrowski - 30c3
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
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
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!
Presentación del análisis de los riesgos por la privacidad de un malo maneje de datos de transporte
By framartin
Presentación del análisis de los riesgos por la privacidad de un malo maneje de datos de transporte
- 1,893