El auge de los troyanos bancarios para Android: Quién, cómo y por qué

lunes, 22 de mayo de 2017

Entre las amenazas más peligrosas para los usuarios de móvil se encuentra el malware bancario. Estos programas están diseñados para robar información bancaria del usuario para posteriormente transferir sus fondos a las cuentas del atacante. A lo largo del tiempo, los atacantes siempre han encontrado la manera de superar obstáculos implementados para frenar su propagación. Algunos ejemplos de éstos son los sistemas basados en un segundo factor de autenticación, así como los propios mecanismos de seguridad habilitados en las diferentes versiones Android.

Curiosamente, el malware bancario para móviles no requiere de demasiado conocimiento técnico para su desarrollo, e incluso aún menos para su explotación. El funcionamiento de este tipo de malware se puede resumir en dos pasos:

  • La Identificación de aplicaciones de banca instaladas en el dispositivo infectado.
  • Introducción de una pantalla superpuesta sobre la aplicación legítima una vez el usuario arranca la aplicación. El usuario introduce sus credenciales y éstas son enviadas directamente al servidor del atacante.



De esta forma, lo único que se necesita para lanzar una campaña de malware bancario son un par de páginas falsas convincentes, un servidor, y un método de infección. Por esta razón, muchos mobile bankers, como por ejemplo Marcher, son explotados desde un modelo de negocio malware-as-a-service, o incluso como explicaremos a continuación en este post, simplemente a través de "proyectos open-source" disponibles públicamente en Internet.

En los últimos meses, fuimos testigos de tres grandes acontecimientos en materia de malware bancario para móviles, por lo que decidimos iniciar una investigación utilizando Tacyt, nuestra plataforma propietaria de ciberinteligencia para ecosistemas móvil, y complementada por la valiosa colaboración del equipo de Check Point. En primer lugar descubrimos que algunos bankers conseguían infiltrarse en Google Play para propagarse de manera masiva. Por otra parte, identificamos diversas campañas de bankers a raíz de un malware open-source publicado en un foro de un desarrollador de malware. Y finalmente, fuimos capaces de descubrir algunas sorprendentes funcionalidades empleadas por esta familia de malware, consiguiendo así arrojar un poco de luz al respecto de su extraordinario éxito en lo que a propagación y ratio de infección se refiere.

Un poco de contexto

En el pasado, el malware bancario solía propagarse principalmente por markets no oficiales así como a través de ataques de phishing. Aunque es cierto que estas técnicas de infección resultan mucho más sencillas para un atacante, realmente el alcance de una campaña de este tipo resulta muy limitado, y generalmente se restringe a la posibilidad de engañar a un usuario en algún momento del proceso. Introducirse en Google Play permite una expansión exponencial del ataque, aunque requiere lógicamente evadir los mecanismos de seguridad de Google.

Recientmente, varios malware bancarios consiguieron introducirse dentro de Google Play al ofuscar ciertas partes maliciosas en su código. El primero de todos, reportado por ESET, resultó ser una nueva versión de Charger, un malware que actuaba como ransomware, descubierto por Check Point en enero. Gracias a Tacyt fuimos capaces de confirmar la sospecha de ESET, verificando que ambas apps se encontraban relacionadas. Al igual que ocurría en la primera versión, los ciberdelincuentes fueron capaces de subir código malicioso a Google de manera inadvertida. Esta nueva versión de Charger era capaz de inyectar pantallas falsas imitando aplicaciones oficiales de banca una vez el usuario arrancaba las oficiales. ESET también consiguió vincular esta nueva actividad con un malware encontrado en Google Play en febrero llamado "Good Weather", perteneciente también a la familia Bankbot. A partir de un análisis en profundidad del código, pudimos determinar que Charger añadía funcionalidades de Bankbot dentro de su código para obtener mejores resultados.

Más malware del tipo Bankbot consiguió infiltrarse en Google como reportó Securify. Al igual que ocurría con Charger, las nuevas aplicaciones usaban técnicas de ofuscación avanzadas para evadir su detección (de lo contrario no hubieran podido entrar en Google Play). El malware realizaba una consulta sobre un listado de entidades bancarias pertenecientes a España, Reino Unido, Francia, Italia y otros países, y utilizaba código HTML para suponer pantallas falsas sobre las aplicaciones oficiales una vez éstas eran arrancadas. A través de Tacyt, fuimos capaces de correlacionar diferentes muestras de este mismo malware, llegando a encontrar certificados que conducían a un conjunto de personas. Estos individuos no corresponden necesariamente con los desarrolladores de estas aplicaciones. Supuestamente estos nombres fueron obtenidos a partir de un directorio de organizaciones ubicadas en el Reino Unido, lo que apunta a que el verdadero desarrollador reside allí también.


Certificado usado por una muestra de malware

¿De dónde procede todo este malware bancario?
 
Al margen de los incidentes registrados estas semanas, ha habido otros, como un troyano bancario turco infiltrado en Google Play. En realidad, buena parte de la raíz de este auge súbito de bankers para móvil proviene del siguiente post, publicado el 19/12/2016 en un foro de desarrolladores de malware con el nombre "exploit.in":
Post relativo a BankBot publicado por Maza-in en un foro de desarrolladores de malware


En el post, un usuario llamado Maza-in (conocido desarrollador de malware), describe cómo crear y configurar un malware bancario. En el propio hilo del post se puede encontrar el código fuente para Android, así como la infraestructura necesaria para su implementación. Esto permite a desarrolladores inexpertos crear, no únicamente un panel de control (Command&Control), sino también un troyano bancario perfectamente funcional. A partir de aquí, todo lo que necesitan es crear una página falsa que superponga la aplicación original, y establecer un servidor para el C&C. Como pudimos observar, varios cibercriminales lanzaban sus propias campañas de Bankbot, según se describe aquí. Los desarrolladores más avanzados fueron incluso más lejos, consiguiendo subir a Google Play el código malicioso gracias a técnicas muy sofisticadas de ofuscación.

Con el propósito de analizar en profundidad esta nueva ola de malware bancario, nuestro área de inteligencia en ElevenPaths, siguió a Maza-in en un foro de malware. Conseguimos localizar una conversación que tenía lugar en una plataforma llamada ripper.cc, la cual permitía a sus usuarios reportar estafas dentro de markets underground. El propio Maza-in reportaba en este foro una estafa relacionada con un usuario con alias classic1@exploit.im que revendía el bot que había desarrollado.

Se muestra aquí abajo parte de la conversación que encontramos en esta web:

Conversación de Maza-in en ripper.cc


Cuando se ponían a prueba las competencias de Maza-in, éste refería a un link donde se describía MazarBot, un popular bot para Android de 2015 reportado previamente por Check Point, y asociado a la amplia familia de malware GMbot. Maza-in explicaba que la URL describía su propio "bot grabber", sugiriendo de alguna forma que MazarBot era también obra suya, aunque resulta improbable teniendo en cuenta que éste solicitaba repetidamente ayuda al respecto de funciones básicas en Android.

Posibles vinculaciones entre malware bancario para móvil


Adentrándose en el funcionamiento de Bankbot

Profundizando más si cabe sobre el funcionamiento de BankBot (el informe técnico resultante de su análisis puede ser consultado aquí y aquí), llegamos a inspeccionar varios servidores C&C operando este malware (un listado incluyendo algunos de los C&Cs puede ser consultado aquí). Los servidores identificados pueden ser desglosados en tres tipos:

  1. "Script kiddies": usuarios malintencionados que simplemente copiaban código sin incluir ningún tipo de modificación sobre éste. En la página principal del servidor se mostraba un listado de los dispositivos infectados.
  2. Desarrolladores avanzados: cibercriminales que añadían un sistema simple de autorización en el servidor, pero no implementaban comprobación de sesión. El listado de dispositivos infectados es accesible directamente a través de una URL.
  3. Posible autor del malware. Un servidor que usa un sistema de autorización con comprobación de sesión, y no proporcionaba acceso de manera directa al listado de dispositivos infectados. 

De manera similar a la investigación realizada sobre el banker Marcher, fuimos capaces de acceder a varios de los paneles de control, pudiendo incluso observar qué estaba ocurriendo en su interior. Los servidores inspeccionados se focalizaban en 33 aplicaciones de banca ubicadas en Francia, Alemania, Rusia y Turquía. Durante la investigación se identificaron un listado de más de 600 usuarios infectados. Aunque el servidor indicaba que el 83% de los dispositivos se encontraban rooteados, esto únicamente quería decir que el malware obtenía privilegios de administrador en el dispositivo, y no acceso root.

Eludiendo todas las defensas

El malware ataca sobre todas la versiones del sistema operativo Android, eludiendo incluso aquellos mecanismos de seguridad anti- malware bancario introducidos en las últimas versiones Marshmallow (6) y Nougat (7).

Distribución de victimas por versión de sistema operativo



Adicionalmente, el servidor del malware contenía mensajes SMS transmitidos por los propios dispositivos infectados. Interceptando estos mensajes, el malware era capaz de neutralizar los sistemas de protección basados en un segundo factor de autenticación. Teniendo en cuenta que la mayoría de entidades bancarias y compañías de tarjeta de crédito realizan una comprobación de la ubicación del dispositivo previa autorización de la transacción para verificar su legitimidad, los cibercriminales conseguían almacenar la ubicación de los dispositivos infectados, habilitando así la posibilidad de fraude. Cabe resaltar que estas dos tácticas son únicamente posibles a través de un malware para móvil, no así en malware para PCs. Esto explica el exponencial auge de los bankers para móviles, junto con el ocaso de sus homólogos para PC. Las protecciones existentes para contener malware para PC resultan así inútiles cuando hablamos de malware bancario para móvil.

Uno de los hallazgos más innovadores identificados en el servidor del malware corresponde a un sistema para detectar motores Anti-Virus. El malware comprueba si el dispositivo posee algún antivirus instalado, realizando una consulta sobre un listado de 13 antivirus diferentes. Si alguno de éstos se encuentra instalado en el dispositivo, el malware es capaz de registrarlo en su servidor, habilitando la opción de no lanzar ninguna actividad para evitar así ser detectado. Pudimos observar así que el malware conseguía instalarse sin levantar sospecha en dispositivos que supuestamente se encontraban protegidos por varios de estos Antivirus, poniendo en duda su verdadera efectividad. Algunos de los AVs sobre los que el malware conseguía evitar ser detectado correspondían a algunos de los protecciones más populares, incluyendo Kaspersky, CM security, Clean Master, Dr. Web, 360 Security, AVG, and Virus Cleaner de NQ Security Lab.

Resumen

Los bankers para móvil se encuentran desgraciadamente en pleno auge. Son capaces de sortear los sistemas de protección desarrollados por los sistemas operativos de Android, entidades bancarias, Google Play, e incluso también los antivirus más populares. Este es un ejemplo interesante en el que se describe cómo un código malicioso puede provenir de una fuente open source, y ser a su vez reutilizado por diferentes desarrolladores de malware. Los programas maliciosos son compartidos no únicamente entre ciberdelincuentes, sino incluso comúnmente replicados por entidades gubernamentales, como pudimos observar en la última fuga de información de Vault 7. Esto mismo es cierto en el sentido inverso, siendo también los ciberdelincuentes los que reproducen sofisticadas tecnologías introducidas por entidades estatales.

Anexos

Charger SHA1 hashes:
53c7ecbe5d5b406502a06e7b24d09f13d5d88b78
ca04233f2d896a59b718e19b13e3510017420a6d

BankBot SHA1 hashes:

4527cef5b111332076d675ded08a9bcde58e883a
ea99d5b4c238e9de6cb9de289b684c86b0e0a52a
7c3ecc9b188903e4dc222af743afac3e1c0ab8a0

Maza-in en Jabber



CnCs:

drontes.ru
tukzar.co.uk
capsesc.co.uk
rotstuft.co.uk

streser.ru
servot.myjino.ru
anubis00.ru
zxc.mcdir.ru

Listado de los bancos afectados: 

AkBank(TR)
QNB+FinansBank(TR)
GarantiBank(TR)
HalkBank(TR)
isBank(TR)
YapiKredi(TR)
ziraatBanksi(TR)
Comdirect(DE)
CommerzBank(DE)
Consorsbank(DE)
DeutscheBank(DE)
DKB(DE)
ING_DiBa(DE)
Postbank(DE)
Santander(DE)
Sparkasse(DE)
Volksbank(DE)
Agricole(FR)
Axa(FR)
BanquePopulaire(FR)
BNPParibas(FR)
Boursorama(FR)
CaisseEpargne(FR)
LCL(FR)
SocieteGenerale(FR)

Listado de los AVs reconocidos por el malware:
com.drweb
com.cleanmaster.security
com.kms.free
com.eset.ems
com.avast.android.mobilesecurity
com.cleanmaster.mguard
com.qihoo.security
com.antivirus
com.zrgiu.antivirus
com.apps.go.clean.boost.master
com.androhelm.antivirus.free
com.trustgo.mobile.security
com.sophos.smse

Bancos españoles afectados por BankBot:
com.bancsabadell.wallet
com.bankia.wallet
com.bbva.bbvacontigo
com.bbva.bbvawalletmx
com.bbva.netcash
com.bbva.netcashar
com.bbva.nxt_tablet
ar.com.santander.rio.mbanking
es.bancopopular.nbmpopular
es.bancopopular.nbmpopulartablet
es.bancosantander.apps
es.bancosantander.empresas
es.bancosantander.wallet
es.bmn.bmnapp2
es.bmn.cajagranadaapp2
es.bmn.cajamurciaapp2
es.bmn.sanostraapp2
es.caixagalicia.activamovil
es.caixageral.caixageralapp
es.ccm.ccmapp
es.cm.android
es.cm.android.tablet
es.connectis.mobile.alrajhi
es.evobanco.bancamovil
es.lacaixa.hceicon2
es.lacaixa.mobile.android.newwapicon
es.liberbank.cajasturapp
es.redsys.walletmb.app.kutxa.pro
es.redsys.walletmb.app.laboralkutxa.pro
es.santander.money
es.univia.unicajamovil

* Artículo desarrollado por innovación y laboratorio de ElevenPaths en colaboración con el equipo de investigación de Check Point, donde ya fue publicado.

No hay comentarios:

Publicar un comentario