Durante la semana pasada tuvo lugar una de las conferencias más reconocidas internacionalmente dentro de la industria de la seguridad, Virus Bulletin, que este año fue escenificada en la ciudad de Denver, Estados Unidos. Numerosos expositores demostraron ante el público sus más novedosas investigaciones y allí estuvo nuestro equipo de ESET para atestiguarlas y presentar propios hallazgos tras meses de arduo trabajo.
Para todos nuestros ávidos lectores que no hayan podido asistir, desde WeLiveSecurity en Español estaremos repasando las conclusiones de algunas de las charlas más relevantes. Como era de esperarse por mi área de preferencia, estaré relatando en las próximas entradas de blog algunas de las charlas relacionadas a plataformas móviles que más llamaron mi atención.
Wild Android Collution: malware sinérgico
Una de las primeras charlas de la conferencia fue “Wild Android Collution”, presentada por Jorge Blasco. Su concepto central giró en torno al potencial que poseen los mecanismos de comunicación IPC (Inter-Process Communication) en Android cuando se los combina con múltiples aplicaciones maliciosas cuidadosamente diseñadas para actuar sinérgicamente y sacar provecho de ellos.
Sabemos que Android es un sistema basado en sandboxing, donde cada aplicación posee permisos de lectura/escritura sobre un limitado espacio del sistema de archivos, que le pertenece unívocamente, y sobre algunos otros recursos públicamente disponibles. En otras palabras, una aplicación no puede acceder a los archivos privados de otras aplicaciones; el proceso de interacción entre apps se produce a través de mensajes llamados “intentos” que son manejados por el driver del kernel (Binder) y un conjunto de librerías de espacio de usuario.
Ahora bien, el concepto de malware sinérgico es algo que ya hemos discutido en otras ocasiones. La primera aproximación a este fenómeno es la construcción de un conjunto de códigos maliciosos, cada uno capaz de acceder a un número reducido de permisos, que luego interactúen entre ellos mediante canales abiertos (intentos, content providers, almacenamiento externo, shared preferences, sockets, etcétera) o canales encubiertos (audio, cámara, intensidad de brillo, wake locks, utilización de la CPU, espacio libre en memoria, entre otros).
La segunda aproximación al concepto es el aprovechamiento por parte de los cibercriminales de aplicaciones que poseen fallas debido a desarrolladores que no protegen sus creaciones. Por ejemplo, sabemos que los archivos de shared preferences no deberían utilizarse como medio de comunicación, pero lo son. Cuando una aplicación vulnerable accede a recursos restringidos, el malware saca provecho de ello; este escenario es conocido como ataque de redelegación de permisos.
El malware sinérgico tiene dos grandes ventajas respecto a las aplicaciones maliciosas tradicionales. En primer lugar, puede permitir la evasión de la detección, ya que cada app por sí misma no encierra completamente la actividad maliciosa. En segundo lugar, puede esconder el verdadero propósito del ataque, haciendo más difícil la tarea de los analistas para determinar qué información fue accedida y a dónde fue enviada.
Esto plantea un serio problema ya que constituye un punto ciego en cuanto a seguridad: por un lado, el usuario no puede saber qué interacciones se dan entre las aplicaciones; por otro lado, Google no puede controlarlo.
Como se explicó a lo largo de la conferencia, los objetivos que este tipo de códigos maliciosos móviles pueden perseguir son variados: robo de información, robo de dinero –por ejemplo, mediante suscripción a mensajes SMS Premium o la instalación de ransomware–, perpetración de ataques DoS, abuso de servicios legítimos –como ser el envío de mensajes de spam mediante el correo electrónico– o sincronización de payloads para conseguir escalar el impacto del ataque.
Si aún crees que este tipo de malware no está entre nosotros...
...mejor siéntate antes de continuar leyendo.
Para descubrir campañas activas de malware sinérgico, los investigadores centraron su estudio en un conjunto de 50.000 muestras, sobre las cuales se analizó la manera en que utilizaban archivos de shared preferences para luego categorizar el comportamiento según reglas de Prolog.
Así fue como descubrieron comportamiento sinérgico en el SDK MoPlus, del cual ya se conocía una capacidad de permitir el control remoto. Los investigadores descubrieron que todas las aplicaciones con esta librería que estuviesen instaladas dentro de un mismo dispositivo interactúan entre ellas para determinar cuál de ellas es la que posee la mayor cantidad de privilegios, para luego ser esta única la que abre un servidor HTTP.
De este modo, la librería maliciosa lograría hacerse de la mayor cantidad de permisos posibles, los cuales son aceptados por el usuario al utilizar la aplicación donde se encuentra embebida. Como se especificó durante la presentación, a través de este servidor un atacante podría enviar intentos, robar información, instalar otras aplicaciones o añadir nuevos contactos.
Lecciones aprendidas
Tal y como indicó el orador, las repercusiones que estos nuevos hallazgos tienen sobre la manera en que nos protegemos pueden centrarse en tres ejes principales:
- Es necesario generar los mecanismos que nos permitan detectar este tipo de códigos
- El equipo de seguridad de Android deberá diseñar algún sistema regulatorio para la comunicación entre aplicaciones
- Debemos trabajar hacia la transparencia con el usuario final, para que pueda conocer cómo interactúan sus aplicaciones y pueda realizar una valoración informada sobre qué tan de acuerdo está con lo que ocurre en su dispositivo.
Evidentemente, el malware sinérgico es una realidad y debemos tomar consciencia de ello.