Aplicaciones de ClickBot – Zimperium

Aplicaciones de ClickBot Zimperium El cibercrimen, como todo delito, tiene sus móviles; cada malware tiene su propio beneficio malicioso.

El spyware te espía. Ransomware exige un rescate para descifrar sus datos digitales privados. Phishing Phishes de malware para su nombre de usuario, contraseña o números de cuenta. El fraude de instalación logra instalaciones de software falsas. El fraude publicitario representa de manera fraudulenta impresiones, clics, conversiones o eventos de datos de anuncios en línea para generar ganancias financieras para el desarrollador. Y, por último, está el fraude de clics.

El fraude de clics (CF) es un tipo de fraude publicitario que abusa en línea pago por clic publicidad en la que un anunciante paga a un editor cuando se hace clic en el anuncio y es un gran negocio para los desarrolladores.

Las estimaciones conservadoras de Interactive Advertising Bureau atribuyen los ingresos del fraude publicitario a 8.2 mil millones dólares estadounidenses, lo que lo convierte en uno de los principales delitos cibernéticos que generan ingresos.

Clicking Bot Applications (CBA) utiliza varios métodos para simular los clics de los usuarios a fin de generar ingresos, a qué anuncios se dirigen, cómo los CBA son controlados por su servidor de comando y control (C&C) y cómo evitar los métodos de detección que son comúnmente usado contra ellos.

Aunque esos CBA se utilizan para obtener una ganancia financiera fraudulenta a expensas de los anunciantes y editores, algunos de los métodos y funciones de los CBA se pueden utilizar fácilmente para ransomware, spyware y otros tipos de malware.

El motor central de aprendizaje automático de Zimperium, z9 para malware móvil, detecta aplicaciones maliciosas previamente desconocidas y exploits de día cero. Como parte de la validación z9 de la detección de aprendizaje automático para malware, varios Android Aplicaciones potencialmente dañinas (PHAs) que eran CBAs y parte de una Malware Botnet que controla la actividad de sus CBAs.

Mi investigación reciente de CBA identificó varias circunstancias en las que se pueden identificar los clics y por qué medios. Probé varios métodos y después de cambiar el código del CBA, determiné qué se debe agregar para lograr un resultado CBA eficiente. También probé otros métodos de clic automático que se pueden usar, pero esta publicación técnicamente no especificará ninguna mejora adicional para la actividad de CBA.

Uno de los métodos de la CBA intentó defraudar al Red de audiencia de Facebook. Después de que nosotros, el equipo de malware de Zimperium, identificáramos el CBA, informamos al equipo de calidad del tráfico y fraude de Facebook sobre las aplicaciones maliciosas. Proporcionamos los detalles de la aplicación, las identificaciones de cuenta del SDK y los clics automáticos que pudimos reproducir para que Facebook pudiera decidir cómo reaccionar. Rápidamente eliminaron las aplicaciones de Audience Network y nos informaron que nuestra investigación les permitió encontrar un conjunto de aplicaciones que usaban este mismo vector de ataque. Nuestra investigación ayudó a confirmar que las aplicaciones eran realmente maliciosas y eliminó las posibilidades de que los clics fueran de bots y no de usuarios reales.

A continuación, proporciono segmentos de código descompilado y desofuscado y referencias de API de Android en las que puede presionar el enlace URL o dejar que un CBA lo haga por usted.

La red de malware “Dinero por nada”

Como parte de nuestra actividad de defensa de Android, el equipo de malware de Zimperium identificó algunos APK clasificados como PHA.

Al investigar el archivo de referencia de los PHA alojado en un dominio CDN cloudfront.net, el equipo logró encontrar algunos otros archivos de configuración y algunos APK conectados a complementos antiguos de C&C de Ztorg.

La antigua actividad maliciosa de C&C de Ztorg se relacionaba con:

  1. Envío de mensajes SMS premium
  2. Ataques de clickjacking en páginas web con facturación WAP (por javascript)

La red de malware más reciente agrega actividad maliciosa adicional de CBA y adware:

  1. Anuncios basados ​​en secuencias de comandos de Java haciendo clic automáticamente en funciones de suscripción automática de anuncios.
  2. Carga dinámica de la aplicación por parte del aplicación virtual Las aplicaciones cargadas son otro Malware. Más anuncios obtienen mayores ingresos.
  3. Abusando de Android Servicio de Accesibilidad para hacer clic automáticamente. Abusar del Servicio de Accesibilidad es el peor tipo de abuso con respecto al clic automático. Abusar de este servicio permite que la aplicación acceda a hacer clic en los botones de todas las aplicaciones, incluida la configuración del dispositivo.
  4. Abusando de Android DispatchTouchEvent API para hacer clic automáticamente. Este es un abuso «más leve» ya que los clics se encuentran en los anuncios publicitarios de la CBA.

En esta publicación se especificarán las dos últimas metodologías de auto-clic.

1677772634 365 Aplicaciones de ClickBot Zimperium

Los CBA de ‘Dispatch Touch Event’ de la API de Android

Para el uso legítimo de las pruebas y el desarrollo de la interfaz de usuario, el ViewGroup.dispatchTouchEvent permite la simulación de un toque de usuario mediante el envío de un Evento de movimiento al objetivo Ver grupo componente de la interfaz de usuario.

Un CBA puede abusar de esto y hacer clic en los componentes de la interfaz de usuario de su propia aplicación, por lo tanto, puede usarse de manera fraudulenta para hacer clic en los banners de anuncios de las aplicaciones.

El marco de publicidad puede detectar fácilmente este tipo de fraude por dispositivo individual al:

  1. Observando las diferentes propiedades del toque humano de MotionEvent como precisión, presión, valor escalado del tamaño aproximado del área que se presiona cuando se toca con el dedo y algunas banderas y propiedades más. Los valores constantes o aleatorios se pueden identificar fácilmente.
  2. Observar la distribución estadística del evento táctil como el tiempo del evento, el tiempo de inactividad y las coordenadas táctiles. Al hacer clic en una tarifa frecuente o constante, se identificará fácilmente.
  3. Observando la distribución estadística de las diferentes partes del anuncio en las que se hizo clic, como ícono, título, etiqueta patrocinada, vista de medios, contexto social, acción, etc. Es muy probable que un usuario presione el botón «cerrar» de vez en cuando.

El CBA intentará superar el marco publicitario realizando las siguientes acciones:

  1. Cuando el usuario toca los componentes de la interfaz de usuario de la aplicación, se guardan las propiedades del último MotionEvent que tocó el usuario. Esas propiedades se utilizarán en el siguiente clic fraudulento.
  2. El evento de clic se enviará dentro de una cierta probabilidad configurada. Se guarda el tiempo del último evento de clic y no se enviará un segundo clic si no transcurre esta cantidad de tiempo.
  3. Las partes de la interfaz de usuario del anuncio se eligieron con un determinado modelo de distribución, incluido el cierre del anuncio.

Algunas características más de la infraestructura central de CBA:

  • Si un determinado anuncio ya no está disponible debido a la identificación del fraude, se seleccionará el SDK de otro anuncio.
  • Qué anuncios son fraudulentos con qué anuncios alternativos es parte de la configuración de CBA.
  • La configuración de CBA define las tasas de clics, el tiempo mínimo entre dos clics, los anuncios dirigidos y su respaldo, y si el servidor de C&C debe activarlos como CBA. También se proporciona inicialmente una configuración predeterminada.
  • Además de la plataforma de publicidad móvil de Facebook, en la lista de configuración de CBA Ads SDK hay AdMob por Google y Haga doble clic Ad Exchange de Google. Más anuncios como MobVista, InMobi y el Anuncio de DU La plataforma que pertenece al gigante de búsquedas en Internet de China, Baidu, se promociona agresivamente, pero no hay evidencia para hacer clic automáticamente en ellos.

Revisemos el código descompilado de la aplicación com.life.read.physical.trian.

Todos los comentarios en el código fueron agregados por zLabs. Se eliminó parte del código para acortar los fragmentos de código.

1. Las últimas propiedades del evento de movimiento táctil del usuario se guardaron previamente

2. El evento de clic se enviará dentro de una cierta probabilidad configurada

3. Las partes de la interfaz de usuario de anuncios se eligieron con una cierta distribución

1-3 El evento de clic se envía dentro de las propiedades guardadas y las propiedades aleatorias

Configuración de activación de CBA

Configuración de anuncios CBA

Anuncios de CBA alternativos

CBA de servicios de accesibilidad

Un servicio de accesibilidad es un Servicio de Android que proporciona mejoras en la interfaz de usuario para ayudar a los usuarios con discapacidades, o que temporalmente no pueden interactuar por completo con un dispositivo.

Los servicios de accesibilidad solo deben usarse para ayudar a los usuarios con discapacidades a usar dispositivos y aplicaciones Android. El servicio otorga a una aplicación la capacidad de descubrir widgets de UI que se muestran en la pantalla, consultar el contenido de estos widgets e interactuar con ellos mediante programación, todo como un medio para hacer que los dispositivos Android sean más accesibles para los usuarios con discapacidades.

Aplicaciones de ClickBot Zimperium

El malware ha estado utilizando el abuso del servicio de accesibilidad (ASA) para ataques graves de malware como el reciente DoubleLocker Ransomware y los malwares Sedun (también conocidos como Kemoge, Shiftybug y Shuanet).

El uso del Servicio de Accesibilidad y/o el Dibujar en la parte superior permisos que permite que una aplicación cree ventanas que se muestran encima de todas las demás aplicaciones se definió como el Capa y daga ataques Estos ataques juntos permiten que una aplicación maliciosa controle completamente el ciclo de retroalimentación de la interfaz de usuario y tome el control del dispositivo sin que el usuario lo note.

A diferencia del CBA anterior que no requería permiso, los ataques Cloak & Dagger (C&D) requieren los permisos SYSTEM_ALERT_WINDOW (Dibujar en la parte superior) y BIND_ACCESSIBILITY_SERVICE (Servicio de accesibilidad), pero el permiso SYSTEM ALERT WINDOW se otorga automáticamente para las aplicaciones instaladas desde Play Store.

El abuso de ambos permisos puede maliciosamente obtener algunas de las peores capacidades de malware:

  1. Instalación silenciosa de la aplicación. Dado que la instalación no necesita el consentimiento del usuario, la aplicación puede ser una aplicación en modo Dios (con todos los permisos habilitados) o, en otras palabras, puede instalar un software espía.
  2. Un phishing sigiloso muy eficiente.
  3. Bloquee el acceso al dispositivo cambiando el PIN a uno controlado por el atacante (y retenido para pedir rescate)
  4. Grabación de pulsaciones de teclas, incluidas las contraseñas (solo necesita el permiso del Servicio de Accesibilidad).

Instalación silenciosa de la aplicación

1677772634 324 Aplicaciones de ClickBot Zimperium

Mostremos cómo un CBA de Android instala otra aplicación de Android sin el consentimiento del usuario al abusar del Servicio de Accesibilidad.

Si bien los clics de fraude publicitario se notan en un dispositivo como se describe en el método CBA anterior, el fraude de instalación o el fraude de tráfico no se pueden descubrir en el dispositivopero podría ser descubierto por otra identificación basada en información del lado del servidor.

Esta publicación trata sobre la investigación de los ingresos que obtienen las redes CBA, por lo tanto, es probable que las aplicaciones instalen solo más Adware o CBA. Sin embargo, un CBA que tiene los permisos para cometer un ataque C&D puede volverse peor que un simple clic de fraude de anuncios porque:

  1. Las aplicaciones de Android pueden cargar código no supervisado de forma dinámica mediante el aplicación virtual marco o cualquier otro por otros DexClassLoader técnica basada. Este código puede ser un Ransomware, un Spyware o robar contraseñas.
  2. La aplicación instalada es sin el consentimiento del usuario y sin la aceptación de Google Play Store y, por lo tanto, puede ser Ransomware o Spyware, robar contraseñas o convertirse en uno mediante la carga dinámica de un código no supervisado como el anterior.

Encontré malware que usa clics automáticos para la instalación de aplicaciones, pero prefiero mostrar mis propias muestras de código limpio de prueba de concepto que ofuscar parcialmente el código de ingeniería inversa.

El siguiente ejemplo instalará una aplicación haciendo:

  1. Registre un AccessibilityService en el manifiesto para servicio de accesibilidad.AccessibilityService filtro de intenciones
  2. Solicitar el Servicio de Accesibilidad por un motivo “razonable” si no se le concedió antes.
  3. Para ocultar las ventanas de instalación: cubra la pantalla con un diseño usando el LayoutParams.TYPE_SYSTEM_ALERT bandera.
  4. Inicie la actividad de instalación de un archivo local apk.
  5. Filtre en AccessibilityService para un AccessibilityEvent del Actividad del instalador del paquete actividad en el android.packageinstaller paquete
  6. Encuentre el botón de instalación para hacer clic en findAccessibilityNodeInfosByText
  7. Haga clic automáticamente con performAction(AccessibilityNodeInfo.ACTION_CLICK)
  8. Haga retroceder la pantalla de cobertura si se usó.

Registrar un Servicio de Accesibilidad en el Manifiesto

Solicitar el Servicio de Accesibilidad por Motivo “Razonable” si no fue Concedido Antes

1677772635 745 Aplicaciones de ClickBot Zimperium

Ocultar las ventanas de instalación en un contenido «relevante»

1677772635 517 Aplicaciones de ClickBot Zimperium

Inicie la actividad de instalación para un archivo local apk

1677772635 871 Aplicaciones de ClickBot Zimperium

Busque el «botón Instalar» y haga clic en él

Veamos el malware ‘XVideo’ que hace lo anterior solo sin tratar de ocultar la actividad de instalación.

El malware también había implementado algunas otras características típicas de malware para evitar la detección de malware por parte de Google Play:

  • Todas las actividades de la aplicación se denominan pronclub.* aunque el nombre del paquete de la aplicación es muy diferente.

<solicitud androide:nombre=“org.gro.jp.fjksbxcvbcxnnxlsdtApp” …>

<actividad androide:nombre=“com.pronclub.GdetailActivity” />

<actividad androide:nombre=“com.pronclub.GwebActivity” />

<actividad androide:nombre=“com.pronclub.GpointActivity” />

  • La aplicación contiene APK en sus activos. el encabezado de los APK está codificado con XOR rodante. el código dex fue cargado dinámicamente por el DexClassLoader.

DexClassLoader dLoader = new DexClassLoader(str, str2, str4, (ClassLoader) fjksbxcvbcxnnxswdpkff.getFieldfjksbxcvbcxnnxklOjbect(fjksbxcvbcxnnxalldd[3]wrfjksbxcvbcxnnx.get(), fjksbxcvbcxnnxalldd[4]));

El CBA tiene un nombre de servicio de accesibilidad «Play decoder++». El nombre del código de la aplicación es «servicio de instalación automática», lo que indica su función real.

<cadena nombre = «acc_auto_install_service_name»>[Decoder] Reproducir decodificador ++ cadena>

<servicio android_label=”@string/acc_auto_install_service_name” android_name=”com.ted.android.service.bni” android_permission=”android.permission.BIND_ACCESSIBILITY_SERVICE”>

Otros métodos de clics fraudulentos y comparación

El fraude de clics es complicado y está codificado para evadir la detección. Echemos un vistazo a algunos de los métodos y parámetros que uno debe cuestionar al determinar si una aplicación hace clic de manera fraudulenta fuera de la interacción del usuario.

  1. ¿Puede hacer clic fuera de los componentes de la interfaz de usuario de la aplicación (Facebook, haga clic en WhatsApp)?
  2. ¿Qué permisos de aplicación requiere?
  3. ¿Necesita tener Raíz permiso o ejecutar como aplicación del sistema (una aplicación que se coloca en la carpeta / system / app, muchas veces firmada por la firma de la plataforma del sistema operativo)?
  4. ¿Se nota en el dispositivo? Como antes, las observaciones basadas en la información se completan en el lado del servidor y no dependen del método de clic.

Cuando un usuario hace clic en un componente de la interfaz de usuario de Android (ViewGroup), el sistema operativo o los parámetros del SDK de anuncios que se ven en el dispositivo se verán como el siguiente resultado. Por ejemplo, un evento de clic del usuario produce dos MotionsEvent para presionar hacia abajo y levantar.

MotionEvent

MotionEvent

Definamos la detección en el dispositivo: si el clic fraudulento se puede detectar observando los parámetros MotionEvent anteriores.

La API de Android ‘Dispatch Touch Event:

Como se presentó anteriormente aquí.

  1. Puede hacer clic solo en los componentes de la interfaz de usuario de la aplicación.
  2. No necesita ningún permiso para ejecutarse.
  3. Para realizar la acción no es necesario ser root ni ejecutarse como una aplicación del sistema.

Si se hace como en el código com.life.read.physical.trian descompilado anterior, pocos parámetros extraditan el fraude.

En primer lugar, el fuente=0x1002en segundo lugar, el ‘tipo de herramienta[0]=TIPO_HERRAMIENTA_DESCONOCIDO’.

Guardar referencias y reciclar algunos componentes de la interfaz de usuario de Android como MotionEvent.PointerCoords, MotionEvent.PointerProperties, configurar algunas «fuentes» más y usar la reflexión en algunos lugares sobre la API privada obtendrá un resultado que aparentemente no se puede notar en un dispositivo!

Y luego, si se usa sabiamente, hay dinero para nada.

Abuso del servicio de accesibilidad:

Como se presentó anteriormente aquí.

  1. Puede hacer clic en otros componentes.
  2. Necesita el permiso BIND_ACCESSIBILITY_SERVICE. El inicio de un servicio de accesibilidad se activa exclusivamente cuando el usuario activa explícitamente el servicio en la configuración del dispositivo.
  3. No necesita acceso de root ni se ejecuta como aplicación del sistema.

El evento de clic se puede notar en el dispositivo como el ‘tipo de herramienta[0]=TOOL_TYPE_UNKNOWN’ extraditar el fraude.

Si bien el fraude de anuncios puede notar el fraude de clics en anuncios en el dispositivo, el fraude de instalación o el tráfico no deben descubrirse en el dispositivopero podría ser descubierto por otra identificación basada en información del lado del servidor.

Usando la capa de nivel inferior de Android Canalización de entrada:

El subsistema de entrada de Android nominalmente consiste en una canalización de eventos que atraviesa varias capas del sistema. Un usuario de shell puede usar el binario de «entrada» para crear eventos táctiles.

  1. Puede hacer clic en otros componentes.
  2. No necesita ningún permiso para ejecutarse.
  3. Necesita un permiso de usuario de Shell lo que significa que un permiso de Root es «suficiente»

El evento de clic se puede notar en el dispositivo como el ‘tipo de herramienta[0]Los parámetros =TOOL_TYPE_UNKNOWN’ extraditan el fraude.

Reflexión sobre el método injectInputEvent de la clase “InputManager”:

Usando API de reflexión de Javasobre el Administrador de entrada.

  1. Puede hacer clic en los componentes de la aplicación. Al ejecutar en el usuario de Shell puede hacer clic en otros componentes.
  2. No necesita ningún permiso para ejecutarse.
  3. Es posible que deba ejecutarse como una aplicación del sistema, según el nivel del sistema operativo y el dispositivo.

El evento de clic se puede notar en el dispositivo como el ‘tipo de herramienta[0]=TOOL_TYPE_UNKNOWN’ parámetro que extradita el fraude.

Hay otras formas de cometer fraude publicitario, fraude de instalación y fraude de tráfico de datos que no se mencionaron, como:

  1. Templado de los SDK de anuncios
  2. Ingeniería inversa de los SDK de anuncios y envío de eventos falsos mediante la reflexión.
  3. Enganchar los SDK del anuncio o la interfaz de usuario del sistema.

Conclusiones

Los convenios colectivos se están volviendo cada vez más sofisticados. Los desarrolladores de aplicaciones con acceso a los últimos kits de desarrollo pueden ser muy creativos para jugar con el sistema. Dadas todas las variables, los CBA pueden evadir la detección por completo a menos que exista un método más inteligente y en tiempo real para eliminarlos de nuestros dispositivos.

En el futuro, los principales proveedores de anuncios exigirán un mecanismo defensivo o un seguro contra el fraude de bots y clics para no pagar dinero como resultado del fraude. Los desarrolladores de aplicaciones deberán proporcionar una protección integral como zIAP™ para detectar fraude y malware móvil en tiempo real. Si no se proporciona dicha protección, lo más probable es que un desarrollador no confiable o un dispositivo desprotegido obtenga menos ingresos por clic.

Espero que se haya beneficiado de nuestros ejemplos y estudios de casos documentados sobre el fraude de clics. zLabs realiza este tipo de investigación sobre aplicaciones, sistemas operativos móviles y hardware para ofrecer los mejores productos y servicios de seguridad móvil para proteger su información personal y corporativa.

Si tiene una pregunta específica o desea enviar comentarios a zLabs o a cualquier otro equipo, utilice nuestro Contáctenos página para iniciar una consulta.

Me gustaría agradecer a todos los investigadores de zLabs, especialmente a Matteo Favaro (@fvrmateo) para la investigación anterior.

Espero que hayas disfrutado de tu lectura. ¡Puedes compartirlo si te gusta, o dejar que el CBA lo haga por ti!

Aplicaciones de ClickBot Zimperium

Deja un comentario