Más apps en Google Play que suscriben a mensajes SMS premium: JSSMSersElevenPaths 23 marzo, 2015 Después de encontrar los JSDialers, deberíamos haberlo predicho. Los atacantes están usando exactamente la misma técnica que en los JSDialers para esparcir apps que suscriben a las víctimas a servicios de SMS premium. De esta forma han eludido los sistemas de protección de Google Play, y utilizado técnicas basadas en JavaScript, más dinámicas e inteligentes. Todavía no son detectadas estáticamente por los motores antivirus. Veamos cómo funcionan. Hemos encontrado 14 apps con este mismo comportamiento en Google Play que, con diferentes pretextos, (desde chistes a recetas), subscriben al usuario a servicios de mensajes SMS premium. Aunque las apps muestran un mensaje sobre la suscripción, envían por sí mismas el SMS de conformación de suscripción de forma transparente, para que el usuario no note nada. Los atacantes han obtenido más de 100.000 descargas. No todas las descargas se traducen en suscripciones directas porque los atacantes solo funcionan bajo los operadores más importantes de España, y si el dispositivo no cumple con estos requisitos, la app funcionará normalmente. Lo que percibe el usuario Cuando el usuario descarga e instala estas apps, se muestra algo así. Esto es lo que ve el usuario si pertenece al operador y país adecuado Es cierto que el atacante está realmente avisando al usuario: se te va a suscribir, pero los mensajes de confirmación serán enviados de forma automática sin dejar rastro en el teléfono. En apps con un comportamiento parecido y analizadas previamente, el mensaje aparecido en el botón podría ser menos explícito (quizás «Aceptar» o preguntar por la edad), pero en este punto, los atacantes han usado la palabra «Suscribir», que debería alertar a las potenciales víctimas. La app comprobará si el dispositivo pertenece al operador correcto y que viene de España. Para ese momento, ya se han enviado dos SMS diferentes, uno para comenzar el proceso de suscripción y otro para confirmarlo, sin que el usuario note nada. Código JavaScript para comprobar operador y país ¿Qué ocurre y cómo funciona? Todo el programa se lanza bajo un WebView, que llama a un fichero index que viene con la propia apk. Cuando los dos SMS se envían, las apps utilizan un truco interesante. Cargan y descargan dinámicamente el «receiver» para interceptar los mensajes entrantes. Normalmente, estos receivers se declaran en el AndroidManifest.xml. ¿Por qué dinámicamente? Posiblemente para eludir los análisis estáticos. Aunque la app tenga el permiso de interceptar mensajes, una sandbox o un analista podrían pensar que el desarrollador realmente no hace uso de él, porque carece de la rutina para manejar el evento. Pero lo cierto es que lo carga solo si es necesario y cuando lo necesita. El receiver funciona cuando el dispositivo recibe el mensaje, y hace que la app los marque como «ya leídos», para que el usuario no se percate del mensaje de bienvenida al servicio de suscripción. Receiver dinámico para manejar SMSs entrantes ¿Entonces, qué es nuevo? Hay varias partes interesantes en estas apps. Primero, el uso de JavaSCript y Cordova (el puente entre JavaScript y el apk) para enviar mensajes y evitar introducir esa parte de la lógica en la propia aplicación. Esto lleva la lógica al servidor, lo que la hace más poderosa, dinámica, y difícil de detectar. Cargar el «receiver» dinámicamente, que confundirá a los análisis estáticos. El receiver se carga y descarga a su antojo bajo las circunstancias adecuadas (país y operador) lo que lo hace más sigiloso. Además, la carga o descarga se hace también por JavaScript, por lo que solo se listará si las circunstancias son las adecuadas en un análisis dinámico. No utilizan el sistema «habitual» para el envío de mensajes, sino que se los proporciona directamente al SMSProvider. Esto evita que los mensajes enviados se mantengan en la carpeta de «enviados» o «salida». Las apps proporcionan el texto de los SMS directamente el proveedor del sistema operativo. Marcando los mensajes SMS entrantes como ya leídos Otras apps como estas ¿Quién está detrás de estas apps? Obviamente están relacionadas con los JSDialers de los que hablamos hace unas semanas. Las compañías de suscripción y dominios nos proporcionan las pistas adecuadas. Algunas capturas de las apps que hemos encontrado gracias a Tacyt, son estas: Algunas apps con este comportamiento Este es el título, nombre de paquete y hash de las apps encontradas: Frases celebres bonitas cortas,com.thinkking,1e8568ccc54be7a73934965e97ff7e3fd9e4fec3 Imagenes amor fotos frases,com.romaticpost,2d26c676bcb5a5f8599f49a5b90599b7ff93dc11 Phrrasesfee,com.prasesfee,ca6ac2e1bf46087455fda358870070ec269faae6 Statetss,com.statetss,da045796efc737d42b9e86876ec5b854289212bc New mensajes navidad y frases,com.navidad.extra,18db1cfb7e7340a5476a5c6e17f1f9d596045095 Postales perritos fondos,com.imagepets,bbc6e386281f2b1931ff2be7812bf4de4530d3fe Funnyys,com.funnyys,9fc9e237903b02a2a47701139200c9177eec16a5 Fotos frases amor postales,com.prasesamor,65ce3043fc249cb906b4e50a23d581d5c70819fa Gatitos tiernos fondos postal,com.cattss,f68ef39f5183da0745614c68a7ae135085298b54 Recetas de cocina dietas Salud,com.kitchenn,7fa17bed794a59dd3d914d05535fe25a357ab1cd Chistes cortos buenos,com.chistescortos,daac73a325485f882b1dcda9758b16bb5f407770 Chistes Picantes buenos cortos,com.chistespicanticos,dc799bcc3f1f623e211e50fbb6ececb2e64753a6 Laughtter,com.laughtter,f569baf1c0f12c137a09e084c879979bbcfd11e1 Healthyy,com.recipesmart,0dd97d056fa7559a2cdb35d45850cefd400f4d6f Sergio de los Santos ssantos@11paths.com @ssantosv Juan Manuel Tirado juanmanual.tirado@11paths.com Path5 ya tiene nombre. Hola, Tacyt.La USAL, protegida con Latch
Martiniano Mallavibarrena Ciberseguridad en el cine: mito vs. realidad con 10 ejemplos Los múltiples aspectos de la ciberseguridad (ataques, investigaciones, defensa, empleados desleales, negligencia, etc.) llevan años siendo parte del argumento de infinidad de películas y series de TV. En la...
Daniel Pous Montardit Resiliencia, clave en sistemas Cloud-Native En el primer post de la serie Cloud-Native, ¿Qué significa que mi software sea Cloud Native?, presentamos la resiliencia como uno de los atributos fundamentales que nos ayudan a...
Telefónica Tech Boletín semanal de Ciberseguridad, 21 – 27 de enero Killnet apunta contra objetivos en España Esta semana el grupo hacktivista Killnet anunció una campaña de ataques contra Alemania, dando lugar a la realización de ataques de Denegación de Servicio...
Gonzalo Fernández Rodríguez ¿Qué significa que mi aplicación sea Cloud Native? El término Cloud Native es algo que va más allá de mover las aplicaciones alojadas en un data center a una infraestructura proporcionada por un proveedor Cloud, sea Cloud...
Telefónica Tech Boletín semanal de Ciberseguridad, 14 – 20 de enero Vulnerabilidades críticas en los router Netcomm y TP-Link Se han descubierto una serie de vulnerabilidades en los routers Netcomm y TP-Link. Por un lado, los fallos, identificados como CVE-2022-4873 y CVE-2022-4874, se tratan de un...
Jorge Rubio Álvarez Consecuencias de un ciberataque en entornos industriales Podemos encontrar entornos industriales en cualquier tipo de sector que nos podamos imaginar, ya sea en empresas de tratamiento de agua, transporte, farmacéuticas, fabricación de maquinaria, eléctricas, alimentación o...