Dispositivos móviles: vulnerabilidades

Aspectos generales

Los objetos conectados son cada vez más numerosos. En la actualidad, hay treinta mil millones de ellos. Estos son de diversa naturaleza, presentes en múltiples campos, tanto objetos cotidianos que ofrecen funcionalidades adicionales, como otros diseñados desde cero, creando así oferta y demanda. Entre ellos encontramos los terminales móviles.

Los precursores de los smartphones aparecieron a finales de los 90, pero no fue hasta 2007 cuando este mercado se expandió considerablemente con el lanzamiento del iPhone.

El smartphone es un teléfono multifunción compuesto por multitud de sensores, desde la cámara de fotos hasta el giroscopio. Sus usos son variados y sucede lo mismo, si no más aún, en la parte correspondiente al software.

De hecho, también es un auténtico ordenador de bolsillo, equipado con un sistema operativo especialmente diseñado para ejecutar aplicaciones. Incluye las clásicas para realizar llamadas o enviar SMS, así como muchas otras disponibles en las tiendas de aplicaciones para realizar acciones que hoy consideramos prácticamente imprescindibles, como navegar por la Web, la televisión, la geolocalización, etc.

Algunos piratas han entendido el alcance de la omnipresencia de los smartphones en nuestro día a día y en ese sentido pueden ser un objetivo privilegiado.

De hecho, estos terminales contienen...

Los vectores de ataque

1. Introducción

Los ataques dirigidos a smartphones son similares a los discutidos anteriormente en este libro, incluyendo aquellos que explotan vulnerabilidades en sistemas operativos (CVE). También existen la mayoría de los ataques web, que pueden atacar aplicaciones móviles, así como ataques a protocolos de comunicación de red como Wi-Fi o Bluetooth...

2. Anatomía de los ataques móviles

Como se ilustra a continuación, un ataque móvil puede involucrar la capa del periférico, la de red, el centro de datos o una combinación de estos elementos.

images/p704.png

Anatomía de los ataques móviles

En esta sección, presentamos las principales técnicas que utilizan los ciber atacantes para acceder, explotar o comprometer datos sensibles. Estos métodos incluyen ingeniería social, malware, explotación de vulnerabilidades de aplicaciones y ataques de red. Una visión general del OWASP Mobile Top 10 también ayudará a identificar las vulnerabilidades más críticas en aplicaciones móviles y los riesgos de seguridad resultantes.

3. Los datos objetivo

Los smartphones son ahora verdaderos documentos de identidad digitales. Tienen muchos sensores y contienen una gran cantidad de información personal, lo que los convierte en una verdadera mina de oro en cuanto a datos sensibles.

  • SMS

  • Llamadas

  • Localización...

Top 10 de las vulnerabilidades de los móviles

La OWASP (Open Web Application Security Project) vuelve a estar en el centro de atención en este libro. Su objetivo es concienciar a los desarrolladores sobre la seguridad de las aplicaciones móviles presentando las vulnerabilidades más frecuentes. Aquí se presentan brevemente los 10 puntos principales y se detallan más adelante en el capítulo.

1. Utilización incorrecta de los identificadores

Esta es una vulnerabilidad común en aplicaciones móviles donde las credenciales se gestionan mal, por ejemplo, siendo codificadas directamente en el código fuente, transmitidas de forma no segura o almacenadas de forma inapropiada en el dispositivo. Los atacantes pueden explotar fácilmente esta mala gestión de credenciales para obtener acceso no autorizado a funciones sensibles, lo que puede provocar filtraciones de datos, pérdida de privacidad de los usuarios, actividades fraudulentas y posible acceso a funciones administrativas.

2. Seguridad no adecuada de la cadena de aprovisionamiento

Esto se refiere a vulnerabilidades presentes en el proceso de desarrollo y distribución de aplicaciones móviles, que pueden ser explotadas por atacantes.

Estos fallos incluyen insertar código malicioso, comprometer las claves o certificados de forma de la aplicación para firmar código malicioso y así saber que es fiable. Además, un atacante puede explotar librerías vulnerables de terceros...

Red móvil

Desde la década de 1980, la red de telefonía móvil ha tenido muchas vulnerabilidades. Desde la explotación de la tarjeta SIM mediante comandos AT, hasta ataques al protocolo de firma SS7 y Diameter, o incluso a la propia red LTE con los ataques alTEr y reVoLTE. La aparición del 5G nos lleva a una nueva era, con un ancho de banda similar al de la fibra, pero también se supone que eliminará los errores del pasado en términos de seguridad.

1. Definiciones

images/13EP02.png

Red móvil

Como puede ver, es muy complicado hacer un esquema claro de toda la red de telecomunicaciones. Para resumir, nos basaremos en la red BSS (2G), que usaremos más adelante para nuestra demostración.

Un BSC (Base Station Controller) es un elemento que controla las transmisiones de radio de las estaciones base BTS (Base Transceiver Station). También se encarga de transferir los datos antes de enviarlos al teléfono móvil (ME), identificado por la tarjeta SIM (MS). Para ello, interactúa con el núcleo de la red (CN) del operador móvil: por un lado, con el SGSN (Serving GPRS Support Node) para transmitir los servicios multimedia que ofrece la red IMS (IP Multimedia Subsystem); por otro lado, con el MSC (Mobile service Switching Center) para la transferencia de voz y señalización recibida por la red SS7 encargada del procesamiento de llamadas, o el SMSC (Short Message Service Center) para el procesamiento de SMS.

Todo esto se hace después de verificar la identidad del terminal en función de la información contenida en las distintas bases de datos (AUC, HLR e EIR).

2. IMSI-catcher

Muchos ataques a esta red involucran...

Android

Android es un sistema operativo open source basado en el kernel de Linux. Fue diseñado en 2003 por Andy Rubin, Chris White, Nick Sears y Rich Miner. Google compró el proyecto en 2005 y comercializó la primera versión pública del sistema operativo preinstalado en el HTC Dream en septiembre de 2008.

1. Introducción

Como muestra el siguiente gráfico, en 2010 el sistema operativo de Google ya empezaba a dejar huella, con una cuota de mercado de telefonía móvil del 23,3 % en su poder. 

images/12ept6.png

Cuota de mercado de Android en 2010

En la conferencia anual "Google I/O" de 2019, que tiene como objetivo mostrar las nuevas características del sistema operativo, se anunció que el número de dispositivos Android activos alcanzó los 2.500 millones, convirtiéndolo en el sistema operativo más utilizado del mundo. Hoy en día, esa cifra ha subido a 3.000 millones. Android tiene un 75% de cuota de mercado en el segmento móvil.

images/12ept7.png

Cuota de mercado de Android en 2025 (https://gs.statcounter.com/os-market-share/mobile/worldwide/)

2. Las diferentes versiones

a. Introducción

Desde 2008, Android ha evolucionado significativamente, en particular para responder a una comunidad cada vez más grande. Estos desarrollos son tanto en términos de apariencia como de funcionalidad. De hecho, cada actualización introduce generalmente cuatro o cinco mejoras adicionales tanto de software como de hardware. En particular, estamos viendo la aparición de nuevas características proporcionadas por los distintos fabricantes que adoptan esta tecnología, como la cámara retráctil o la compatibilidad con distintos formatos de pantalla.

images/13EP09.png

Versiones de Android

b. Problemática

Esta variedad de hardware y versiones hacen pensar en fuertes restricciones sobre:

  • Google se debe esforzar por mantener un sistema lo más homogéneo posible para responder a las necesidades de cada individuo.

  • El seguimiento de las actualizaciones se ha hecho complejo y costoso para los fabricantes.

  • Del lado de los usuarios, la multitud de novedades y diferentes capas puede generar cierta confusión.

Todos estos factores provocan una fuerte disparidad entre las versiones terminales activas. 

images/p715.png

Reparto de las versiones de Android en febrero de 2021

Entre 2021 y 2024, la distribución de las versiones de Android...

Vulnerabilidades de las aplicaciones

De la estructura de las aplicaciones y su funcionamiento se puede deducir que estas son similares a las aplicaciones web. En el mercado hay disponibles millones de aplicaciones, entre ellas hay vulnerables. De hecho, es difícil diseñar una aplicación sin vulnerabilidades, más aún cuando el desarrollador no tiene formación en seguridad. En esta parte, veremos cómo explotar las vulnerabilidades de estas aplicaciones.

Para ello, adoptaremos el mismo razonamiento que durante una auditoría web (visto en los capítulos anteriores). También podemos utilizar metodologías OWASP y otras herramientas, para ello hay varias distribuciones disponibles.

1. Distribución

Como pentester, la fase de armado es importante y no debería perder tiempo auditando, descubriendo, actualizando y depurando estas herramientas. La distribución Kali Linux, que no necesita presentación, es bastante fiable en este ámbito, pero solo dispone de unas pocas herramientas para auditar aplicaciones móviles. Antes existían distribuciones dedicadas como Santoku Linux y Android Tamer, pero ya no están muy disponibles. Así que me propuse crear mi propia imagen en Docker. Sin embargo, debido a algunas limitaciones y al engorroso seguimiento de las actualizaciones de herramientas, decidí recurrir a la distribución Mobexler (https://www.mobexler.com/). Esta último está dedicado a la auditoría de aplicaciones móviles y es muy conocida. La última actualización fue en agosto de 2024, la distribución está basada en Ubuntu y cuenta con un gran número de herramientas, incluida el indispensable Android Debug Bridge.

2. ADB

Android Debug Bridge sigue siendo útil en esta sección gracias a sus diversas funciones adicionales.

El comando install se utiliza para instalar una aplicación en formato APK, como se mencionó antes, en un dispositivo conectado.

Otro comando: pm, es decir, package manager, permite interactuar con la aplicación instalada para conocer sus permisos, las librerías utilizadas, etc.

En el mismo orden de ideas, pero centrado en actividades, encontramos el comando am. Para obtener más información sobre cómo funciona, ejecute el siguiente comando: adb shell am help. Otros se presentarán...

Conclusión del capítulo

El propósito de este capítulo era presentar las principales vulnerabilidades de las redes de telecomunicaciones. Hemos abordado deliberadamente el tema de forma general, para animarle a profundizar en este ámbito por su cuenta, respetando el marco legal.

En cuanto a Android, las funciones y su seguridad han seguido creciendo en los últimos años. Al observar los resultados de StatCounter sobre la distribución de versiones, vemos una tendencia clara: Android 14 y 15 están ganando terreno gradualmente, mientras que Android 12 y 13 están disminuyendo lentamente. Aunque la estandarización del conjunto de aplicaciones de Android es más compleja que la de iOS, gracias a la diversidad de hardware, los desarrollos recientes muestran que esta brecha se está reduciendo, allanando el camino para una mejor armonización en un futuro próximo. Sin embargo, persisten las vulnerabilidades. La conciencia y el uso de guías como el MASVS de OWASP pueden ayudar a reducir la superficie de ataque de las aplicaciones y minimizar los impactos en la confidencialidad, integridad y disponibilidad. Esto es aún más crucial hoy en día, ante el aumento de los ciberataques.

Para asegurar el cumplimiento de las buenas prácticas de uso en las empresas, existen y se deben implementar soluciones de Mobile Device Management. En cuanto a la seguridad de...