Menú principal

sábado, 13 de agosto de 2011

Signal y la detección de estaciones base falsas (2 de 2)

============================================================
- Signal y la detección de estaciones base falsas (1 de 2)
- Signal y la detección de estaciones base falsas (2 de 2)
============================================================

¿Puede Signal utilizarse como detector de estaciones base falsas?

Para empezar, esta respuesta está supeditada a que la fuente de información de la que Signal obtiene sus datos sea 100% fiable y actualizada cada vez que el operador realiza un cambio en su red.Si lo anterior es cierto debemos distinguir tres casos:

1) Si el atacante utiliza un identificador de celda que no existe, la aplicación podría servirnos para identificar que la celda que da servicio al terminal no existe (puesto que no reporta ninguna ubicación geográfica para la celda que nos da servicio), y por tanto asumir que es falsa.

2) Si el atacante utiliza un identificador de una celda que existe, pero está en otra ubicación, la aplicación Signal nos reporta que estamos en una ubicación que realmente no es la nuestra. Esto nos indicaría que la estación base que nos da servicio no es legítima.

3) Si el atacante configura su estación base como una de las vecinas y consigue que el terminal se registre en su estación en lugar de hacerlo en la legítima (probablemente mediante emisión de una señal más potente y de mejor calidad) entonces Signal no mostraría ningún indicio. Hay que decir que para el atacante es mucho más difícil conseguir que el terminal se registre en su estación base con esta configuración, ya que el terminal está viendo 2 estaciones base con el mismo identificador (en este caso no sabemos cómo se comporta el terminal, puesto que no hemos realizado esa prueba). Una posible alternativa para el atacante sería utilizar el identificador de una celda existente, geográficamente próxima, pero que el terminal no esté percibiendo (porque la señal legítima no es lo suficientemente potente).

Nuestra conclusión es que la aplicación puede ayudar a detectar si la cobertura de nuestro terminal es legítima o no, y dificultar la tarea de un atacante. Sin embargo, no puede considerarse un sistema 100% determinante. Aun así, pensamos que el uso de la información geográfica de las celdas legítimas aporta una muy buena vía para la detección de ataques con estación base falsa y debería combinarse con otras técnicas como, por ejemplo, la información del GPS del dispositivo, el uso de otros parámetros de la señal recibida o la detección de funcionalidades que una red falsa típicamente no tendría implementadas.

Análisis de las trazas de red

Para cada una de las pruebas realizadas hemos obtenido la correspondiente captura del tráfico de red con Wireshark. Esto lo hemos hecho así porque, si existe una fuente de información de la que se puede extraer la localización geográfica de una estación base legítima, por supuesto nos interesa conocerla.

Después de analizar algunas de las capturas, llegamos a la conclusión de que la fuente de información era Google (¡qué sorpresa!). Además, pudimos comprobar que la petición / respuesta tiene esta forma:

Figura 6: Captura con Wireshark de la petición de datos

Se puede observar en la figura que los datos de la petición son el identificador de celda, compuesto por MCC, MNC, LAC y CI, y además que la respuesta llega en formato de longitud y latitud.

Como podéis observar, el User-Agent de la captura refleja que estamos usando “wget” (en lugar de Signal, que es lo que reflejaría cualquier capturas sobre del tráfico del aplicativo). Esto es porque en lugar de usar el aplicativo Signal hemos generado una herramienta software para acceder a esta información, como explicamos a continuación.

El software es un shell script que, tomando como datos de entrada el identificador de celda, realiza la petición a google en el formato adecuado, utilizando wget para ello. Una vez obtenida la respuesta de Google, muestra la longitud y la latitud por la consola desde la que ha sido invocada y, opcionalmente, arranca un navegador que accede a Goolge Maps mostrando la ubicación geográfica de esa estación base. La sintaxis de uso de la herramienta es:

$ ./tadbsl.sh --help
tadbsl.sh --MCC= --MNC= --LAC= --CI= [-s | --show_in_browser]
tadbsl.sh [-h | --help]
Description: this script asks Google for a particular Cellular Base Station Location and shows the Google's answer. (Based on the traffic analysis of Signal Cydia application
from PlanetBeing)

Arguments:
MCC: Mobile Country Code of the carrier owning the Base Station
MNC: Mobile Network Code of the carrier owning the Base Staion
LAC: Location Area Code of the Base Station
CI: Cell Identificator of the Base Station

Options:
-h | --help - Shows this help.
-s | --show_in_browser - If you specify this options the script will launch your browser with the obtained coordinates. You can configure your browser location in a configuration variable inside the script.

Un ejemplo de uso se presenta a continuación:

tad3@ubuntu:~/tadbsl$ ./tadbsl.sh --MCC=302 --MNC=720 --LAC=65010 --CI=48626 LOCATION: 49.1560525 , -123.1586519


Figura 7: Prueba de tadbsl.sh para localizar una estación

Descargar herramienta tadbsl.sh

============================================================
- Signal y la detección de estaciones base falsas (1 de 2)
- Signal y la detección de estaciones base falsas (2 de 2)
============================================================

No hay comentarios:

Publicar un comentario en la entrada

Artículos relacionados

Otras historias relacionadas

Entradas populares