domingo, diciembre 21, 2008

Cracking biciambiental

Buenas a los lectores de nuevo!

Después de un tiempo sin postear nada vuelvo a la carga, esta vez con una vulnerabilidad facilmente explotable en... EL SERVICIO DE BICIAMBIENTAL de las palmas (de gran canaria)... aunque mas bien es una vulnerabilidad que da pie a varias casuisticas nada agradables.

El sistema de prestamo funciona de la siguiente manera:

- Te apuntas al servicio rellenando un formulario con tus datos y dandoselo al encargado de la oficina.

- Enseñas tu DNI y pides una bicicleta.

- Te dan una tarjeta con el numero de bicicleta y la contraseña de la cadena.

La arquitectura de la infraestructura es la siguiente: Las bicicletas estan cerca del punto de peticion de bicis, ESTO NO IMPLICA QUE LOS ENCARGADOS LAS ESTEN VIENDO, de hecho en san telmo no estan controladas.

Problema:

Las bicis no estan en todo momento vigiladas por un dispositivo (me da igual si humano o maquina), esto produce que haya momentos en los que una persona podria tomar una bicicleta si anteriormente conoce la contraseña...

Sobra decir que se puede pedir una bicicleta, ver la contraseña, devolver la bicicleta y llevarsela. Este es el ataque mas simple y aunque estoy seguro que seria bastante efectivo podemos mejorarlo. Aunque los encargados oficiales no nos esten vigilando, si podria estarlo alguien ajeno al sistema, usuarios de guaguas, vigilantes de las paradas, chofers, etc...). Si bien es ALTISIMAMENTE probable que aunque con todo descaro cojamos una bici y nos la llevemos no nos digan nada, si alguien nos parara diciendo "eh tu, no robes la bici" estariamos en una situacion un poco embarazosa y solo quedaria aplicar un poco de ingenieria social para librarse.

- Eh tu! que haces robando una bici?!
- Como que robando!?
- No tienes la tarjeta credencial de haber pedido una bici y te acabo de ver quitandole el candado a una.
- Como que no tengo la credencial?! La tengo aqui mismo! o que se cree? que me se de memoria todas las contraseñas de las 300 bicis que tiene el servicio? (rebusco en mi mochila, bolsillo, etc...) Coño! pues menos mal que ha ocurrido esto! me he dejado la tarjeta con el chico que me atendio!

Y huimos xD. Hay que tener cuidado, a lo mejor no se podra usar este dialogo... CREATIVIDAD!

Con esto queda mostrada una vulnerabilidad en el sistema de biciambiental. Las contraseñas son de varios usos, esta vulnerabilidad se da debido a un mal diseño del sistema, la solucion seria modificar esta metodologia.

Sin embargo aqui no acaba todo, hay otra vulnerabilidad que tambien permite la obtencion de bicicletas. Esta vulnerabilidad es causada debido por un lado al sistema que se usa (contraseñas de multiples usos) a la infraestructura que se usa (candados de combinacion numerica... 10000 numeros para ser exactos) y el contacto con el que, por desgracia, siempre es el eslabon mas debil en los aspectos de seguridad, el ser humano. Para presentarlo expondre un ejemplo.

Alice cogio una bicicleta de forma legal, se dio su paseito con ella y ahora va a devolverla. Antes de devolver su credencial aparca la bici en el correspondiente sitio y le pone el candado y lo cierra. Luego devuelve la credencial enseñando su DNI y ya esta, Alice ya no es responsable de la bici.

Bob, que estaba atento, a los pasos (probablemente monitorizando mediante sniffing xD), espero a que Alice se fuera para tranquilamente ir al aparcamiento de las bicicletas y probar una tecnica de cracking ideada por el mismo. Consite en que el humano (medio) es muy vago y no tiene cuidado con la seguridad de las cosas (menos aun si no son suyas), lo que ha ocasionado que cuando Alice cerro el candado de la bici MOVIO MUY POCOS NUMEROS, dejando practicamente la contraseña al completo. Bob vio que en el candado habia un 4677, probo a poner 5677 y que casualidad! se abrio el candado y se pudo llevar la bici sin enteractuar con gente de la oficina, ni siquiera tiene que estar dado de alta en el servicio. Un robo practicamente imposible de seguir.

La metodologia de cracking de Bob se ha basado en lo que ya se comento, el humano a la hora de cerrar un candado tiende a dejar practicamente la totalidad de la contraseña marcada y ademas los pocos digitos que no pertenecen a la contraseña suelen estar cercanos a los digitos de contraseña real. En un caso generico:

Dado un candado que tiene el numero XYZW y cuya contraseña real es ABCD (X, Y, Z, W, A, B, C y D son digitos del 0-9) es bastante posible que ABCD sea "cercana" a XYZW, entendiendo por cercana que la distancia de levenshtein entre XYZW y ABCD es pequeña. Segun mis pocos rigurosos estudios con una distancia de 2 es mas que suficiente para poder crackear algun candado de los presentes y normalmente con distancia 1 sobra. Adicionalmente hay que hacer ver que ambas cadenas son de tamaño fijo y por tanto las operaciones de adicion de caracter y eliminacion de caracter definidas por las distancia de levenshtein son superfluas, pues la unica operacion que hace falta es la de sustitucion de caracter.

Para poner un ejemplo (aunque prefiero la definicion):
XYZW = 4677 ==> ABCD podria estar en el conjunto [3677, 5677, 4577, 4777, 4667, 4687, 4676, 4678].

En este ejemplo se ha enseñado un subconjunto de las cadenas con DL (Distancia de Levenshtein) 1 a la adena 4677, adicionalmente se ha usado la heuristica de que es mas probable que la contraseña real tenga digitos cercanos a la secuencia visible en el candado. Si vemos un 4 es mas probable que la contraseña real tenga en esa posicion un 3, un 4 o un 5 que un 7.


Hay mas vulnerabilidades en el sistema, pero estas dos son realmente grandes. Me pregunto si biciambiental es consciente de ello y si lo pretenden arreglar o no... No voy a proponer soluciones porque ya me extiendo demasiado.

NOTA: No useis mal este conocimiento. Con este texto pretendo dos cosas. Por un lado exponer conocimiento, simplemente dar a conocer este hecho. Por otro lado espero que esto sirva para que personas alejadas con la seguridad de la informacion aprendan y vean como estos conocimientos son aplicables mas alla de las fronteras de un mero ordenador y que la escencia es exactamente la misma, lo unico que cambia son los elementos a su alrededor.