viernes, 28 de octubre de 2016

Gusano de Android utiliza ingeniería social para distribuirse

Son muchas las formas de distribución del malware, una de las más habituales es la ingeniería social. En el Laboratorio hemos encontrado una nueva muestra de un gusano para Android que aprovecha esta técnica con gran efectividad.

¿Pero, qué es eso de la ingeniería social? Alguna vez te habrá llegado un mensaje del estilo: "¡Mira esta foto!", "A ver si te encuentras en la foto de anoche!", "Mira, ¡agua en Murcia!". Todo esto, por supuesto, acompañado de un enlace o foto falsa con su respectivo "regalito". Este gusano aprovecha dicho método para distribuirse.

Evidentemente usa el desconocimiento o la curiosidad del usuario para instalarse. Es el propio usuario el que movido por el mensaje abre un enlace o aplicación incluida y de esa forma el malware termina instalado en el dispositivo.

Una vez instalado, solicita permiso para añadirse al dispositivo como administrador, además de pedir autorización para bloquear la pantalla. Con esto impide al usuario detener la acción maliciosa. Por ejemplo, bloquear el teléfono mientras se están enviando SMS, o desbloquearlo para frenar este comportamiento.


En este caso, la explicación que nos da (en chino), para solicitar este permiso es "Improved access protection".

El mecanismo de distribución, comienza nada más abrirse la aplicación.


Como observamos, la aplicación lee la lista de contactos al completo, almacenando el nombre junto con el número de teléfono. De esta manera puede enviar mensajes 'personalizados' a cada uno de los contactos. Este mensaje, sería algo así:

(CONTACTO):这影像 pywkh(.)cc = (CONTACTO):Mira esta imagen pywkh(.)cc

NOTA: No acceder a la URL, contiene la APK maliciosa

Una vez el usuario reciba el enlace, enviado por alguien de confianza y además mencionando su nombre, probablemente lo pulsará y será infectado.

Se recolecta información del dispositivo, y posteriormente se comunica por SMTP. Por "sorpresa", el autor no se ha molestado en ocultar sus credenciales; es decir, van en plano.




El peligro de este Malware no solo reside en su gran facilidad de distribución, sino que debido a tener diferentes servidores desde donde descargar el APK malicioso, puede cambiar en cualquier momento a una aplicación mucho más peligrosa.

Como conclusión de este análisis, tenemos las recomendaciones habituales de hacer click o pulsar sobre enlaces que desconozcamos, y menos aun instalar aplicaciones desconocidas, especialmente fuera del Market oficial.

SHA256: 15af04bba0ed13f13e49ce5cad459d88dbcf723b47becc3e11a7f8ff6075635e



Fernando Díaz



jueves, 20 de octubre de 2016

Integrando las detecciones de Koodous en tu flujo de negocio

Hace unos días explicamos en otra entrada de este blog cómo crear reglas Yara para detectar malware en Koodous. Ese post fue una introducción a las reglas Yara para posteriormente explicar cómo integrarlas en el modelo de negocio de una empresa. Es lo que vamos a realizar a continuación.

Queremos dar ideas sobre cómo automatizar la detección de reglas Yara, es decir, utilizar la API que provee Koodous para extraer todas las aplicaciones detectadas por una regla. Básicamente hemos realizado un script para tal fin que ha sido publicado en GitHub (https://github.com/Koodous/Scripts/blob/master/new_detections.py), pero nos gustaría explicar su funcionamiento para cualquier usuario pueda adaptarlo a sus propias necesidades y flujo de información.

Dicho script se basa en las notificaciones de usuario, por lo tanto lo primero que haremos será crear una regla Yara en Koodous:


En este caso se ha creado una regla para detectar unas muestras concretas de un SMSFraud. El título indicado en la parte superior "SMSFraud" es importante, pues nos indicará la regla que ha detectado el APK cuando usemos el script. Debes elegir un nombre identificativo para tu sistema.

Después es importante tener en cuenta que las notificaciones deben estar activadas. En la parte derecha de la edición de reglas debe aparecer así:


Al menos el botón de "Notify me" debe estar activado. Las notificaciones que genere esta regla serán las que usemos para integrar nuestro sistema.

A continuación descargamos el script de:

Es un script en Python bastante simple. Lo único que tenemos que configurar a priori son estos campos dentro del script:


"RULENAMES" es una lista con los nombres de las reglas que queremos automatizar. En este caso utilizamos "SMSFraud".

"TOKEN" debe ser nuestro token de usuario. Podemos verlo en la siguiente URL una vez logueados en Koodous: https://koodous.com/settings/profile

"WAITING_TIME" corresponde al tiempo de espera entre un ciclo y otro expresado en segundos. El tiempo por defecto son 5 minutos, suficientes para no saturar el sistema y que todos podamos vivir en armonía :)

Después de esto sólo hace falta lanzar el script y ver resultados:


Por supuesto, dentro del script hay una función llamada "send_to_another_system". En ella se debe incluir el código que envíe al sistema de tratamiento de muestras.


Antonio Sánchez


 

jueves, 13 de octubre de 2016

Curiosity, el nuevo gusano de Android

Lejos de la realidad, el “Curiosity” al que se refiere al título, nada tiene que ver con ninguna misión espacial "murciana". Esta vez, se trata de un nuevo gusano para Android que en la actualidad está alcanzando un gran número de infecciones.

Gracias a Koodous hemos conseguido una muestra y hemos procedido a un análisis del mismo
En la actualidad ya hay hasta 11 muestras que cumplen la regla Yara creada para la detección de Curiosity.

Si analizamos el comportamiento de Curiosity vemos que una vez infecta a la víctima obtiene una lista de todos los contactos registrados en el teléfono y se autoenvía a través de enlaces en SMSs y phishing. Esto le ha permitido conseguir distribuirse rápidamente en diferentes dispositivos y crear una amplia red de infecciones.

Este malware, actúa de la siguiente manera:
  • Una vez instalado, se establece como aplicación de SMS por defecto.
  • Intercepta los mensajes recibidos por el usuario.
  • Elimina el número del que recibirá la comunicación de la lista negra, para poder establecer contacto.
  • Aprovecha el servicio de Push de Google (C2DN) para las comunicaciones SMS o llamadas.
  • Colecciona la información del usuario, mensajes, contactos, modelo del teléfono, historial del navegador, aplicaciones instaladas, marcadores… (Se verá más en detalle a continuación).
  • Toma el control sobre las llamadas, tanto para realizarlas como para colgar el teléfono al usuario.
  • Toda esta información es posteriormente enviada a un servidor remoto (atacante).




La curiosidad mató al robot

Observamos cómo se cumplen los comportamientos anteriores. Primero comprueba si es la aplicación por defecto para el envió de SMS, de lo contrario se establecerá como tal:


Y el comportamiento referente a la lectura de los mensajes entrantes, podemos observarlo a continuación…




Como "anécdota", el creador de esta aplicación dejó su presunta dirección de correo electrónico a la vista para recibir los reportes de fallos en su aplicación (Y así poder mejorarla a futuro).


Los primeros permisos que solicita, se pueden ver a continuación:

private static final String[] INITIAL_PERMS = {
"android.permission.ACCESS_FINE_LOCATION",
"android.permission.ACCESS_COARSE_LOCATION",
"android.permission.CALL_PHONE", "android.permission.SEND_SMS",
"android.permission.READ_SMS", "android.permission.READ_CONTACTS",
"android.permission.WRITE_CONTACTS",
"android.permission.READ_CALENDAR",
"android.permission.WRITE_CALENDAR" };


También, gracias al "descuido" por parte del autor de este Malware, contamos no solo con el servidor al que se conecta sino, que observamos que cuenta con una API que utiliza para comunicarse.












Además, si observamos dicha URL, podemos ver cómo enmascara la página principal…


Ninguna de las funcionalidades de la web es operacional, salvo el login… (Y la API)

Esta API, ofrece funcionalidad el control de las llamadas, de las cuales almacena toda la información disponible, quién llamó, cuánto duró..:


Además del control sobre las llamadas, también facilita el envío al atacante de información como contactos, SMS almacenados, historial de llamadas grabadas...

Entre los mensajes utilizados para distribuirse, encontramos uno de ellos en español, por lo que es posible que este troyano se distribuya por países hispano-parlantes: El mensaje en español empleado para su propagación es 
"Hola   He encontrado aquí sus fotos privadas
http://bit.ly/XXXXX
clic para ver
".
Además de otros idiomas que podemos observar en la captura mostrada a continuación:


También comprobamos como roba más información: IMEI, modelo, sistema operativo, red conectada, teléfono, país…



Como recomendación ante este tipo de amenazas, que se distribuyen a través de SMS es no visitar enlaces desconocidos que lleguen (especialmente, si desconocemos quién nos envía el mensaje), evitar la instalación de aplicaciones fuera del Market oficial y la instalación de Koodous desde Google Play:



Fernando Díaz






miércoles, 5 de octubre de 2016

Al FBI no le importa mucho que veas porno

El uso de Koodous en el Laboratorio se ha extendido como la mejor herramienta para la detección de nuevas muestras de malware. Hace un año aproximadamente comenzamos a detectar un tipo de malware que suplantaba la imagen del FBI, evidentemente, con no muy buenas intenciones. Una de las grandes ventajas que ofrece Koodous a la comunidad de investigadores es la generación de reglas Yara que permiten monitorizar, y detectar, la aparición de nuevo malware; así que en su momento generamos una regla Yara para controlar su expansión. En la actualidad, más de un año después, todavía sigue dando buenos resultados. 

Por esta razón vamos a explicar un poco cómo funciona. Para ello emplearemos la muestra más reciente de esta familia para analizarla. En este caso el nombre lo dice todo (hay que recordar que "Internet is for porn"). Se trata de esta:



Como analistas de malware las formas de enfrentarse a una nueva muestras pasan por las realización de análisis estáticos y dinámico. El propio Koodous ya nos da un avance de lo que puede llegar a pasar. Gracias a los análisis dinámicos que realiza nos informa que el malware se conecta a dos URLs 


y nos informa de los permisos que requiere.



Aquí ya podemos ver algunos permisos que hacer saltar las alarmas.

En este punto cabe señalar el SYSTEM_ALERT_WINDOW que ya nos da un indicio de lo que va a pasar al ejecutar la aplicación. Este permiso permite a una aplicación crear ventanas con el tipo TYPE_SYSTEM_ALERT, mostrándola por encima de otras aplicaciones.

Tras estas pruebas, es necesario ver cómo actúa de cara al usuario y confirmar los informes de Koodous. Para ello realizamos un análisis dinámico sobre una máquina virtual y lo primero que vemos es que, efectivamente, la muestra se conecta a dos URLs varias veces.


La primera de ellas es http://promotld[dot]biz/api2/time.php?data=null&rnd=XXX, donde XXX es un número aleatorio en cada petición. La segunda conexión que realiza es a http://wnimmf5cxs[dot]pornfre18x[dot]review/zz/ que devuelve un error 404 sin contenido. Esta última página es la que se muestra cuando se arranca la aplicación inicialmente.

Después la aplicación se hace esperar 3 minutos (180.000 milisegundos),



Para después mostrar la siguiente pantalla:


Una pantalla que sin duda nos recuerda a las ya habituales de cualquier ransomware. Cómo olvidar el clásico "virus de la policía". Y como no podía ser menos, es eso lo que pasa. Esta pantalla no nos permite salir al menú de navegación normal, bloquea el móvil y no te deja usarlo. Hemos probado los habituales "trucos" para salir pero no hemos conseguido nada efectivo, incluso tras reiniciar el móvil se abre muy rápido. Como es habitual pide una recompensa económica por liberar el móvil, en este caso de 500 dólares.

Lo único que permite es navegar por el menú inferior que muestra, para mostrar diferentes ventanas para hacer el pago con tarjetas de crédito, información de nuestro teléfono que supuestamente ha sido enviada al FBI y el “marco legal” por el que se realiza esta acción, supuestamente "PRISM":


Una vez hemos visto cómo actúa de cara al usuario es necesario asociar cada uno de los estados al código estático. En primer lugar localizamos el código donde se abre la página web (que recordemos, en nuestro caso no existe, así que lanza un error 404).


Vemos que el diseñador del malware la ha definido en el AndroidManifest.xml y posteriormente la ha usado en el MainActivity para abrir un WebView y mostrarla:


En intervalos aleatorios el malware visita una página web que construye con diferentes cadenas, posiblemente para evitar su detección sin un análisis dinámico. Para ello utiliza el siguiente código:


Además, el malware también toma imágenes con la cámara frontal para "asustar" aún más al usuario del teléfono:



Aunque el malware bloquea el teléfono impidiendo su uso, en esta ocasión en ningún momento cifra ningún archivo del teléfono ni lo envía al exterior. Lo único que hace es mostrar las pantallas que hemos enseñado anteriormente con información del usuario para atemorizarlo y hacerlo pagar.

Para prevenir la instalación de este tipo de malware recomendamos las medidas habituales, como evitar repositorios alternativos, comprobar los permisos de las aplicaciones y la instalación de Koodous desde Google Play:




Antonio Sánchez