Está claro que los dispositivos móviles manejan información sensible de nuestras vidas y eso ya los convierte en un blanco atractivo para los cibercriminales. De hecho, con el advenimiento de la Internet de las Cosas y de los miles de dispositivos no tradicionales que son controlados mediante aplicaciones móviles, la seguridad de nuestros teléfonos se vuelve cada vez más relevante y por ende también la protección de los equipos que a ellos se conectan.
Es indudable que Android es el sistema operativo móvil más utilizado en el mundo, concentrando actualmente el 76% del mercado. Aún hoy, la fragmentación debido a las diversas versiones activas del sistema continúa vigente: el 90% de los dispositivos con Android usan versiones anteriores a Pie, mientras que el 61% no corre ni siquiera Oreo. Esta mayor cantidad de usuarios –o potenciales víctimas– y la variedad del ecosistema es, en parte, lo que vuelve a la plataforma el blanco perfecto para cibercriminales. No debe extrañar entonces que las detecciones de códigos maliciosos para Android representen el 99% de todo el malware para móviles.
No obstante, los teléfonos no son un blanco fácil, ya que poseen una menor superficie de ataque, tienen una arquitectura más segura, ofrecen tiendas oficiales reduciendo el riesgo de instalar ejecutables desde orígenes desconocidos y, en el peor de los casos, pueden utilizar redes móviles que son más seguras –al menos más difíciles de comprometer.
Debido a lo anterior, los ciberdelincuentes deben sortear algunos obstáculos para lograr ejecutar su malware en teléfonos y tabletas inteligentes. A continuación, veremos cómo es el ciclo de vida de un código malicioso enfocándonos en Android, resaltando los obstáculos y ventajas de cada instancia de ejecución.
Propagación de un código malicioso en Android
El primer paso en cualquier ataque es siempre la propagación de la amenaza, es decir, lograr que ese ejecutable malicioso alcance el entorno de la víctima. Para conseguir esto, los atacantes se valen de un conjunto de estrategias.
Vulnerabilidades
La explotación de fallos de seguridad a través de los diversos estratos de la arquitectura móvil es uno de los vectores utilizados para lograr la ejecución de código malicioso en el entorno de la víctima. Esta explotación puede referirse a fallos en el hardware, como ocurrió con QuadRooter: un conjunto de fallos que años atrás dejó vulnerables a 900 millones de dispositivos con Android y procesadores Qualcomm. Similarmente, el firmware puede estar expuesto a huecos de seguridad, tal como se demostró en 2018 cuando investigadores encontraron decenas de fallos en las versiones de fábrica de varios modelos de equipos con Android.
Por supuesto que las vulnerabilidades propias del sistema operativo no son extrañas a la explotación. ¿Recuerdan a Stagefright y Metaphor? ¿O el susto que causó la reciente falla CVE-2019-2107 en librerías multimedia que se asemejaba escalofriantemente a estas vulnerabilidades? Igualmente, los fallos en protocolos de comunicación pueden afectar la seguridad de un teléfono, como ocurrió con las recientes vulnerabilidades de Bluetooth que permitían interceptar datos enviados.
Finalmente, las aplicaciones de usuario que se instalan en los equipos no siempre se ciñen a estándares de desarrollo seguro e, incluso de hacerlo, no están exentas de incluir puertas de entrada al sistema. Un ejemplo reciente fue el fallo de WhatsApp que permitía lograr una sesión remota en el equipo víctima mediante la recepción de un GIF específicamente creado para detonar funcionalidad maliciosa. Esta misma app sufrió también un fallo que habilitaba la instalación de spyware en los teléfonos de los usuarios.
Malware en tiendas oficiales
No cabe dudas de que hace tiempo que las tiendas oficiales han dejado de ser completamente seguras. Del mismo modo en que un sitio no es seguro solo por tener HTTPS, una app no es legítima solo por distribuirse en una tienda oficial. De hecho, Google dijo haber eliminado 700.000 apps maliciosas durante 2017, con un promedio de 2.000 apps eliminadas cada día y un 70% más que las borradas en 2016. Otro reporte más reciente de ElevenPaths concluyó que las apps maliciosas permanecen un promedio de 51 días en Google Play, llegando en algunos casos a permanecer por 138 días.
Para pasar los controles de las tiendas oficiales, los cibercriminales conocen muchas técnicas que complican la detección de sus códigos maliciosos: bombas de tiempo, código dinámico ejecutado a través de reflexión, explotación de vulnerabilidades, empaquetadores, cifrado, strings ofuscadas, scripts en otros lenguajes de programación para la descarga remota del código malicioso, nuevas formas de C&C, antiemulación, rootkits… Nuevos mecanismos antianálisis surgen constantemente.
Como si no fuese poco, los atacantes no solo se aprovechan de la posibilidad de subir malware a la tienda oficial, sino que además encuentran maneras de sacar provecho de aquellas aplicaciones legítimas que no se distribuyen mediante Google Play. El caso ejemplar de los últimos años fue Fortnite, un juego con más de 250 millones de usuarios en el mundo, cuyos desarrolladores decidieron no distribuir a través de Google Play. Además de las vulnerabilidades encontradas en el instalador de Fortnite que permitían la instalación de malware, la sola falta de esta app tan popular catapultó a los usuarios hacia tiendas de terceros y sitios de dudosa reputación accesibles mediante una búsqueda web.
Las tiendas de terceros son un entorno idóneo para la distribución de malware, y no es extraño escuchar sobre campañas masivas que han llegado a infectar millones de equipos con peligrosos códigos maliciosos, como fue el caso del malware denominado Agent Smith en 2019. En este sentido, en su informe “2018 Year In Review”, Google reportó que aquellos equipos que instalan apps de tiendas no oficiales son ocho veces más propensos a tener aplicaciones peligrosas.
Campañas en redes sociales
Las redes sociales fueron las maestras por excelencia en el arte de cliquear enlaces sin pensar antes, y esto no ha dejado de ser cierto en los equipos móviles. Engaños que pretendían permitir cambiar el color de WhatsApp, hacer videoconferencias cuando aún no existía tal funcionalidad o elaborados sistemas de estafas geolocalizadas que funcionaban mediante supuestos cupones de canje fueron algunas de las más notables campañas en teléfonos móviles.
¿Cuál es el fin? Usualmente, el objetivo consiste en lograr que el usuario descargue e instale una aplicación, ceda sus datos o termine suscripto a un servicio de mensajería premium por el cual se le cobrará sin su conocimiento.
Troyanos y scareware
Otra forma de propagación que se soporta sobre la Ingeniería Social es la utilización de scareware: estafas dedicadas a asustar a los usuarios para lograr que se precipiten a ingresar a un enlace, descargar una amenaza o aceptar un permiso. Muchas aplicaciones falsas buscan hacerse pasar por soluciones de seguridad y prometen al usuario ser las únicas capaces de desinfectar su terminal. El hecho de camuflarse como herramientas de protección brinda a los ciberdelincuentes ciertas ventajas, una de las cuales es escudarse bajo una figura de confianza, de modo que el usuario no dudará en otorgar a la aplicación permisos de administrador del terminal.
Instalación de malware en móviles
Como mencionamos anteriormente, los sistemas móviles están basados en una arquitectura segura, donde cada aplicación posee su propio espacio privado de memoria y almacenamiento, y cualquier interacción con servicios del sistema u otras apps se realiza mediante mecanismos IPC (Inter-Process Communication) controlados. En cierta forma, cada aplicación se comporta como si fuesen diferentes usuarios ante el sistema operativo.
Esto implica que el daño que puede realizar una app maliciosa en el equipo se encuentra, en principio, contenido. Sin embargo, los atacantes conocen maneras de ganar más control sobre el equipo.
Chequeo antianálisis
Las muestras de malware más sofisticadas suelen incluir rebuscados mecanismos de antianálisis para dificultar la detección de la actividad maliciosa. Particularmente, la antiemulación es una metodología frecuentemente utilizada para chequear si el entorno de ejecución corresponde o no a un dispositivo real mediante la identificación de atributos particulares en emuladores y máquinas virtuales móviles. Puede ser implementada de diversas maneras comparando alguna propiedad del entorno contra un valor conocido: estructura del sistema de archivos, atributos de la placa de red, conectividad de telefonía móvil, datos del sistema, etcétera. En caso de detectarse un emulador, el malware oculta su comportamiento malicioso.
Formas de obtener permisos
Como cualquier aplicación legítima dentro del teléfono, el malware requerirá de ciertos permisos para poder interactuar con los servicios del sistema operativo. La forma más sencilla de obtener estos permisos es lograr que el usuario los acepte mediante Ingeniería Social.
¿Qué permisos suele solicitar el malware? Permisos de administrador (para cifrar archivos, cambiar contraseñas de bloqueo, impedir la desinstalación del malware, etcétera), para instalar otros paquetes desde orígenes desconocidos, para crear diálogos de alerta del sistema (que permiten disfrazar la petición de otros permisos con técnicas como el tapjacking o espiar contenido con vulnerabilidades como Cloak and Dagger), o permisos de accesibilidad (que permiten acceder y monitorear el contenido de otras apps en ejecución).
Escalamiento de privilegios
A veces, el malware requiere acceso root al sistema de archivos para poder lograr su cometido. En estos casos, muchos códigos incluyen exploits capaces de rootear el sistema.
Métodos comunes para lograr persistencia
La capacidad de permanecer en el sistema el mayor tiempo posible es de vital importancia para algunas campañas criminales, como aquellas basadas en ciberespionaje. En un entorno móvil, esto se logra combinando mecanismos variados, como ser:
- Pretender ser aplicaciones del sistema (por ejemplo, Ajustes) para levantar menos sospechas.
- Bloquear la desinstalación habiendo ganado ya permisos de administrador.
- Utilizar bombas de tiempo para demorar la ejecución del payload malicioso, impidiendo que el usuario asocie el comportamiento extraño con la aplicación que acaba de instalar.
- Mostrar mensajes engañosos, por ejemplo, mensajes que simulan un fallo durante la instalación.
- Ocultar el icono del menú de aplicaciones.
- Superponer ventanas falsas para cubrir la actividad maliciosa.
Ejecución del payload malicioso y comunicación con C&C
Troyanos SMS, troyanos clicker, adware, ransomware, spyware, bots, troyanos bancarios y criptomineros son algunos de los tipos de códigos maliciosos que componen la taxonomía del malware móvil, categorizados según las acciones que realizan sobre el equipo afectado. Independientemente de sus particularidades, la ejecución del payload suele conllevar una serie de etapas de comunicación con el centro de comando y control.
Notificación de nueva infección
Tras una instalación exitosa, las apps maliciosas suelen comunicar al atacante que se ha logrado comprometer un nuevo equipo. En este intercambio se transfieren identificadores del teléfono, tales como modelo del dispositivo, número de SIM, país, IMEI, versión del sistema operativo, identificador único generado por el malware, listado de otras apps instaladas en el equipo, presencia de soluciones de seguridad, verificación de rooteo, entre otras.
Canales de comunicación avanzados
Para evadir la detección de comunicaciones hacia servidores maliciosos, los atacantes han comenzado a utilizar nuevas maneras de C&C y canales encubiertos. Hace algunos años encontrábamos desde los laboratorios de ESET a Twitoor, la primera botnet móvil que utilizaba cuentas fraudulentas en redes sociales (Twitter, puntualmente) para enviar comandos a los terminales infectados. Una técnica similar se halló recientemente en troyanos bancarios asociados a repositorios que distribuían Buhtrap, donde se utilizaban cuentas de Twitter para distribuir las URL de los servidores maliciosos de forma dinámica.
Del mismo modo, los beneficios asociados a la utilización de la red Tor para la comunicación con servidores maliciosos tampoco han pasado desapercibidos en el mundo del malware móvil.
Recepción de comandos
Un canal muy utilizado por los ciberdelincuentes para controlar a los terminales infectados consiste en enviar mensajes SMS con órdenes que el código malicioso interpretará para luego obrar en consecuencia. Muchas muestras de malware manipulan los registros de mensajes para eliminar este contenido que puede resultar sospechoso al usuario, pero otras pasan estos controles por alto permitiendo que los usuarios lean el contenido recibido y enviado. La red GSM se suma a otros protocolos de red utilizados de antaño por bots y RAT en sistemas operativos de escritorio.
Propagación
Los códigos maliciosos móviles también pueden utilizar el envío de mensajes SMS o vía redes sociales a otros números pertenecientes a la agenda de contactos del equipo para propagarse, utilizando este mecanismo para instar a otros usuarios a descargar contenido malicioso desde enlaces específicos.
Envío de datos robados
Claro está que las conexiones de red del malware son principalmente utilizadas para transferir los datos sensibles que se han recolectado del equipo. En ocasiones, el tráfico se transmite cifrado, mientras que en otras se utilizan protocolos sin ningún tipo de protección.
Seguridad móvil no es solo malware
Cuando hablamos de proteger nuestros teléfonos debemos tener en cuenta que la superficie de ataque incluye mucho más que malware. Múltiples factores pueden comprometer al teléfono (vulnerabilidades, extravío, robo, rotura, configuraciones inseguras, Ingeniería Social), a la red (mensajes MMS maliciosos, antenas y hotspots fraudulentos, interceptación de mensajes, espionaje, redes públicas inseguras) o a los servicios en la nube (explotación, fuga de datos, recolección indiscriminada, contenido peligroso, cryptojacking, y mucho más). Sin embargo, considerando que el 60% de los usuarios no posee una solución de seguridad móvil, quizás podemos empezar por esto.