28 febrero 2011

Evolución del malware en dispositivos Android

Desde hace unos meses se ha podido observar cómo el desarrollo de malware ha sufrido un considerable aumento para dispositivos basados en el sistema operativo desarrollado por Google. Fruto de ello es en gran parte la laxitud por parte del usuario en temas de seguridad y el triunfo cada vez mayor en el uso de esta nueva plataforma.

Es un hecho indiscutible que cada vez las tareas cotidianas que realizábamos desde nuestro equipo personal queden relegadas a un segundo plano gracias a la comodidad y el confort que nos produce tener un dispositivo de capacidades similares y que podamos portar a cualquier sitio.

A esto le debemos sumar que la frontera que divide el uso personal del uso corporativo no está bien definida y por tanto su uso puede adoptar nuevas funcionalidades como el acceso a una VPN de la empresa, administrar el correo o manejar temas bancarios por poner sendos ejemplos. Es cuestión de tiempo que acabemos por tener la misma funcionalidad de un equipo en nuestro smartphone, algo más fácil ahora con la llegada de las tablets.

Esto es algo de lo que los desarrolladores de malware son bastante conscientes y que evidentemente no dejan pasar por alto, prueba de ello es la frecuencia con la que se están sucediendo nuevos ataques, cada vez más efectivos y elaborados.

El objetivo de esta entrada, es recoger a modo de resumen la evolución que se ha ido desarrollando en los últimos meses relacionada con aplicaciones maliciosas para sistemas Android.

Tap Snake


Fue el primer caso de malware recogido por la firma antivirus Symantec. Propagada a través del market como aplicación legítima, era un sustituto del conocido juego para móviles "Snake".


Entre sus permisos encontrábamos:
  • android.permission.ACCESS_COARSE_LOCATION
  • android.permission.ACCESS_FINE_LOCATION
Encargados de acceder a la localización del dispositivo a través del WiFi o GPS. Algo totalmente innecesario para la aplicación.

El objetivo de la misma era declarar un servicio llamado "SnakeService" que se instalaba en el dispositivo y se inicializaba en cada reinicio del terminal. Permaneciendo su ejecución en background, imposibilitaba salir de la aplicación, de esta forma recababa la información exacta de nuestra posición e informaba de la misma al servidor en intervalos de quince minutos o tras realizar un cambio de localización.



Posteriormente estos datos podían recuperarse y cotejarse con las coordenadas de Google Maps para geolocalizar al objetivo a través de la aplicación "GPS Spy" desarrollada por la misma empresa.

Fake Player


Este nuevo malware detectado por Dr. Web constituyó el primer caso real que afectó de manera

significativa a los usuarios de dispositivos Android. Se recibió el primer espécimen en Agosto del pasado año.

En este caso se sirvió de la premisa de ser un reproductor multimedia cuya funcionalidad nunca estaría presente en el código.

Entre sus permisos encontrábamos:
  • android.permission.SEND_SMS
Teniendo como objetivo el envío de mensajes SMS a números de tarificación especiales con un
coste aproximado de entre cuatro y seis dólares cada uno. Si bien estos resultaron proceder de Kazajistán (3353 y 3354), parecían no afectar a países que no tuvieran relación con el proveedor del servicio (Dalacom, Kcell, Mobile Telecom Service), este hecho unido al mensaje en ruso que enviaba, lo asociaban a Rusia como país de procedencia. Y por tanto confirmaba el hecho de no afectar al resto de países.

Al igual que "Tap Snake" se distribuyó por el market oficial de Google como una aplicación legítima, una vez se descubrió su cometido fue retirada del mismo. Es la primera aplicación que se tiene constancia que trate de lucrarse de forma ilegal a costa del usuario.

Geinimi


Analizado aquí en una entrada anterior, supuso un cambio de esquemas en lo referente al malware aparecido hasta el momento. Procedente china, se sirvieron de aplicaciones legítimas para distribuirlas por los markets chinos ilegales, infectando el código y empacando nuevamente el apk.

Para ello se escogieron las principales aplicaciones que tenían mayor éxito entre los usuarios: MonkeyJump2, Angry Birds, City Defense, y Baseball Superstarts 2010 entre otras.

Entre sus permisos destacábamos:
  • android.pemission.CALL_PHONE
  • android.permission.SEND_SMS
  • android.permission.READ_CONTACTS
  • android.permission.WRITE_SMS
  • android.permission.RECEIVE_SMS
Geinimi fue el primero en aplicar ofuscación de código y utilizar el algoritmo DES para cifrar las comunicaciones con el servidor, añadiendo una capa de complejidad no vista con anterioridad. Otra de sus características era montar un socket TCP en los puertos 5432, 4501 o 6543, utilizado para recibir los mensajes y actualizar la versión del malware en caso de que hubiera una superior.

También enviaba información privada a una serie de direcciones web quedando posteriormente en un estado de stand-by a la espera de recibir órdenes. Esto demostraba que nos encontrábamos ante el primer caso de malware que transformaba nuestro dispositivo en un bot. En total se llegaron a contar cerca de una veintena de comandos.

HongTouTou

Último malware aparecido, en esta ocasión repetía el mismo patrón de infección que
Geinimi, utilizando aplicaciones de terceros legítimas para infectar su código y distribuirse por markets de dudosa reputación. Aplicaciones como RoboDefense y algunos wallpapers fueron las escogidas.

En esta ocasión solicitaba los siguientes permisos:
  • android.permission.WRITE_APN_SETTINGS
  • android.permission.RECEIVE_BOOT_COMPLETED
  • android.permission.ACCESS_NETWORK_STATE
  • android.permission.READ_PHONE_STATE
  • android.permission.WRITE_EXTERNAL_STORAGE
  • android.permission.INTERNET
  • android.permission.MODIFY_PHONE_STATE
Una vez el teléfono era iniciado enviaba información privada como el IMEI y el IMSI a un servidor remoto, a lo que respondía enviando un conjunto de direcciones procedentes de un motor de búsqueda y un conjunto de palabras claves para usarlas posteriormente simulando procesos de búsqueda de forma inocua al usuario y conseguir llevar los resultados al primer puesto emulando clicks en los resultados deseados.

Tal y como sucedía con Geinimi, una de sus funcionalidades era la posibilidad de descargarse un APK llamado "myupdate.apk" para actualizar la versión del malware a la más reciente. Además de controlar en todo momento el tipo de red que usábamos en el teléfono e informar de ello al servidor.

Se terminó asociando su procedencia con China, debido a que utilizaba redes originarias de allí como "cmnet", "cmwap" (China Mobile Net), "uniwap" y "uninet" (China Unicom).

Hardening Android


Como siempre la responsabilidad final recae en manos del usuario, él es quien tiene la decisión de qué aplicaciones instalar o no en su dispositivo. Pero... ¿Existe realmente la posibilidad de estar a salvo de cualquier amenaza?

Independientemente de las soluciones antivirus que tan de moda se están poniendo en los últimos días, hay una serie de consejos que probablemente ayuden a prevenir cualquier foco de infección:
  • Descarga sólo aplicaciones de fuentes confiables como pueden ser los markets oficiales, y recuerda revisar las descripciones, comentarios y rating con los que son calificadas por los usuarios.
  • Revisa siempre los permisos que solicita una aplicación para ser instalada. Usa el sentido común para relacionar que los permisos son equiparables a la funcionalidad de la misma.
  • Vigila cualquier comportamiento raro que pueda hacer tu teléfono, como actividades inusuales en las conexiones, llamadas a números desconocidos o envío de mensajes SMS.
Compañías como Aegis, Symantec, Lookout, han sacado aplicaciones destinadas a combatir el malware en smartphones, además de incluir funcionalidades extras como la realización de backups, aplicar reglas como el bloqueo de llamadas a números, posibilidad de encontrar dispositivos perdidos, etc.

En lo que respecta a mi opinión personal, creo que un usuario bien concienciado es más que suficiente para mantener a salvo su teléfono, y que realmente las soluciones antivirus que se nos ofrecen no están preparadas para combatir el malware como tal. Dudo sinceramente que se aplique verdadera heurística y se busquen patrones de infección. Más bien lo veo como la oportunidad de vender un producto con funcionalidades adicionales.

Conclusión


Es evidente que se ha ido añadiendo mayor complejidad y funcionalidad, cada nuevo espécimen de malware que aparece se aprovecha de lo utilizado por el anterior e incluye nuevas funcionalidades que añaden una capa de complejidad mayor.

Si a todo esto le añadimos los fallos de seguridad que se han ido sucediendo, podemos obtener una combinación digna de festín.

Ahora mismo hay una barrera que evita la instalación de malware a mansalva y son los permisos. Para que una aplicación sea instalada, un usuario debe de dar su consentimiento. Pero... ¿Es posible evitarlos?

En un principio no, estos deben ser declarados en el AndroidManifest.xml y no hay forma alguna de añadir o retirar un permiso mediante técnicas de programación. Pero hace un par de meses el equipo de investigación de Lookout descubrió un fallo de seguridad que permitía realizar TapJacking (similar al clickjacking).



Se me ocurrió que esta sería una forma posible de eludir los permisos de una aplicación creando un vector de ataque basado en una aplicación legítima como un juego de machacar gatitos, y que por detrás se descargara nuestra aplicación maliciosa y se procediera a la instalación de la misma, de manera que en ningún momento el usuario fuera consciente y que aceptara los permisos de esta a raíz de las pulsaciones que realizara en la pantalla.

Ya hemos evitado esa pequeña barrera. ¿Cuánto tiempo pasará hasta que nos encontremos con aplicaciones que se aprovechen de estas vulnerabilidades?

-------------
 Contribución por Sebastián Guerrero

10 comments :

Vicente Motos dijo...

Buen artículo Sebas!

mcklaw dijo...

Hay una cosa escandalosa y es que tanto las aplicaciones del market normal como de otros markets "alternativos" piden un sinfin de permisos que obviamente no deberían.
El market normal debería estar un poco más filtrado, similar a la appstore, y los "alternativos" para los valientes, así el usuario medio estaría bastante más a salvo de todas estas cosas.

ehooo dijo...

Quizás se te ha pasado comentar "MSO.PJApps" otro malware para Android que salió antes de Geinimi (dic 2010) y que tambien contruye una bot, pero que no ha sido tan publicitado como el anterior.

Pero esta bastante completo.
Buen trabajo 0xroot

INFO:
http://www.virustotal.com/file-scan/report.html?id=bb83569a41edc2bfb49fde9bc3a62c0baa8a1725bc92bfa207fd187744edd8f4-1298017592

http://www.netqin.com/en/security/newsinfo_3657_2.html

SPECTRAdo dijo...

Pero android no permite denegar ciertos servicios como hace el iPhone?

Cuando yo me instalo por ejemplo el angry birds, al arrancarlo el iPhone me avisa q quiere acceder al GPS y me pide confirmación, y ahí yo puedo aceptar o no el uso de ese servicio.

Sebastián Guerrero dijo...

Gracias @Vicente.

@mcklaw pero aunque el market estuviera filtrado, el problema no se evitaría así, la cosa está en que el usuario medio suele tener un conocimiento en seguridad bastante bajo y no se molestan en ver qué permisos solicitan las aplicaciones.

@ehooNo tenía conocimiento de ese malware, gracias por el apunte.

@SPECTRAdo No, en Android no tienes en ningún momento control sobre los permisos que solicita una aplicación, al instalarla has de ser consecuentes con estos y saber a lo que te ciñes.

Jesús "zNk" dijo...

Uff muy buen artículo, haces un muy buen repaso y nos previenes de cosas que no había pensado!
Yo tenía instala el RoboDefense :(

Sigue así tio, muy bueno :)

mcklaw dijo...

Hola @Sebastian,

Perdona por el retraso en contestar. Yo creo que aunque no lo eliminaría los troyanos evidentemente, si que restringiria enormemente su impacto. ¿Para qué necesita los Angry Birds acceso a tu agenda, a tu localización, acceso a internet...? Evidentemente que lo mejor sería que todos los usuarios estuvieran concienciados con temas de seguridad, repercusiones, etc. pero eso es utópico.

Si las aplicaciones del market "estandar" tuvieran permisos correctos y adecuados, aunque contuvieran troyanos, tampoco podrian hacer nada. ¿de que sirve un keylogger si no puede enviar datos? Además dudo que usuarios estandar accedan a repositorios no alternativos.

Saludos

bertol dijo...

Existen dos especímenes más para la familia:

- SW.SecurePhone.
- SW.Quieting.

Tal vez puede que en cuanto a funcionamiento no aporten nada novedoso, pero por si acaso te los menciono :)

Sebastián Guerrero dijo...

@bertol Sí, SW.SecurePhone se ejecuta desapercibida para el usuario, y recoge datos como SMS, los logs de las llamadas e imágenes y las sube a un servidor. También recoge la localización de nuestro teléfono y habilita la posibilidad de grabar sonidos

SW.Qieting monitoriza los SMS.

En este caso se tratan de spywares, y aunque todavía no he tenido oportunidad de analizarlos a fondo, creo que estos no son distribuidos por aplicaciones de terceros infectadas.

bertol dijo...

@Sebastián Guerrero: Es verdad se tratan de spyware :)

Otro caso encontrado recientemente en el Market oficial - que ha salido quitado - ha sido DroidDream.

INFO:
http://blog.mylookout.com/2011/03/security-alert-malware-found-in-official-android-market-droiddream/