martes, 4 de marzo de 2014

Un Rootkit para Android

En el departamento antifraude hemos analizado un troyano Android que envía SMS premium y hemos encontrado una rutina muy interesante para ocultarse al usuario. Para ello, cuando la aplicación se ejecuta por primera vez, el icono de la aplicación desaparece de la lista de aplicaciones mientras que la aplicación sigue ejecutándose en segundo plano. Por eso, podemos clasificar este troyano como rootkit a nivel del usuario. Hemos usado DEXInspector para hacer ingeniería inversa sobre el.

Cuando la aplicación se ejecuta, se llama a la función "onCreate" (mostrada abajo). En primer lugar, invoca una clase denominada "Utilities" que contiene funciones para instalar aplicaciones Android, mover archivos, etc. Posteriormente va a usar esta misma clase para quitar el icono ejecutando la función "iconRemoval" e instalar otra aplicación que se llama "GrandThieftAuto3-Uncut-v1.3.apk" que se encuentra en la carpeta "assets". Finalmente ejecutará la parte maliciosa a partir de la clase "com.example.smsmessaging.TestService" para recoger los números SMS premium y enviarlos de manera periódica.


Reconstruyendo la función "iconRemoval" en alto nivel (el código desensamblado en Dalvik está abajo) obtenemos el siguiente código, que es sencillo:

 packageManager = getPackageManager()
 packageManager.setComponentEnabledSetting(componentToDisable, 0x2, 0x1)


En primer lugar, el malware obtiene una instancia del gestor de paquetes para tener acceso a los paquetes instalados y luego va a cambiar el estado de su propio componente. Para ello, usa la función "setComponentEnabledSetting" pasándole el nombre de su componente; su nuevo estado, 0x2, que se corresponde con COMPONENT_ENABLED_STATE_DISABLED lo que permite desactivar el componente de la interfaz gráfica (com.example.smsmessaging.Main) y 0x1 que corresponde a DONT_KILL_APP para que la aplicación siga funcionando en segundo plano. Sin embargo no se desactiva el componente responsable de la ejecución en segundo plano (com.example.smsmessaging.TestService).

Abajo vemos dos capturas con el antes y después de la ocultación del troyano que se llama "GamerPluskit".

  Antes de ocultar el icono                                                                  Después de ocultar el icono

Por supuesto, el malware necesita el permiso
"android.permission.CHANGE_COMPONENT_ENABLED_STATE". En otras palabras, el usuario debería sospechar cuando un programa requiere dicho permiso. Sin embargo hemos probado en Jelly Beans sin ese permiso y funciona.

Para persistir al reinicio, el malware se registra al evento "BOOT_COMPLETED" que le permite ejecutarse cuando Android arranca. En efecto, el troyano solo había desactivado el componente responsable de la interfaz gráfica (com.example.smsmessaging.Main) y no el componente responsable del servicio que ejecuta la parte maliciosa (com.example.smsmessaging.TestService).

Hemos analizado un rootkit Android sencillo que usa las funciones de la API de Google para ocultarse. Es decir, instala otra aplicación y quita el icono de la lista de aplicaciones mientras sigue en ejecución en segundo plano. Vemos que los troyanos de Android se vuelven más sofisticados y podríamos hacer un paralelismo entre la complejidad del malware para PC con el malware de Android.

Más información:

SHA-256 de la muestra:
77d7217013a5539a1611e13d67dcb8ad8756e9dd34ef8515d71409cadf323a0f


Laurent Delosières

4 comentarios:

  1. It has been quite beneficial for me to read your essay, and I concur with the backrooms

    ResponderEliminar
  2. ¡Qué buena publicación! Muchas gracias y tengo muchas ganas de leer más y más artículos tuyos. fnaf

    ResponderEliminar
  3. Your style is so unique compared to many other people. Thank you for publishing. Abogado Transito Frederick VA

    ResponderEliminar
  4. El análisis del algoritmo de descifrado del malware Careto revela una compleja ingeniería por parte de los creadores para evadir la detección. La capacidad de ocultar su código malicioso y utilizar técnicas avanzadas de ofuscación muestra un alto nivel de sofisticación. Los expertos en ciberseguridad destacan la habilidad del algoritmo para eludir las medidas de seguridad convencionales, lo que subraya la necesidad de enfoques más avanzados en la protección contra amenazas cibernéticas. La minuciosidad del análisis resalta la importancia de la colaboración entre la comunidad de seguridad informática para comprender y contrarrestar eficazmente amenazas como Careto. Este estudio proporciona valiosas perspectivas para fortalecer las defensas contra ataques similares en el futuro.contratos disputas litigio






    ResponderEliminar