viernes, junio 24, 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 (DalacomKcellMobile 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 delucrarse 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: MonkeyJump2Angry BirdsCity 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 unsocket TCP en los puertos 54324501 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 AegisSymantecLookout, 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 elbloqueo 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?


No hay comentarios.: