A principios de agosto, detectamos casos de descarga automática de un troyano bancario al usar dispositivos Android para visitar algunos sitios de noticias. Como quedaría claro más adelante, este comportamiento estaba provocado por la visualización de un mensaje publicitario mediante la red Google AdSense y no se limitaba a los sitios de noticias. De hecho, cualquier sitio que utilice AdSense para mostrar anuncios podía mostrar mensajes que descargaban y guardaban automáticamente en la tarjeta SD el peligroso troyano bancario Trojan-Banker.AndroidOS.Svpeng. Este comportamiento nos sorprendió, porque lo normal es que al descargar aplicaciones, el navegador notifique al usuario que un archivo es potencialmente peligroso y le dé la opción de guardarlo o descartarlo. Para ver qué era lo que pasaba, decidimos interceptamos el tráfico del dispositivo atacado cuando se mostraba esta “publicidad” y llegamos a entender cómo ocurre la descarga y cómo se guarda automáticamente el malware.
Algunas estadísticas
En primer lugar, aduciremos los datos sobre las últimas versiones de Trojan-Banker.AndroidOS.Svpeng. La geografía de su distribución se limita a solo la Federación de Rusia y la CEI (más adelante mostraremos por qué razón). A continuación está el gráfico de la popularidad de la última versión del troyano, Svpeng.q.
Y aquí está la misma información de la versión anterior, que también se distribuía a través de AdSense, pero sólo en julio de 2016:
Como puede verse en los gráficos, Svpeng se detectó en los equipos de unos 318 mil usuarios en dos meses y en la cima de su popularidad alcanzó a atacar a 37 mil usuarios por día. Las grandes cifras y los saltos recogidos en el gráfico tienen una explicación simple: Google bloquea de inmediato los anuncios publicitarios que propagan el malware. Pero esta es una medida más reactiva que proactiva, ya que los bloqueos se realizan post factum, después de que miles de usuarios de Android ya tienen el troyano en el dispositivo. También cabe destacar la regularidad de la penetración de estos anuncios en la red de AdSense, que se viene realizando por más de dos meses. Campañas similares están ocurriendo en el presente. La más reciente data del 19.10.2016.
Y ahora, vamos a lo interesante
Veamos cómo la visualización de publicidad se vincula con la descarga y almacenamiento automático del archivo APK con el troyano en la tarjeta SD. Abajo tenemos la solicitud HTTP que provoca la visualización del “mensaje publicitario” de los delincuentes:
A esta solicitud el servidor responde enviando un script JavaScript usado para mostrar el mensaje publicitario. Pero se trata de un script con sorpresa incluida, porque en su inicio tiene un código ofuscado de manera extrema. Examinemos en qué orden ejecuta acciones el código:
-
- Declaración de las variables necesarias para el funcionamiento del troyano y descifrado de la carga útil.
Como vemos, la descarga del archivo APK se realizó mostrándolo como si fuera un masivo cifrado de bytes en el script. Ahora sólo queda guardar este archivo en la tarjeta SD.
-
- Determinación de la función con cuya ayuda se guardará el archivo.
El código comprueba la disponibilidad de las funciones de los motores de diferentes navegadores y si no están disponibles, define un propio. En esta función se crean el objeto URL y el elemento <a> (símbolo para enlaces en formato HTML). El enlace obtenido a partir de estas acciones recibe más adelante el atributo href (el destino final del enlace) y se hace un click de software en este enlace. Este método no es nada nuevo: lo más probable es que los atacantes lo hayan tomado prestado aquí y solo le hayan agregado la ofuscación y una restricción: el clic de software se ejecutará sólo en dispositivos con pantalla táctil, que en su mayoría son smartphones.
-
- División del archivo APK descifrado en bloques de 1024 bytes.
-
- Instalación de un procesador del evento de descarga en la página. Al dispararse el procesador del evento, se empieza a guardar automáticamente el archivo APK en la tarjeta SD.
Aparte de comprobar si se ejecuta o no el script en el smartphone, en el código hay una comprobación importante más, que determina el lenguaje que utiliza el dispositivo. Los ciberdelincuentes están atacando sólo los smartphones que utilizan la interfaz en ruso, es decir, amenaza sobre todo a los dispositivos de usuarios en Rusia y, en menor medida, en los países de la CEI.
¿Cuál es el truco?
El método descrito sólo funciona en Google Chrome para Android. Cuando el .APK se descarga mediante un enlace a un recurso externo, el navegador advierte que se está descargando un objeto potencialmente peligroso y solicita al usuario elegir si desea o no guardar el archivo descargado.
Al dividir el .APK en fragmentos y transferirlos a la función de almacenamiento mediante la clase Blob() no se comprueba el tipo del objeto que se está guardando, y el navegador guarda el archivo .APK sin notificar al usuario.
Hemos notificado a Google acerca de este comportamiento del navegador e informado que mediante este comportamiento se propaga malware. En el momento de la publicación de este artículo ya publicó un parche que resuelve este problema en Google Chrome, que estará a disposición de los usuarios en la próxima actualización.
En los demás navegadores el método descrito no funciona en absoluto o la aplicación solicita al usuario que decida si guardar el archivo o no. Kaspersky Lab recomienda actualizar Google Chrome para excluir la posibilidad de infectarse con malware mientras navega por los sitios que utilizan AdSense.
Conclusión
Por supuesto, no basta con descargar Svpeng, porque además hay que hacer que el usuario lo instale. Los atacantes intentan resolver este problema mediante la ingeniería social. Este malware se puede guardar bajo los siguientes nombres:
- last-browser-update.apk
- WhatsApp.apk
- Google_Play.apk
- 2GIS.apk
- Viber.apk
- DrugVokrug.apk
- Instagram.apk
- VKontakte.apk
- minecraftPE.apk
- Skype.apk
- Android_3D_Accelerate.apk.
- SpeedBoosterAndr6.0.apk
- new-android-browser.apk
- AndroidHDSpeedUp.apk
- Android_update_6.apk
- WEB-HD-VIDEO-Player.apk
- Asphalt_7_Heat.apk
- CHEAT.apk
- Root_Uninstaller.apk
- Mobogenie.apk
- Chrome_update.apk
- Trial_Xtreme.apk
- Cut_the_Rope_2.apk
- Установка.apk
- Temple_Run.apk
Todos estos nombres o son copias de nombres de populares aplicaciones legítimas o tratan de convencer al usuario de la importancia y la necesidad de instalar las aplicaciones descargadas. En las versiones modernas de Android está prohibida la instalación de aplicaciones de origen desconocido, pero los ciberdelincuentes cuentan con que el usuario desactivará esta opción para instalar una “actualización crítica del navegador” o una nueva versión de una aplicación popular.
En el presente los propagadores de Svpeng atacan sólo a los usuarios de smartphones en Rusia, pero no hay garantías de que el próximo “anuncio”, que publiquen en AdSense no afecte otros países, porque ya existen antecedentes. Es muy conveniente utilizar la plataforma de publicidad más popular para descargar sus creaciones maliciosas en una plataforma de cientos de miles de usuarios.
En las entrañas de un ataque