Analizando el riesgo de malware bancario en Android vs. iOS

Publicado por buguroo - 07/10/2019

Hoy en día es habitual encontrar noticias sobre nuevas familias de malware bancario para dispositivos Android y su funcionamiento, sin embargo, no ocurre lo mismo para dispositivos iOS. Esto nos puede llevar a la pregunta “¿Existe malware para iOS? ¿Y malware bancario?”.

La primera pregunta es fácil de responder: si, existe malware para iOS. La segunda no es tan sencilla, puesto que, aunque públicamente no hemos encontrado ninguna muestra de malware especialmente diseñada para el robo de credenciales bancarias, podrían existir muestras que no han sido detectadas.

Aunque no haya sido detectado malware bancario como tal, sí que han sido detectadas aplicaciones maliciosas para dispositivos con ‘jailbreak’ destinadas al robo de credenciales, especialmente el ID de Apple y su contraseña (como el malware KeyRaider de 2015).

El funcionamiento general del sistema operativo de Apple hace más difícil que en Android el robo de datos bancarios. Como se ha introducido en ocasiones anteriores, la técnica por excelencia utilizada para el robo de datos bancarios en dispositivos Android es el uso de ‘overlays’.

Mediante esta técnica, las aplicaciones maliciosas en Android, muestran una ventana de phishing al detectar que el usuario inicia la aplicación legítima de su entidad bancaria. De esta forma, el usuario pensará que la ventana que le solicita los datos de acceso es legítima.

Para mostrar el ‘overlay’ las aplicaciones maliciosas en Android, utilizan servicios que se ejecutan en segundo plano y algunos trucos para determinar la aplicación que se encuentra ejecutando en primer plano y mostrar el ‘overlay’ con el phishing. Por lo tanto, el malware requiere tres funcionalidades clave para el robo de datos en Android, veamos si iOS proporciona dichas funcionalidades.

Funcionalidad

Android

iOS

Ejecución en segundo plano

Si

Si (con limitaciones)

Obtención de aplicaciones instaladas

Si

No

Obtención de aplicación en primer plano

Si

No

Mostrar ‘overlays’ de phishing

Si

No

Funcionalidades necesarias para el robo de datos y su disponibilidad

Como podemos observar en la tabla anterior, el sistema operativo de Apple no parece proporcionar la funcionalidad necesaria para el robo de datos bancarios. Veamos si realmente las restricciones impuestas a las aplicaciones de iOS son efectivas y cómo funcionan dichas restricciones.

Servicios en segundo plano

En Android una aplicación puede crear lo que se conoce como “servicio”. Los servicios en Android son módulos de la aplicación que pueden ejecutarse en segundo plano, y pueden lanzarse a partir de diferentes eventos, como por ejemplo al reiniciar el sistema.

Además, las aplicaciones pueden solicitar el permiso ‘REQUEST_IGNORE_BATTERY_OPTIMIZATIONS’, que les permite ignorar las optimizaciones de batería. Evitando de este modo que el servicio que se ejecuta en segundo plano pueda ser detenido por el sistema debido a optimizaciones de batería.

Aunque una aplicación puede ejecutarse en segundo plano en iOS, no existen los servicios tal y como los conocemos en Android. En iOS, el desarrollador debe indicar el tipo de actividad que realizará la aplicación en segundo plano. De esta forma, el sistema podrá aplicar las restricciones correctas basadas en la actividad.

Modos para ejecución de código en segundo plano en iOS

Como podemos observar en la imagen, Apple permite la ejecución de la aplicación en segundo plano a través de los ‘Background Modes’. En función del modo seleccionado por el desarrollador, el sistema aplicará unas restricciones u otras. Por ejemplo, si se selecciona ‘Location updates’, será el sistema el encargado de generar un evento cada vez que la localización del dispositivo cambie. Este evento lanzará la ejecución del código correspondiente en la aplicación.

Estos modos permiten restringir la conexión a la red en caso de que no sea necesario en dicho modo, o el acceso a otras funcionalidades del sistema, como la localización. También permite limitar el tiempo que puede estar ejecutándose la aplicación en segundo plano.

Listado de aplicaciones instaladas

En Android es posible obtener la lista completa de aplicaciones instaladas en el dispositivo, sin necesidad de solicitar permisos adicionales. Esto no solo permite a un troyano bancario determinar si alguno de sus entidades objetivo se encuentra instalada, sino que también permite a otra aplicación conocer las aplicaciones instaladas por el usuario, lo que podría considerarse un problema de privacidad.

En iOS no es posible obtener la lista completa de aplicaciones instaladas. Aunque si es posible determinar si ciertas aplicaciones están instaladas. Para determinar si una aplicación se encuentra instalada, una aplicación de iOS puede abusar de los ‘URL Schemes’.

Los ‘URL Schemes’ permiten que una aplicación pueda indicar al sistema operativo que desea encargarse de gestionar las peticiones realizadas a URLs con un esquema especial. Por ejemplo, la aplicación de Twitter solicita al sistema que las URLs que usan el esquema “twitter://” se pasen a la aplicación para encargarse de su gestión.

Abuso de las ‘URL Schemes’ para determinar si una app está instalada


Esta funcionalidad es utilizada para que sea la propia aplicación la que muestra información relacionada cuando un usuario hace click en un enlace con un esquema determinado. De esta forma, Twitter puede mostrar un tweet o el perfil de un usuario, cuando el usuario hace click en un enlace cuyo esquema es “twitter://”.

En la imagen anterior podemos observar un bloque de código encargado de comprobar si es posible abrir una URL cuyo esquema sea “instagram://”. En caso de que el sistema pueda abrir dicha URL indica que hay una aplicación instalada capaz de gestionar este esquema. En este caso, el esquema “instagram://” está reservado para la aplicación de Instagram (ninguna otra aplicación puede gestionar este esquema), por lo que, en caso de que esta URL pueda abrirse, quiere decir que la aplicación de Instagram se encuentra instalada.

Si un troyano bancario para iOS quisiese determinar si la aplicación de una entidad afectada se encuentra instalada, dicha aplicación debería obligatoriamente gestionar algún esquema de URL. En caso contrario no podría determinar la instalación o no de la aplicación.

Además de esta forma de detectar las aplicaciones instaladas, existen otras formas a través de APIs privadas y no documentadas del sistema operativo. Un malware bancario podría utilizar estas APIs privadas para obtener la lista de aplicaciones instaladas, aunque en ningún caso podría publicarse en la App Store, ya que el uso de estas APIs no está permitido y supondría el rechazo de la aplicación.

Robo de credenciales con ‘overlays’

Como hemos comentado anteriormente, en Android la técnica favorita, y la más efectiva, es la basada en ‘overlays’ de phishing en el momento en el que el usuario abre la aplicación legítima. Esta técnica es la implementada por todas las familias populares de malware bancario a día de hoy, como Anubis Bankbot, Cerberus o Marcher.

En iOS no es posible aplicar esta técnica, ya que las restricciones impuestas por Apple lo impiden. Como hemos introducido, una aplicación para iOS no es capaz de mantenerse en ejecución en segundo plano de forma permanente. Puede ejecutarse en segundo plano durante un tiempo limitado en función del modo seleccionado por el desarrollador.

De todos modos, aunque una aplicación para iOS fuese capaz de ejecutarse en segundo plano de forma permanente, ésta no sería capaz de obtener información sobre la aplicación que se encuentra ejecutando en primer plano en cada momento. Por lo que no podría mostrar un ‘overlay’ como sucede en Android.

El tercer elemento necesario para el robo de datos a través de ‘overlays’ consiste en poder mostrar el propio ‘overlay’. Esta funcionalidad tampoco existe en iOS, una aplicación iOS no puede mostrar ninguna ventana al usuario más allá de las ventanas propias de la interfaz de la aplicación mientras ejecuta en primer plano. Por lo que una aplicación no puede iniciar ninguna otra aplicación ni mostrar ningún componente visual al usuario desde ninguno de los ‘background modes’ disponibles.


Otras posibilidades para robar credenciales

Una pequeña parte del malware bancario de Android está basado en aplicaciones falsas que suplantan a las aplicaciones bancarias legítimas. Estas aplicaciones suelen distribuirse a través de ‘markets’ no oficiales o páginas webs y foros.

Es habitual que las aplicaciones legítimas de las entidades bancarias no funcionen si se instalan en dispositivos ‘rooteados’, por lo que los usuarios pueden verse obligados a buscar aplicaciones modificadas que eliminen dichas restricciones. Estas aplicaciones podrían estar infectadas y preparadas para robar las credenciales bancarias.

Al igual que ocurre en Android, podrían existir este tipo de aplicaciones fraudulentas en iOS. En los últimos años se popularizado la instalación de aplicaciones firmadas con certificados de empresa, lo que permite distribuir e instalar aplicaciones sin pasar por la Apple Store.

‘Exodus’ (2019) es un ejemplo reciente de malware para iOS que se ha distribuido utilizando certificados de empresa. En este caso, se trata de un software espía destinado a robar información sensible de los usuarios, incluyendo fotos, videos, contactos, información sobre la localización del dispositivo y conversaciones telefónicas.

Al no pasar por los controles de la tienda de Apple, estas aplicaciones pueden utilizar APIs privadas, como las APIs que permiten listar las aplicaciones instaladas, o podrían estar preparadas para robar datos bancarios.

No es necesario que se trate de una aplicación bancaria troyanizada, podría tratarse de una aplicación cualquiera. Por ejemplo, una aplicación modificada de Spotify para eliminar la publicidad, que roba los datos del usuario al iniciar sesión o en caso de que el usuario realice algún pago a través de la aplicación.


Jailbreak

Al igual que ocurre con el ‘root’ en dispositivos Android, el ‘jailbreak’ da al usuario control total del dispositivo iOS. La instalación de aplicaciones maliciosas o ‘tweaks’ (modificaciones de aplicaciones o del sistema) supone un riesgo elevado para el usuario.

Un ‘tweak’ es capaz de inyectar código en aplicaciones instaladas en el dispositivo, y de igual forma que estas modificaciones permiten eliminar restricciones y personalizar aplicaciones, estos también podrían estar diseñados para inyectar código malicioso en aplicaciones bancarias, o en cualquier otro tipo de aplicación.

A partir de la inyección de código malicioso, los atacantes podrían robar datos bancarios y el usuario ni siquiera se daría cuenta, puesto que éste utilizará la aplicación legítima.

No se ha descubierto malware bancario que aproveche las posibilidades del ‘jailbreak’ para robar credenciales, sin embargo, si que se ha descubierto malware que aprovecha estas posibilidades para robar otros datos del usuario.

La mayor parte del malware para iOS se ha distribuido a través de ‘tweaks’, y su funcionalidad principal consistía que espiar al usuario, proporcionando al atacante información sobre localización, SMS, llamadas y la agenda de contactos (Xsser mRAT, 2014). En otros casos, el malware ha sido diseñado para mostrar publicidad no deseada al usuario, o incluso comprar aplicaciones de la tienda oficial de Apple sin el consentimiento del usuario (AppBuyer, 2014).

El ‘jailbreak’ es un problema para la seguridad de los dispositivos iOS, pero no quiere decir que los dispositivos sin ‘jailbreak’ estén completamente protegido frente a estos ataques. Las mismas vulnerabilidades que permiten realizar ‘jailbreak’ pueden utilizarse para comprometer el dispositivo e instalar malware en el.


Infección a través de vulnerabilidades

El simple acceso a una web maliciosa puede poner en peligro los datos del usuario, ya que, a través de vulnerabilidades en el navegador ‘Safari’, un atacante podría acabar instalando aplicaciones maliciosas en el dispositivo, e incluso tomar control total del mismo.

iOS, al igual que Android, puede incluir vulnerabilidades de seguridad que los atacantes utilicen para instalar software malicioso en el dispositivo a través de ‘exploits’. Si estas vulnerabilidades se encuentran en el núcleo del sistema operativo, el ‘exploit’ podría tomar control total del dispositivo.

Estos ‘exploits’ permitirían al atacante, por ejemplo, interceptar todas las comunicaciones realizadas por el dispositivo, lo que permitiría robar credenciales bancarios o credenciales de cualquier otro servicio.

Un caso reciente de malware distribuido a través de la explotación de vulnerabilidades es el malware espía dirigido a grupos tibetanos (https://citizenlab.ca/2019/09/poison-carp-tibetan-groups-targeted-with-1-click-mobile-exploits/). Este malware se trata de un malware espía destinado al robo de contactos, espionaje a través de la geolocalización del dispositivo y obtención de datos específicos de la aplicación infectada.

Dicho malware, explota una vulnerabilidad en el ‘WebKit’, el núcleo del motor Javascript para el navegador Safari. A través de este ‘exploit’, los atacantes consiguen ejecución en el sistema una vez que el usuario visita el enlace a la web maliciosa. Este enlace se enviaba a través de aplicaciones como Whatsapp, Twitter o Gmail.

La distribución del enlace malicioso a través de estás aplicaciones, permite que el ‘exploit’ ejecute el código malicioso con los mismos permisos que la aplicación en la que se abre, lo que permite a los atacantes tener acceso a los documentos almacenados por la aplicación. Esto significa que si el usuario visita el enlace a través de Whatsapp, el código malicioso puede acceder a los documentos almacenados por la aplicación de Whatsapp (mensajes de chats, archivos multimedia, etc.).

La infección a través de ‘exploits’ maliciosos es una de las más peligrosas, ya que, como en el caso del malware dirigido a grupos tibetanos, el usuario solamente tiene que visitar la web maliciosa. Aún así, es poco probable el uso de este tipo de vulnerabilidades para el robo de credenciales bancarios, ya que encontrar vulnerabilidades de seguridad es realmente costoso, y una vez descubierta la vulnerabilidad es mucho más rentable venderla. El alto precio de estas vulnerabilidades hace que suelan utilizarse para ataques dirigidos a entidades de gran interés.

Infección a través de tiendas oficiales

En el caso de la tienda oficial de Android, el Google Play, se detectado varias aplicaciones maliciosas publicadas en el mismo en los últimos años. Si bien es cierto que Google ha endurecido las revisiones de aplicaciones del Google Play en el último año, tratando así de reducir la posibilidad de que los atacantes distribuyan malware a través de su tienda.

En el caso de iOS, su tienda oficial, la App Store, ha realizado revisiones manuales de aplicaciones desde su lanzamiento. Y aunque estas revisiones dificultan que alguna aplicación maliciosa acabe publicada, también en el caso de la App Store algunas aplicaciones maliciosas han acabado publicadas en la tienda.

La primera de las aplicaciones maliciosas que se coló en la tienda oficial de Apple fue ‘Instastock’, desarrollada por el investigador de seguridad Charlie Miller en 2011. La aplicación explotaba una vulnerabilidad en el sistema operativo iOS, a modo de prueba de concepto. Esta aplicación se desarrolló y envió a la App Store para comprobar si las revisiones eran suficientemente robustas. El resultado fué que la aplicación acabó publicada en la tienda.

Más recientemente, en 2015, investigadores de la universidad de Indiana enviaron a la App Store una nueva aplicación que incluía una prueba de concepto de las vulnerabilidades ‘XARA’. Estas vulnerabilidades permitían a una aplicación maliciosa acceder a los recursos almacenados por cualquier otra aplicación instalada. Esta prueba de concepto también acabó publicada en la tienda de aplicaciones de Apple.

Conclusiones

De acuerdo a nuestro análisis podemos decir que muy raramente podemos encontrar malware bancario como tal dirigido a dispositivos iOS, aunque si malware espía que podría robar datos bancarios. Gracias a las restricciones implementadas por Apple en su sistema operativo, las posibilidades del malware en iOS, tanto bancario como de propósito más general, son muy limitadas, lo que reduce considerablemente el interés de los atacantes.

Los controles realizados por Apple y Google en sus respectivas tiendas de aplicaciones reducen las posibilidades de que una aplicación maliciosa acabe publicada en las tiendas oficiales, sin embargo, los controles no son infranqueables y a lo largo de los años se han publicado varias aplicaciones maliciosas. Aún así, ambas plataformas, especialmente la de Google, han aumentado sus esfuerzos para mejorar sus procesos de revisión de aplicaciones.

Las tres características principales necesarias para el robo de credenciales bancarias en Android (ejecución de servicios en segundo plano, listado de aplicaciones en primer plano y ejecución de ‘overlays’) no están disponibles en iOS. En el caso de los servicios en segundo plano, iOS permite a los desarrolladores que sus aplicaciones se ejecuten en segundo plano, pero de una forma restringida y basada en la actividad que vayan a desarrollar.

Una forma efectiva de robar datos bancarios en iOS es el uso de ‘tweaks’ maliciosos para inyectar código en otras aplicaciones. De esta forma, el malware podría inyectar código en las aplicaciones legítimas de las entidades bancarias y robar las credenciales de acceso sin que el usuario se percate.

Otra opción consistiría en distribuir aplicaciones fraudulentas suplantando a las de entidades bancarias. Para ello, pueden distribuir el fichero IPA de instalación firmado con un certificado de empresa sin pasar por la Apple Store. La dificultad de este ataque se encuentra en obtener un certificado de empresa sin proporcionar datos reales de los atacantes, que podrían ser localizados y arrestados en caso de que sean descubiertos.

Por último, también existe la posibilidad de utilizar ‘exploits’ para vulnerabilidades de seguridad que permitan instalar aplicaciones maliciosas, o incluso el control total del dispositivo, permitiendo que el atacante intercepte las comunicaciones de red realizadas por el dispositivo infectado. Aunque este tipo de vector de ataque suele utilizarse en ataques dirigidos a grupos concretos y de interés, debido la dificultad para encontrar y explotar estas vulnerabilidades.

Las restricciones impuestas por Apple dificultan en gran medida la distribución y desarrollo de malware para iOS. Sin embargo, y como hemos podido observar, esto no impide que los atacantes encuentren diferentes caminos para lograr infectar dispositivos iOS. Las limitaciones de los dispositivos iOS reducen la superficie de ataque, pero no lo hacen ni mucho menos invulnerable.


.

.

Temas: Cybersecurity

 

 

Deep Learning for Online Fraud Prevention


Últimos artículos

Analizando el riesgo de malware bancario en Android vs. iOS

read more

Atractivo criminal y comportamiento virtual seguro

read more

Overlays: La técnica preferida por los bankers en Android

read more