ANÁLISIS DE APLICACIONES
Análisis de algunas de las aplicaciones más utilizadas en América Latina
Esta es una traducción del reporte original hecho por el becario Beau Kujath del Information Controls Fellowship Program, dirigido por la Universidad de Arizona y en colaboración con Citizen Lab y SocialTIC. El reporte original se puede leer aquí y los blogposts se pueden leer en los siguientes dos enlaces: CitizenLab, Open Tech Fund.
Introducción
Con la ayuda de SocialTIC, una organización de derechos digitales sin ánimo de lucro con sede en la Ciudad de México, hemos identificado 8 aplicaciones móviles que utilizan a diario cientos de millones de usuarios en la región. Cada una de las aplicaciones elegidas pertenece a una de las siguientes categorías: aplicación desarrollada por empresas de telecomunicaciones, aplicación desarrollada por el gobierno o aplicación con fines de comercio. Elegimos estas aplicaciones en particular porque los usuarios de la región a menudo se ven incentivados a descargarlas y mantenerlas instaladas en sus dispositivos personales mediante promociones, acceso a servicios públicos y por facilidad de uso. Por ejemplo, tres de las cuatro aplicaciones de telecomunicaciones analizadas ofrecen promociones de paquetes de datos a los clientes que descargan su aplicación móvil e inician sesión en ella desde su dispositivo. Dado que millones de usuarios necesitan tener estas aplicaciones instaladas en su dispositivo personal, queríamos investigar el estado de la seguridad y privacidad de ellas para asegurarnos de que los usuarios no sean vulnerables a amenazas.
Las aplicaciones que elegimos analizar se utilizan para servicios esenciales como la telefonía móvil, la respuesta a emergencias, la asistencia sanitaria, las transferencias de dinero y más. Utilizamos técnicas de ingeniería inversa, incluidos análisis estáticos y dinámicos, para comprobar si había problemas de seguridad o de privacidad importantes. A continuación, en la siguiente sección, se detalla la funcionalidad principal de cada aplicación. En la sección “Desglose de amenazas” aparecen las vulnerabilidades que buscamos.
- Aplicaciones de telecomunicaciones: MiTelcel, MiClaro, MiMovistar, MiTigo.
- Aplicaciones gubernamentales: IMSS Digital, SAT Móvil, MiPolicia.
- Aplicaciones de comercio: Mercado Libre, Chivo Wallet.
Aplicación | Desarrollador | Uso | Cuota de mercado/número de personas usuarias |
MiTelcel | América Móvil (telecomunicaciones) | gestiona tu plan celular Telcel (México) | posee el 62% de la cuota de mercado de servicios móviles en México desde 2022 |
MiClaro | América Móvil (telecomunicaciones) | gestiona tu plan de Claro desde 7 países diferentes | mayor proveedor de servicios móviles en América Latina, en Brasil tiene una cuota de mercado del 61% |
MiTigo | Millicom International (telecomunicaciones) | gestiona tu plan de móvil Tigo desde 8 países diferentes | mayor proveedor de telefonía móvil en Paraguay y Honduras, con más del 60% de cuota de mercado en cada uno de estos países. |
MiMovistar | Telefónica (telecomunicaciones) | gestiona tu plan celular Movistar desde 8 países diferentes | segundo mayor proveedor de telefonía móvil en México y Paraguay |
SAT Móvil | Gobierno de México | acceder a servicios en un espacio personalizado para contribuyentes a través de su RFC y Contraseña | única aplicación móvil oficial para que los ciudadanos mexicanos accedan a servicios y documentos fiscales |
IMSS Digital | Gobierno de México | agendar citas médicas y consultar el expediente de salud | única aplicación oficial del Instituto Mexicano del Seguro Social |
MiPolicía | Gobierno de México | Contactos con servicios de emergencias dentro de tu “cuadrante”. Funciona en la Ciudad de México. | más de 1 millón de descargas en Google Play Store |
Chivo Wallet | Gobierno de El Salvador | aplicación de monedero Bitcoin oficial del gobierno de El Salvador para intercambiar BTC y USD | se descubrió que alrededor del 33% de la población instaló la aplicación principalmente por la promoción de regalo de 30 dólares en BTC |
Mercado Libre | Mercado Libre | plataforma de comercio electrónico similar a eBay o Amazon | la mayor plataforma de comercio electrónico de América Latina, con una cuota de mercado superior al 50% |
Principales hallazgos
Encontramos problemas pertenecientes a cada una de las tres clases de amenazas comentadas en la sección “Desglose de amenazas” entre las 8 aplicaciones que analizamos. Enviamos dos notificaciones de vulnerabilidad a los desarrolladores de las aplicaciones por utilizar sistemáticamente elementos HTTP de texto plano en componentes importantes de sus aplicaciones. Encontramos casos de aplicaciones tanto de telecomunicaciones como de comercio que filtraban información personal de los usuarios a servidores de terceros, violando sus propias políticas de privacidad. También encontramos una aplicación capaz de utilizar la carga dinámica de código (DCL) para recuperar actualizaciones del código fuente de la aplicación fuera de los mecanismos típicos de actualización de la tienda de aplicaciones.
01.
La aplicación MiTelcel obtiene sistemáticamente tres imágenes y archivos JSON para la configuración splash a través de HTTP en texto claro.
02.
La aplicación SAT Móvil utiliza HTTP en texto claro para la página «Chat» que es responsable de comunicar información personal altamente sensible, incluyendo números de identificación de ciudadanos y contraseñas.
03.
La aplicación MiTelcel envía solicitudes POST a cinco servidores de terceros diferentes con información personal del usuario, incluidos su correo electrónico y su número de teléfono.
04.
La aplicación ChivoWallet comprueba los servidores CodePush de Microsoft cada vez que se abre para ver si hay una nueva actualización disponible.
05.
Tres de las cuatro empresas de telecomunicaciones envían mensajes SMS que incluyen enlaces externos vulnerables a ataques SSL.
Motivos
La seguridad de las aplicaciones móviles en toda la región es importante porque México tiene un largo historial de uso de recursos estatales para influir en los medios de comunicación y en el flujo de información en toda la zona. Los líderes políticos de todos los partidos utilizan cientos de millones de dólares de dinero estatal para hacer publicidad y, en algunos casos, incluso sobornar a medios de comunicación o periodistas específicos de toda la región, según Fundar, un grupo independiente de transparencia en México. El resultado es un entorno mediático en la región que permite a los funcionarios federales y estatales controlar las noticias y dictar lo que los medios de comunicación deben y no deben cubrir. Según un artículo del New York Times en el que se encuestó a diversos periodistas, reporteros y ejecutivos, dos tercios de los periodistas mexicanos admiten que se autocensuran para evitar estas cuestiones. La mayoría de los medios de comunicación de la región dependen del enorme gasto en publicidad del gobierno para mantener sus operaciones. Según el mismo informe, algunos secretarios de prensa del gobierno exigen abiertamente una cobertura de prensa positiva de determinadas organizaciones de noticias locales antes de firmar un nuevo contrato publicitario. El resultado es un panorama informativo y mediático en toda la región en el que los funcionarios federales y estatales dictan las noticias, diciendo a los medios de comunicación sobre qué pueden informar y sobre qué no.
Tanto a nivel federal como estatal, ha habido múltiples casos documentados de ciberataques dirigidos y vigilancia contra periodistas y activistas en la última década. El grupo mexicano de derechos digitales R3D (Red en Defensa de los Derechos Digitales) publicó un informe que identificó infecciones de malware Pegasus en dispositivos de periodistas y defensores de derechos humanos que tuvieron lugar entre 2019 y 2022. Un candidato de un partido político de oposición, Agustín Basave Alaní, también fue uno de los infectados con el malware en 2021. Esto ocurrió después de que el actual presidente de México dijera al público que el gobierno ya no utilizaría el spyware y que no habría más abusos. Recientemente, ha habido informes de vigilancia masiva de ciudadanos en toda la región. En 2020, The Citizen Lab publicó un informe sobre la relación, por parte de la Secretaría de Marina mexicana y el gobierno de la ciudad de Durango de la empresa de ciberespionaje Circles con el fin de llevar a cabo una vigilancia masiva de la población local. También han habido informes en Forbes México sobre la compra de una licencia de NeoLinx que incluía más de 130.000 geolocalizaciones de teléfonos celulares.
Recientemente, los cárteles de la droga de la región han empezado a utilizar ciberataques y operaciones avanzadas para avanzar sus intereses comerciales. Según un informe de The Guardian, funcionarios corruptos de México han ayudado a cárteles y otros grupos delictivos organizados a acceder a programas espía de última generación (Pegasus y muchos otros) que pueden utilizarse para piratear y espiar dispositivos móviles. Hasta 25 empresas privadas, entre ellas NSO Group de Israel y Hacking Team de Italia, han vendido software de vigilancia a las fuerzas policiales federales y estatales mexicanas. Algunas de las fuerzas policiales regionales y estatales que han adquirido oficialmente programas espía están acusadas de actuar en connivencia con los grupos delictivos a los que supuestamente deben enfrentarse con dichas herramientas y de vendérselas para que las utilicen contra sus adversarios.
La combinación de ciberataques selectivos por parte de las fuerzas criminales y estatales ha provocado una ola de violencia que ha convertido a México en el país más peligroso del mundo para los periodistas fuera de las zonas de guerra. Al menos 119 trabajadores de los medios de comunicación han sido asesinados en el país desde el cambio de siglo, según el Comité para la Protección de los Periodistas. Los reporteros de la zona temen que, a medida que aumente la prevalencia de estos ciberataques selectivos, el número de periodistas y activistas en el punto de mira aumente. Es de vital importancia que, a medida que los funcionarios del Estado, las fuerzas policiales y los grupos delictivos se convierten en amenazas cibernéticas más sofisticadas en la región, los usuarios no se expongan a aplicaciones móviles vulnerables que faciliten el ataque a sus dispositivos personales.
Desglose de amenazas
Hay tres tipos principales de amenazas a la seguridad y la privacidad que evaluamos en cada aplicación de nuestra lista:
- Seguridad de red deficiente: uso de tráfico de texto sin cifrar o esquemas o implementaciones de cifrado deficientes.
- Filtración de PII (información de identificación personal): envío de información personal del usuario fuera del dispositivo sin indicarlo explícitamente en la política de privacidad o en el acuerdo de usuario.
- Actualización externa: posibilidad de actualizar la funcionalidad de la aplicación fuera de los mecanismos de actualización de la tienda de aplicaciones de confianza.
La primera amenaza, una seguridad de red deficiente, permitiría a un adversario local o en el medio de comunicación (on-path) espiar o modificar el tráfico de red y, potencialmente, cambiar el comportamiento de la aplicación. Esto incluiría una aplicación que utilice tráfico en texto plano (sin cifrar), como HTTP, para comunicarse con servidores de aplicaciones y servicios de terceros. Esta amenaza también implicaría que cualquier enrutador de carga de datos (upstream), que esté en el medio (on-path) y que esté reenviando el tráfico del usuario, a menudo controlado por el ISP al que está conectado el usuario, es capaz de aprovecharse también de la debilidad en la seguridad de la red de la aplicación.
La segunda amenaza que evaluamos en cada aplicación es la filtración de información personal identificable. Esto ocurre cuando la información que puede utilizarse para confirmar la identidad de una persona, como su número de teléfono, correo electrónico, etc., se envía fuera del dispositivo a un servidor que no pertenece a los desarrolladores de la aplicación. La mayoría de las aplicaciones incluyen múltiples servicios de terceros en segundo plano que habilitan funcionalidades como pagos, análisis, engagement móvil, publicación de anuncios, supervisión de la salud de la aplicación, etc. Estos servicios de terceros no deben ser utilizados para fines comerciales y de lucro. Además, los servicios de terceros no deberían recibir información personal sobre usuarios individuales a menos que se haga explícito en la política de privacidad, la descripción en la tienda de aplicaciones o en los terḿinos y condiciones. Consideramos que una aplicación filtra información de identificación personal si en nuestro análisis dinámico se captura información personal que se envía a un servidor de terceros y la aplicación no explicita que los datos se están compartiendo.
La tercera amenaza es la posibilidad de realizar actualizaciones externas del APK fuera de la Google Play Store o la iOS App Store. Cada actualización que se envía a estas tiendas de aplicaciones oficiales es revisada por un equipo de confianza responsable de garantizar que no haya problemas de seguridad o privacidad en la nueva versión de la aplicación. Si una aplicación es capaz de actualizar su propio comportamiento y código sin pasar por esta verificación de la tienda de aplicaciones, lo consideramos una grave amenaza para el usuario. Por ejemplo, la aplicación podría actualizarse a una versión que rastree y publique la ubicación del usuario sin que el propietario del dispositivo lo sepa. Además, una aplicación con esta capacidad podría dirigir actualizaciones maliciosas a usuarios específicos sin que ellos sean conscientes de los cambios.
En 2018, la ACLU publicó un informe de asesoramiento que advierte a los desarrolladores de software que «los agentes del gobierno pueden tratar de obligarlos a crear o instalar software malicioso en los productos para ayudarles con la vigilancia.» El informe advierte que a medida que las empresas y las apps adoptan el cifrado, las demandas de los gobiernos irán en aumento para encontrar nuevas formas de implementar dispositivos de vigilancia. El informe menciona cómo las fuerzas de seguridad pueden intentar obligar a los desarrolladores a instalar código malicioso en las actualizaciones de las aplicaciones mediante una orden judicial. Además, en algunas jurisdicciones, si los desarrolladores protestan o se niegan, pueden incluir una orden de silencio que impida a los desarrolladores decir a nadie lo que se les ha obligado a añadir.
Ha habido varios casos de aplicaciones que han utilizado actualizaciones maliciosas para alterar su comportamiento y aprovecharse de los usuarios. En 2021, una aplicación de escaneado de códigos de barras con más de 10 millones de instalaciones se transformó en una aplicación «maliciosa» que enviaba publicidad a los dispositivos de las víctimas. En marzo de 2023, la app Pinduoduo, una de las plataformas de comercio electrónico más populares de China con más de 900 millones de usuarios activos mensuales, fue suspendida por problemas de seguridad de Google Play Store por incluir malware en el código fuente. Según investigadores de Ars Technica, la aplicación explotaba una vulnerabilidad de día cero en Android que le permitía realizar una escalada de privilegios para ganar cuota de mercado robando datos de los usuarios a sus competidores.
En el informe Threat Horizons de agosto de 2023, el Equipo de Acción de Ciberseguridad de Google (GCAT, por sus siglas en inglés) hablaba de las amenazas que utilizan una técnica denominada «versioning» para eludir la detección de malware de Google Play Store. En este método, el desarrollador publica una versión inicial de la aplicación que supera los controles de prepublicación de Google, pero más tarde, mediante la carga dinámica de código (DCL), la aplicación se actualiza desde un servidor controlado por el atacante para incluir funciones maliciosas. En mayo de 2023, la investigación de ESET encontró una aplicación de grabación de pantalla, «iRecorder – Screen Recorder», que permaneció sin ser detectada en la Play Store durante más de un año después de recibir una actualización maliciosa DCL que permitía a la aplicación espiar a sus usuarios.
Descripción de las aplicaciones seleccionadas
Antecedentes sobre las aplicaciones de telecomunicaciones
En 2013, América Móvil, propietaria tanto de Telcel como de Telmex, poseía el 75% del mercado mexicano de las telecomunicaciones, lo que llevó al Gobierno a impulsar importantes reformas antimonopolio y la creación de un regulador de las telecomunicaciones (IFT). En 2020, América Móvil, con sede en la Ciudad de México, sigue teniendo más del 70% de la cuota de mercado de telecomunicaciones del país con sus dos mayores entidades, Telmex y Telcel. Originalmente, el gobierno mexicano fue el único propietario de Telmex de 1972 hasta 1991, cuando vendió todas las acciones. Según datos recientes sobre transparencia, parece que el Estado mexicano y la empresa siguen estrechamente vinculados. De acuerdo con el regulador de telecomunicaciones (IFT) entre 2016 y 2017 Telmex y Telcel, ambas propiedad de la misma matriz América Móvil, entregaron datos el 100% de las veces que las autoridades lo solicitaron, según documentó Privacy International. Poco después de que se diera a conocer esta información, el IFT eliminó las obligaciones de transparencia que se detallaban en los Lineamientos de Colaboración en Materia de Seguridad y Justicia que obligaban a las empresas de telecomunicaciones a informar, cada 6 meses, sobre las solicitudes de datos de usuarios que hicieran las autoridades. Además, 30% de dichas solicitudes fueron hechas por autoridades no identificadas o que no tenían derecho legal a las solicitudes de datos de usuarios.
En México, el mercado de la telefonía está dominado por la marca Telcel, propiedad de América Móvil. Según Statista, en 2022 Telcel representaba aproximadamente el 76% de la cuota de mercado, seguida muy de lejos por AT&T y Movistar, cada una de las cuales controlaba alrededor del 10% del mercado en el país. Sin embargo, en el resto de América Latina, la participación del mercado de telefonía dentro de cada país varía significativamente. La marca de América Móvil que opera fuera de México, Claro, también controla la mayor parte del mercado latinoamericano con cerca del 43% de cuota según las estadísticas de ingresos de 2022. Le siguen el propietario de Tigo, Millicom, con el control del 19% y la empresa matriz de Movistar, Telefónica, con sólo el 5% del mercado.
Hemos decidido analizar y comparar las cuatro aplicaciones de gestión de telefonía móvil más populares cuya base de clientes principal se encuentra en América Latina. Esto incluye las dos marcas bajo las que opera América Móvil, Telcel y Claro, junto con las aplicaciones de Movistar y Tigo.
- MiTelcel: https://play.google.com/store/apps/details?id=com.speedymovil.wire
- MiClaro (Colombia): https://play.google.com/store/apps/details?id=com.clarocolombia.miclaro
- MovistarMx (México): https://play.google.com/store/apps/details?id=com.movistarmx.mx.app
- MiTigo (El Salvador): https://play.google.com/store/apps/details?id=com.juvomobileinc.tigoshop.sv
Aplicaciones de empresas de telecomunicaciones – MiTelcel, MiClaro, MiMovistar, MiTigo
El primer conjunto de aplicaciones analizadas en este proyecto fueron las aplicaciones cliente de los principales operadores de telecomunicaciones de la región latinoamericana: Telcel, Claro, Movistar y Tigo. Telcel, el proveedor de red nacional de América Móvil, sólo está disponible en México, por lo que sólo existe una versión de la aplicación «MiTelcel». Por otro lado, Claro, el proveedor hermano de Telcel, tiene 7 aplicaciones móviles diferentes disponibles en la Google Play Store que se dirigen a cada uno de los diferentes países en los que opera. Esto incluye «MiClaro Brasil», «MiClaro Argentina», «MiClaro Perú», y más. Las aplicaciones de MiMovistar son similares a las de Claro en el sentido de que existen 8 aplicaciones diferentes dependiendo del país desde el que el usuario acceda a la red. Cada una de las versiones se llama «MiMovistar» con el nombre del país a continuación además de las versiones «MovistarMx» y «Movistar Venezuela». MiTigo tiene 8 versiones diferentes de la aplicación dirigidas a diferentes países, pero como veremos con más detalle en la sección de conclusiones, son casi idénticas entre sí fuera del código de país utilizado en el nombre del paquete para cada una.
La principal funcionalidad de cada una de las aplicaciones de telecomunicaciones es que los usuarios puedan gestionar sus planes personales de telefonía móvil desde su dispositivo móvil. Esto incluye recargar el plan, gestionar los miembros del plan y pagar las facturas. La mayoría de las aplicaciones también ofrecen paquetes de datos adicionales que pueden añadirse en la aplicación, como un plan de 3 GB al mes o un plan de datos ilimitado. Cada aplicación tiene un proceso de registro e inicio de sesión en el que los usuarios deben introducir su número de teléfono personal de la operadora y su contraseña para registrarse y acceder a la gestión de su cuenta. Las aplicaciones y/o el proveedor de telefonía móvil suelen enviar mensajes SMS al dispositivo con promociones y códigos 2FA al iniciar sesión.
Aplicaciones gubernamentales – IMSS Digital, SAT Móvil, MiPolicía
El segundo grupo de aplicaciones que seleccionamos para analizar son aplicaciones ampliamente utilizadas y desarrolladas por el gobierno federal de México. Cada una de ellas tiene endpoints y nombres de paquetes que terminan con «gob.mx», que es la plataforma oficial del Gobierno de México.
IMSS es el Instituto Mexicano del Seguro Social que es una organización gubernamental que provee servicios de salud pública, pensiones y seguridad social en México y que opera bajo la Secretaría de Salud. Forma parte integral del sistema sanitario mexicano. De acuerdo con el sitio oficial «imss.gob.mx», la aplicación IMSS Digital es una «estrategia para evolucionar al IMSS y adaptarlo a la nueva realidad de servicios digitales, a través de un nuevo modelo de atención, con la implementación de canales modernos». Permite a los usuarios agendar servicios médicos incluyendo citas de medicina familiar, alta o cambio de clínica, registro de incapacidades, obtener constancia de no derechohabiencia, obtener permisos de Covid, y más, todo registrándose con la CURP (Clave Única de Registro de Población) y correo electrónico del usuario. La app cuenta con más de 10 millones de descargas en la Google Play Store y una calificación de los usuarios de 4.5 sobre 5.
La aplicación SAT Móvil es la más reciente del Servicio de Administración Tributaria en México. De acuerdo con la descripción de la Google Play Store, ofrece servicios digitales personalizados para los contribuyentes junto con «la consulta de los documentos con mayor demanda en la oficina de atención: Cédula del Contribuyente, Constancia de Situación Fiscal y Certificados de firma y sellos digitales activos.» Cada usuario deberá iniciar sesión con su RFC y contraseña para acceder a su portal de gestión personal. La aplicación cuenta con más de 1 millón de descargas a través de la Play Store.
MiPolicía es una aplicación de seguridad civil que se utiliza principalmente dentro de la Ciudad de México para contactar a los servicios de policía en caso de emergencia. El objetivo principal de MiPolicía es poder avisar a la policía más cercana ubicada en alguno de los 126 «cuadrantes» policiales de la ciudad, al tiempo que se comparte la ubicación desde el dispositivo. Al hacerlo, los socorristas tendrán acceso a esta información. La página de inicio de la aplicación tiene un mapa interactivo de la zona con la ubicación de las principales comisarías y puntos de referencia. El usuario puede activar el gran botón rojo «Emergencia» en la parte inferior de la pantalla para empezar a compartir la ubicación con la policía ubicada en el cuadrante en el que se encuentre. La aplicación oficial de emergencias de la Policía de la Ciudad de México cuenta con más de un millón de descargas y una puntuación de 4,1 sobre 5 en la Play Store.
- IMSS Digital: https://play.google.com/store/apps/details?id=st.android.imsspublico
- SAT Movil: https://play.google.com/store/apps/details?id=mx.gob.sat
- MiPolicia: https://play.google.com/store/apps/details?id=com.moobky.MiPolicia
Aplicaciones de comercio – Chivo Wallet
La aplicación Chivo Wallet es la billetera oficial de Bitcoin y dólares estadounidenses del Gobierno de El Salvador. Permite a los ciudadanos enviar y/o recibir pagos en Bitcoin y dólares estadounidenses a través de la aplicación móvil. También permite a los usuarios convertir fácilmente entre BTC y USD y retirar y depositar fondos en la aplicación. Elegimos esta aplicación porque muchos ciudadanos del país se ven obligados a utilizarla, ya que es la aplicación de monedero oficial del gobierno que fue fuertemente impulsada por funcionarios del gobierno durante su lanzamiento en septiembre de 2021. Esto convirtió al país en el primero del mundo en convertir el Bitcoin en moneda de curso legal. Según el informe de RestOfWorld en 2022, alrededor de la mitad de los salvadoreños encuestados han instalado Chivo Wallet. La aplicación incluso ofrecía un «bono» de Bitcoin para incentivar a los nuevos usuarios a registrarse para reclamar sus fondos gratuitos. Ha habido serios problemas de seguridad con la aplicación, incluyendo informes de que muchos salvadoreños han visto sus identidades utilizadas por piratas informáticos para crear nuevas cuentas en la aplicación bajo su nombre y número de identificación de DUI. La aplicación tiene más de un millón de descargas en Google Play Store y una puntuación de 3,1 sobre 5.
Chivo Wallet: https://play.google.com/store/apps/details?id=com.chivo.wallet
Aplicaciones de comercio – MercadoLibre
Mercado Libre es la plataforma de comercio electrónico líder en América Latina con una aplicación móvil que tiene más de 100 millones de descargas en la Google Play Store. La aplicación tiene una funcionalidad similar a eBay o Shopee, pero está orientada a clientes de toda América Latina. Se trata de un mercado en línea puro, lo que significa que la plataforma no vende ningún producto propio. La plataforma opera en 18 países y recibe más de 668 millones de visitas al mes. En cuanto se abre la aplicación o la página principal del sitio web, el usuario puede elegir entre una lista de países de América del Norte, América Central y América del Sur en donde se encuentra. Cada usuario tiene la posibilidad de registrar una cuenta en cualquiera de estos países para comprar o vender productos. Dado que MercadoLibre es el mayor ecosistema de comercio electrónico y pagos de América Latina, millones de usuarios confían cada día en que la aplicación sea segura desde el punto de vista de la seguridad y la privacidad.
Mercado Libre: https://play.google.com/store/apps/details?id=com.mercadolibre
Hallazgos en aplicaciones de telecomunicaciones
Las aplicaciones de Claro, Movistar y Tigo tienen varias versiones diferentes dependiendo del país al que se dirijan. Por ejemplo, hay ocho aplicaciones diferentes de Movistar disponibles en la Google Play Store que incluyen MiMovistar Argentina, MiMovistar Ecuador, MovistarMX y más. Hemos comprobado que el código fuente de las ocho aplicaciones de Tigo es prácticamente idéntico, salvo por el código de país utilizado en el dominio en el archivo del manifiesto. En las aplicaciones de Claro y Movistar, por otro lado, encontramos que los permisos utilizados, los servicios de terceros incluidos y los servidores varían significativamente dependiendo del país para el que está hecha la aplicación. Por ejemplo, la aplicación MiMovistar Argentina solicita acceso a todos los permisos relacionados con las llamadas telefónicas, mientras que la aplicación MiMovistar Uruguay no lo hace. A continuación, enumeramos cada uno de los principales hallazgos de las aplicaciones de telecomunicaciones y luego los analizamos con más detalle.
Problemas de seguridad y privacidad encontrados
MiTelcel texto plano | El tráfico en texto plano (HTTP) se utiliza sistemáticamente en la página principal de la aplicación para cargar varias imágenes y archivos JSON. |
MiTelcel filtración de datos de identificación personal | La aplicación envía mensajes a cinco terceros distintos con información personal del usuario, como su nombre, correo electrónico y número de teléfono a través del campo «referer» de HTTP. |
MiTelcel, MiTigo, MiClaro, MiMovistar | Estas aplicaciones envían mensajes SMS a los dispositivos con enlaces externos vulnerables a los ataques SSL strip. |
MiClaro Colombia | Utiliza el método POST para enviar información de localización del dispositivo antes de que los usuarios acepten el permiso. |
Tabla 1: Resumen de los problemas encontrados en las aplicaciones de telecomunicaciones analizadas.
En las aplicaciones de telecomunicaciones encontramos ejemplos de dos de las tres clases principales de amenazas que examinamos en cada aplicación. La aplicación MiTelcel, con más de 10 millones de descargas, es vulnerable a las amenazas de seguridad de red deficiente y de filtración de información personal. La aplicación envía solicitudes HTTP de texto plano para descargar imágenes que se muestran en la página principal de la aplicación y que podrían permitir a un atacante en el medio inyectar su propia imagen para engañar al usuario para que siga instrucciones maliciosas, como por ejemplo, un enlace malicioso para el cambio de contraseña. En la figura 1 se muestra un ejemplo de esta inyección de imágenes en la aplicación real (versión de marzo de 2023).
Figura 1: Imagen falsa del atacante inyectada y mostrada en la pantalla de inicio de MiTelcel.
Además, las cuatro aplicaciones de telecomunicaciones que analizamos enviaron mensajes SMS directamente al dispositivo móvil que incluían enlaces externos que no estaban protegidos con HTTPS. Por lo general, si el usuario hace clic en estos enlaces, el servidor responderá con un mensaje de redirección 301 a la dirección web segura TLS (antes SSL). Sin embargo, si hay un atacante en el medio utilizando un ataque SSL strip podría degradar la conexión a texto claro HTTP y espiar el contenido de cada paquete. Estas conexiones pueden incluir información altamente sensible incluyendo el número de teléfono del usuario, contraseña e información de pago dependiendo de si están recargando el plan o ingresando a su cuenta.
También detectamos que MiTelcel enviaba solicitudes POST a cinco servicios de terceros diferentes en los que se filtraba información personal, como el número de teléfono y el correo electrónico del usuario en el campo HTTP «referer». En la figura 2 se muestra un ejemplo de este problema. Estas solicitudes se envían cada vez que un usuario de la aplicación hace clic en la pestaña «Experiencias» situada en la esquina inferior de la barra de herramientas principal. En nuestro análisis dinámico de la aplicación «MiClaro Colombia», observamos que la aplicación envía información de localización precisa con la latitud y longitud del dispositivo antes de que el usuario otorgue el permiso pertinente a la aplicación. Consideramos esta vulnerabilidad como una filtración de IIP, ya que el usuario no ha consentido el envío de dicha información.
Figura 2: Captura de mitmproxy de una de las cinco solicitudes GET enviadas a un servidor de terceros desde la aplicación MiTelcel que incluye la IIP en la URL del campo «referer». Esta solicitud se activa al hacer clic en la pestaña «Experiencias» en la parte inferior derecha de la aplicación.
Encontramos un par de problemas de seguridad que pueden ser resueltos por los desarrolladores de las aplicaciones de telecomunicaciones, incluyendo el envío de información en texto plano utilizado en MiTelcel y los enlaces web a través de mensajes SMS enviados a los dispositivos que un atacante en el medio podría utilizar para eliminar el cifrado por medio de SSL. En marzo de 2023 se envió a los desarrolladores de MiTelcel una notificación oficial de vulnerabilidad con demostraciones del problema.
Además, se encontraron problemas de privacidad en algunas de las aplicaciones de telecomunicaciones, como el envío de información personal con terceros (MiTelcel y MovistarMx) y la filtración de la ubicación antes de que se concediera el permiso (MiClaro Colombia). Las aplicaciones de Tigo fueron las menos invasivas en cuanto a los permisos solicitados a los usuarios, los terceros con los que se comunica y el hecho de que el código fuente es prácticamente idéntico para cada versión de la aplicación en los distintos países en los que opera.
Hallazgos en aplicaciones gubernamentales
Entre las tres aplicaciones gubernamentales que analizamos, hubo muchos menos problemas de seguridad y privacidad en comparación con las aplicaciones de telecomunicaciones. Una razón de esto es que las aplicaciones de telecomunicaciones tienen múltiples servicios de terceros incluidos para implementar diversas funcionalidades tales como geofencing, marketing móvil, análisis, engagement del usuario, y más. Las aplicaciones gubernamentales no tratan de maximizar el engagement y los ingresos de la misma manera, y no incluyen prácticamente ningún servicio de terceros en las aplicaciones, aparte de servicios muy estándar como la capacidad de comunicarse con bases de datos Firebase.
Problemas de seguridad y privacidad encontrados:
SAT Movil texto plano | Tráfico en texto plano (HTTP) utilizado sistemáticamente para la página «Chat» de la aplicación, que maneja datos extremadamente sensibles como números de identificación, contraseñas y otra información personal. |
IMSS Digital (requiere acceso «sistema»/root por lo que no es una vulnerabilidad) | Guarda un archivo de texto plano en la carpeta de la aplicación en el dispositivo con toda la información personal recopilada por la aplicación, incluidos diagnósticos médicos, números de identificación, citas médicas, etc. |
Tabla 2: Resumen de los problemas detectados en las aplicaciones gubernamentales analizadas.
En las aplicaciones gubernamentales sólo encontramos una de las tres clases principales de amenazas que buscamos. La aplicación SAT Móvil utiliza sistemáticamente una seguridad de red deficiente y obtiene componentes de la aplicación a través de HTTP en texto plano. La página «Chat», específicamente dentro de la aplicación, siempre se manda y recibe información a través de HTTP, lo cual es un problema grave para los usuarios de la aplicación, ya que en la página se intercambia información muy sensible. El menú desplegable de «Chat» en la aplicación permite a los usuarios seleccionar entre múltiples opciones, incluyendo «Declaración Anual Personas Físicas», «Cedula de Identificacion Fiscal», «Solicitud de datos del RFC de trabajadores», «Trámites Fiscales», y algunas más. Una vez seleccionada una opción, el usuario suele ser redirigido a otra página en la que se solicitan diversos datos personales sensibles que pueden incluir su número de CURP, RFC, correo electrónico, nombre, dirección y, con frecuencia, contraseña. En julio de 2023 se envió a los desarrolladores del SAT Móvil una notificación de seguridad con evidencia del problema.
Un atacante en el medio podría utilizar las conocidas técnicas de SSL strip para degradar la totalidad de la conexión al «chat.gob.mx» a HTTP en texto plano. Esto permitiría al atacante espiar toda la información que se envía a través de esta conexión, que muy probablemente incluirá datos personales que podrían utilizarse para robar la identidad de la víctima o secuestrar su cuenta fiscal personal. En las figuras 3 y 4 se muestra una demostración de lo sencillo que es aprovecharse de esta vulnerabilidad. En el enlace bajo la imagen se muestra un vídeo completo del ataque en acción. Se envió una notificación oficial a los desarrolladores de SAT Móvil con información sobre la vulnerabilidad y cómo solucionarla.
Figura 3: Captura de pantalla de una de las páginas de chat que se abre y en la que se introducen datos personales durante un ataque sslstrip.
Figura 4: Captura de pantalla del resultado del uso de sslstrip en las comunicaciones de red de SAT Móvil; a la izquierda, la información sensible se muestra en texto plano en Wireshark, a la derecha, la información sensible se muestra en la terminal del atacante.
Vídeo de demostración del ataque SSL strip en la aplicación SAT Móvil en la página «Chat»: https://drive.google.com/file/d/1WwqxQQ0mKKJYkOTSSGOXchVJobioMUhL/view?usp=sharing.
La aplicación IMSS Digital mantiene un archivo no cifrado en el dispositivo móvil con toda la información personal que la aplicación recopila, incluyendo los números de identificación del usuario, historial médico y diagnóstico, historial de nacimiento y más. Este archivo se almacena dentro de la carpeta de la aplicación en el dispositivo, y requiere permisos del sistema para acceder, por lo que no consideramos que esto sea un problema de seguridad. Mientras el usuario no tenga un dispositivo rooteado, un atacante no podría acceder al archivo a menos que obtuviera permisos del sistema por sí mismo. La aplicación no incluye ningún servicio en segundo plano de terceros, aparte de algunos servicios de Firebase que permiten a las aplicaciones recibir notificaciones push sobre citas médicas programadas a través de la aplicación.
La aplicación MiPolicia no incluye ningún permiso que pueda considerarse potencialmente «peligroso», aparte del acceso a la localización precisa y en segundo plano, junto con la capacidad de realizar llamadas telefónicas. Estos tres permisos se utilizan para funcionalidad principal de la aplicación, donde un usuario puede activar la función de «Emergencia» en la aplicación y esta hará una llamada a la comisaría de policía del Cuadrante más cercano. En ese momento, la aplicación empezará a compartir la ubicación en segundo plano y la ubicación precisa del dispositivo con los servidores de la aplicación a los que podrá acceder la comisaría del cuadrante a la que se haya llamado. No se han detectado problemas significativos de seguridad o privacidad en la aplicación MiPolicía.
Hallazgos en aplicaciones de comercio – ChivoWallet, MercadoLibre
No hemos encontrado ningún problema de seguridad de red en las dos aplicaciones de comercio que hemos analizado. Las aplicaciones siguen las mejores prácticas de seguridad y no permiten que se utilice ningún tráfico de red en texto plano en las aplicaciones que utilizan una API de Android de alto nivel. Mercado Libre utiliza tres servicios de terceros en segundo plano: Braze para captar clientes, AppAdjust para análisis y Bitmovin para reproducir vídeos en la aplicación. Chivo Wallet, por otro lado, solo incluye servicios en segundo plano que le permiten comunicarse con Huawei Mobile Services (HMS) y servicios de mensajería Firebase para comunicarse con la app construida con React Native.
Problemas de seguridad / privacidad encontrados:
Chivo Wallet actualización externa | Incluye el servicio Microsoft CodePush que podría usarse para actualizaciones externas de la aplicación. |
Chivo Wallet filtración de actividad | Hace una llamada POST a un servidor de análisis de NewRelic con detalles de eventos dentro de la aplicación que incluyen la información exacta que escriba cada usuario, como su número de identificación, número de teléfono y contraseña. |
Mercado Libre filtración de actividad | Hace llamadasPOST a tres terceros (TikTok, Facebook y Google) con información sobre cada producto en el que se hace clic en la aplicación. |
Tabla 3: Resumen de los problemas de seguridad y privacidad detectados en las aplicaciones de comercio analizadas.
Cada vez que se abra la aplicación Chivo Wallet hace una petición a «codepush.appcenter.ms/b0.1/public/codepush/update_check?…» que es responsable de decirle a la aplicación si hay una nueva versión desplegada de la aplicación a la que debe actualizarse a través de el servicio CodePush de Microsoft. Según el GitHub oficial de CodePush, se trata de «un servicio en la nube que permite a los desarrolladores de Cordova y React Native desplegar actualizaciones de aplicaciones móviles directamente a los dispositivos de sus usuarios. Funciona como un repositorio central en el que los desarrolladores pueden publicar actualizaciones (JS, HTML, CSS e imágenes), y que las aplicaciones pueden consultar para actualizarse». Esta funcionalidad permite a los desarrolladores de Chivo Wallet (gobierno de El Salvador) enviar actualizaciones arbitrarias a las aplicaciones sin tener que pasar primero por el proceso de actualización de la Google Play Store o Apple Store.
La aplicación Chivo Wallet realiza llamadas POST constantes a los servidores de NewRelic, una popular empresa estadounidense de seguimiento y análisis web.
Esto permite a las aplicaciones móviles realizar un seguimiento de las interacciones de los usuarios y del rendimiento de la aplicación. La aplicación Chivo envia registros de todos los eventos que se produzcan en la aplicación a un endpoint en «log-api.newrelic.com». Esto incluye eventos dentro de la aplicación, desde que un usuario hace clic en una nueva página hasta que teclea su número de identificación. Toda esta información basada en eventos se envía a los servidores de NewRelic con el cuerpo del POST conteniendo datos sobre el evento que pueden incluir información personal del usuario, como su número de DUI que se escribió en el recuadro de texto de la página de registro. Aunque estos registros de NewRelic deben ser gestionados por los desarrolladores de Chivo Wallet, no se aclara en la política de privacidad que esto se está llevando a cabo en segundo plano.
La aplicación MercadoLibre realiza tres llamadas POST diferentes a servidores de terceros cada vez que un usuario hace clic en un producto en la aplicación. Se envia información sobre el nombre del artículo y la URL en la que se encuentra a los servidores de TikTok analytics, Google analytics y Facebook cada vez que se visita un artículo. Este comportamiento no es infrecuente entre aplicaciones similares. La aplicación Amazon Shopping, por ejemplo, indica en la sección «Seguridad de los datos» de Google Play Store que la aplicación comparte la «Actividad de la aplicación» con terceros. Sin embargo, la sección de Seguridad de Datos de la aplicación MercadoLibre no deja claro este comportamiento y no se menciona en la política de privacidad detallada de la aplicación. Por lo tanto, consideramos que la aplicación filtra información personal de comportamiento, que muy probablemente se utiliza para mostrar productos y anuncios más relevantes en esas plataformas de terceros. Es probable que la información que se envía no sea información personal identificable, a menos que los modelos de Mercado Libre fueran capaces de predecir de forma consistente qué persona tiene más probabilidades de acceder a un conjunto de productos dados.
Entorno de ingeniería inversa
Uno de los principales objetivos de este proyecto era crear un repositorio como punto de partida para cualquier persona que requiera realizar ingeniería inversa y análisis de un APK. Las instrucciones para configurar y desplegar un entorno de ingeniería inversa incluyen todas las herramientas utilizadas para el análisis estático y dinámico de este proyecto y se adjuntan en el enlace de Github. El repositorio incluye instrucciones sobre cómo configurar un entorno de análisis dinámico con «mitmproxy» que se utiliza para capturar y descifrar el tráfico HTTPS de un dispositivo móvil. Hay detalles sobre cómo configurar Frida, un conjunto de herramientas de instrumentación de código dinámico, para poder vincular llamadas a funciones en vivo e inyectar código Javascript personalizado en aplicaciones móviles. En el archivo READ.me principal hay instrucciones sobre cómo utilizar Frida y mitmproxy juntos para eludir el candado de una aplicación que utiliza SSL pinning y ver el tráfico en texto plano de la aplicación.
El repositorio también incluye instrucciones para configurar las principales herramientas de análisis estático que se utilizaron durante este proyecto. Hay scripts en bash que instalan Jadx y apktool para permitir al analista decompilar cualquier APK que se le entregue. También hay pequeños scripts en bash que analizan el AndroidManifest del APK decompilado para recuperar un archivo de texto legible por humanos con los permisos importantes, servicios, receptores y detalles del archivo de manifiesto de red utilizado. El repositorio también incluye secuencias de comandos para ayudar a configurar Genymotion para crear un dispositivo móvil virtual que se puede utilizar para probar el APK sospechoso si no se tiene un dispositivo físico a la mano. Por último, hay instrucciones detalladas sobre cómo «rootear» un dispositivo Android que ejecute Android 13 con Magisk. Las instrucciones también detallan el proceso de instalación de un certificado raíz de «mitmproxy» en el dispositivo Android físico y rooteado para poder descifrar el tráfico que sale del dispositivo.
Conclusiones
Incluso en los dispositivos móviles modernos que ejecutan los sistemas operativos más nuevos, las aplicaciones instaladas todavía tienen el potencial de exponer el dispositivo a problemas de seguridad que llevan décadas existiendo. Las principales aplicaciones utilizadas por decenas de millones de usuarios siguen utilizando tráfico HTTP de texto plano en sus componentes, como se detalló en las aplicaciones de telecomunicaciones y gubernamentales que analizamos. Aunque Android e iOS han intentado dificultar el uso de cualquier tipo de tráfico de red en texto plano en las aplicaciones, todavía existen técnicas para que los desarrolladores puedan evitarlo declarando de manera explícita los dominios en los que se puede utilizar el texto plano. Además, todas las aplicaciones de empresas de telecomunicaciones que hemos analizado, excepto una, envían enlaces SMS al dispositivo del usuario que son vulnerables a las técnicas de SSL strip, mediante las cuales un atacante puede degradar la conexión a texto plano y espiar la información intercambiada.
Además, estas aplicaciones suelen recabar información personal identificable de los usuarios, que sólo debería enviarse a servidores de aplicaciones o de terceros a los que el usuario haya dado explícitamente su consentimiento a través de la política de privacidad de la aplicación o de los términos y condiciones. Sin embargo, por error de los desarrolladores o por falta de transparencia, observamos que dos de las cuatro aplicaciones de las aplicaciones de las empresas de telecomunicaciones filtran estos datos a terceros. Las empresas y los desarrolladores que desarrollan estas aplicaciones deben asegurarse de que no están exponiendo a sus propios clientes y ciudadanos a amenazas cibernéticas por el simple hecho de descargar una aplicación que se les incentiva a utilizar. Los desarrolladores de estas aplicaciones deben resolver las notificaciones de vulnerabilidades graves como las dos que se enviaron a MiTelcel y SAT Móvil de manera oportuna. Hasta septiembre de 2023, no hemos recibido ninguna respuesta a las dos notificaciones de vulnerabilidad enviadas.