Una investigación exhaustiva sobre cómo los desarrolladores engañan a la revisión de la App Store para aprobar aplicaciones maliciosas.

Una investigación exhaustiva sobre cómo los desarrolladores engañan a la revisión de la App Store para aprobar aplicaciones maliciosas.

Técnicas utilizadas por desarrolladores para evadir la revisión de la App Store

Recientemente informamos sobre cómo varias aplicaciones de piratería para iOS lograron ser aprobadas en la App Store engañando el proceso de revisión. Aunque mencionamos brevemente algunas de las técnicas utilizadas por estos desarrolladores, ahora nos sumergimos en cómo estas aplicaciones están diseñadas para engañar a Apple.

El mes pasado, una aplicación llamada «Collect Cards» alcanzó el primer puesto en el ranking de las aplicaciones gratuitas más descargadas de la App Store en algunos países. Después de nuestro informe, Apple eliminó la aplicación, pero muchas otras versiones de la misma aplicación fueron lanzadas posteriormente en la App Store. Pero ¿cómo logran los desarrolladores engañar al equipo de revisión de la App Store?

En nuestro informe original, explicamos que estas aplicaciones utilizan geocerca para evitar que nadie en Apple vea realmente de qué es capaz la aplicación. Pero al analizar el código de estas aplicaciones, ahora tenemos una mejor idea de cómo sucede esto.

Como sospechábamos, estas aplicaciones comparten la misma base de código, incluso si son distribuidas por diferentes cuentas de desarrolladores. Están construidas en React Native, un marco de trabajo multiplataforma basado en JavaScript, y utilizan el SDK CodePush de Microsoft que permite a los desarrolladores actualizar partes de la aplicación sin tener que enviar una nueva compilación a la App Store.

Construir aplicaciones React Native y utilizar CodePush no infringe las reglas de la App Store. De hecho, hay muchas aplicaciones populares que lo hacen. Sin embargo, los desarrolladores malintencionados aprovechan estas tecnologías para evadir la revisión de la App Store.

Una de las aplicaciones analizadas por 9to5Mac apunta a un repositorio de GitHub que parece proporcionar archivos para varias aplicaciones de transmisión pirata. Esta aplicación también utiliza una API específica para verificar la ubicación del dispositivo basándose en la dirección IP. Devuelve datos como el país, región, ciudad e incluso la longitud y latitud estimadas.

Después de que Apple aprueba la aplicación con sus funcionalidades básicas, los desarrolladores utilizan CodePush para actualizarla con lo que deseen. La aplicación revela entonces su verdadera interfaz en «ubicaciones seguras».

¿Qué puede hacer Apple al respecto?

Por supuesto, Apple no es inmune a las aplicaciones que intentan engañar a su sistema de revisión. Sin embargo, la compañía podría mejorarlo implementando pruebas adicionales para verificar el comportamiento de la aplicación en otras ubicaciones. Al mismo tiempo, Apple debería encontrar y eliminar de manera más proactiva las aplicaciones fraudulentas de la App Store.

En 2017, Uber fue acusado de trabajar en una «geocerca» para la sede de Apple en Cupertino. Cuando la aplicación se ejecutaba dentro de esta geocerca, automáticamente deshabilitaba los códigos utilizados para identificar y rastrear al usuario en la web. Aun así, parece que Apple no ha hecho mucho para prevenir otras situaciones como esta.

En 2021, documentos revelaron que el equipo de revisión de la App Store tiene más de 500 expertos humanos para revisar más de 100,000 aplicaciones cada semana. Aun así, la gran mayoría de las aplicaciones pasan por procesos de revisión automatizados para verificar si violan las pautas de la App Store antes de someterse al proceso de revisión manual.

Tras la publicación de nuestros artículos, un portavoz de Apple dijo a 9to5Mac que las aplicaciones han sido eliminadas de la App Store, pero no se han proporcionado detalles sobre las medidas de la empresa para prevenir que otras aplicaciones como esta sean aprobadas.



Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *