Ataque de denegación de servicio en redes 2G

lunes, 31 de marzo de 2014

La técnica descrita en esta entrada fue propuesta en 2010 por Sylvain Munaut. Aunque una denegación de servicio suene a aprovechamiento de algún fallo o recursos agotados, realmente esta técnica no viola ningún principio de la arquitectura 2G y es perfectamente viable. Se trata de un ataque dirigido que se fundamenta en una idea muy sencilla. El atacante suplanta la identidad del usuario y envía un mensaje de IMSI detach a la red. De esta manera, la red marca a la MS del usuario como detached, y por tanto inalcanzable.

En post anteriores hemos visto cómo llevar a cabo ataques man in the middle en redes GSM. Una vez que las comunicaciones entre la víctima y la red pasaban por la estación base falsa que el atacante había configurado, se podía hacer prácticamente cualquier cosa, desde simplemente intervenir la comunicación, hasta robar información vía ingeniería social suplantando a entidades oficiales o realizar una denegación de servicio. Pero este ataque que vamos a describir realizará una denegación de servicio sin necesidad de complejos recursos, sino aprovechando un punto débil del protocolo.

El IMSI (International Mobile Subscriber Identity) es un número que identifica de forma única a un usuario de una red móvil. Este dato es confidencial, puesto que a partir de él es posible averiguar información sobre el usuario, incluyendo su localización. Por esta razón se almacena solo en la SIM y en la red (y no en las estaciones base). Para "protegerlo", la norma recomienda el empleo de un identificador temporal o TMSI en su lugar. Sin embargo, ya hemos descrito que bajo determinadas circunstancias una estación base puede forzar el envío del IMSI en claro.

IMSI attach procedure

El IMSI attach procedure es un procedimiento de registro del terminal móvil en la red. Tiene lugar fundamentalmente bajo dos circunstancias: cuando el móvil se enciende (es decir, pasa a estado activo) o cuando el móvil entra en una zona de cobertura. En el registro de ubicación de visitante (VLR, Visitor Location Register), la MS se marca con el flag attached, que indica que el terminal móvil es alcanzable por la red y por tanto puede enviar y recibir llamadas. Este procedimiento, en detalle, requiere los siguientes pasos: 
  • Al encenderse, la MS del usuario envía a la estación base más cercana un mensaje Channel Request solicitando un canal dedicado. Esta petición la realiza a través del canal común (RACH, Random Access Channel).
  • La red asigna un canal dedicado a la MS (SDCCH, Stand-alone Dedicated Control Channel) y se lo notifica con un mensaje de asignación de canal.
  • Una vez el canal está establecido, la MS envía un mensaje IMSI attach request hacia la estación base, que lo reenvía al MSC y después al VLR. El VLR marca el IMSI como attached y envía un mensaje IMSI attach acknowledge al MSC, que lo redirige de vuelta a la BS y por tanto a la MS.
  • El MSC envía un mensaje Clear Command para forzar la liberación del canal SDCCH asignado a la MS.

IMSI attach procedure. Fuente: www.iosrjen.org

IMSI detach procedure

El proceso contrario, en el que una MS "sale" de la red, se conoce como IMSI detach procedure, y es la clave de este ataque. Se produce en dos casos: si se apaga el terminal móvil o si se extrae la SIM. Al igual que en el IMSI attach, cuando se produce este evento el VLR marca a la MS con el flag detached, indicando que ya no es alcanzable por la red. Cuando una MS está detached, no puede transmitir, recibir... ni tampoco recibe los mensajes broadcast de paging de las estaciones base. De esta manera, la red no desperdicia recursos intentando contactar con MS apagadas. El procedimiento consta de unos pasos equivalentes a los del IMSI attach:

  • Al apagarse la MS envía una petición de asignación de canal dedicado a través del RACH.
  • La BS asigna un canal dedicado (SDCCH) a la MS y se lo notifica a través del canal AGCH (Access Grant Channel).
  • Con el canal ya establecido la MS envía un IMSI detach request a la estación base, que lo reenvía al núcleo de la red. El VLR actualiza el flag, y notifica al HLR que el terminal móvil ya no está registrado mediante un mensaje Deregister Mobile Subscriber.
  • El HLR marca la MS como “no registrada” y contesta al VLR con un “Deregistration Accepted”. El VLR envía un mensaje IMSI detach acknowledge de vuelta al MSC. Este mensaje no se retransmite a la MS, porque en este punto ya se habrá apagado.
  • Por último, el MSC envía un Clear Command para liberar el canal SDCCH asignado a la MS.

IMSI detach procedure. Fuente: www.iosrjen.org

La técnica de ataque

El primer punto crítico es que el atacante necesita conocer el IMSI de la víctima. Para ello puede valerse de la infraestructura descrita en el post de ataques MITM: con una estación base falsa a modo de IMSI catcher, el atacante puede elaborar listas de IMSIs en varias localizaciones donde tenga la certeza de que se encuentra el usuario y cruzarlas posteriormente para determinar el IMSI deseado. Aunque siempre existe la alternativa (mucho más sencilla) de utilizar un servicio online que permita consultar HLRs.

Servicio de consulta de HLRs de telesigmobile.com. Fuente: coseinc.com

Superada esta dificultad, el siguiente paso consiste en suplantar el móvil de la víctima frente a la red. Esto requiere una mínima inversión y algunos conocimientos técnicos. Para la parte software se utiliza la herramienta libre OsmocomBB, que corre sobre Linux, y en cuanto al hardware basta con disponer de un terminal móvil con procesador de banda base Calypso y chipsets Rita e Iota para demodulación y conversión DA (por ejemplo los Motorola modelo Cxxx, aunque hay más terminales compatibles).

Placa de circuito impreso de un Motorola C123. Fuente: bb.osmocom.org
La idea es sustituir el firmware del teléfono con la pila de protocolos GSM modificada que implementa OsmocomBB. Las modificaciones que incluye permiten establecer canales de control, inyectar información de señalización en ellos (justo lo que el atacante quiere en este caso), y por supuesto generar tráfico de voz y datos.

Una vez el atacante ha configurado correctamente su infraestructura, debe desplazarse al mismo Location Area (conjunto de celdas gestionadas por un mismo VLR) donde se encuentra la víctima. En este momento, el VLR de esa LA tiene marcado el IMSI de la víctima como attached. El atacante, con su móvil correctamente caracterizado, fuerza el envío de un mensaje IMSI detach. El VLR recibe el mensaje y cambia el flag del IMSI de la víctima a detached. Además, el HLR marca la MS como "no registrada", con lo que ya no recibirá mensajes de paging de la red. La víctima en ningún momento es consciente del ataque, puesto que como hemos visto, el IMSI detach aknowledge nunca se retransmite hacia su MS, sino que se queda en el MSC porque se da por supuesto que la MS estará ya apagada. Al llegar a este punto, la víctima quedará sin cobertura, por estar "apagada" a ojos de la red... y no podrá enviar ni recibir llamadas.

En este vídeo, el propio descubridor del problema expone el fallo (en 41 minutos) en la DeepSec de 2010.



Cristóbal Bordiú
cristobal.bordiu@11paths.com

No hay comentarios:

Publicar un comentario en la entrada