Hace cinco años, los investigadores hicieron el devastador descubrimiento de que las bibliotecas utilizadas por los desarrolladores para generar ingresos publicitarios habían convertido en secreto aplicaciones legítimas de Android vendidas en Google Play Market. Como resultado, la aplicación fue infectada con un código que provocó que 100 millones de dispositivos infectados se conectaran a servidores controlados por atacantes y descargaran una carga útil secreta.
La historia ahora se repite. Investigadores de la misma empresa de seguridad con sede en Moscú, Rusia, informaron el lunes que encontraron dos nuevas aplicaciones de Play que fueron descargadas 11 millones de veces estaban infectadas con la misma familia de malware. Los investigadores de Kaspersky creen una vez más que el culpable es un kit de desarrollo de software malicioso que integra funcionalidad publicitaria.
tecnología inteligente
Un kit de desarrollo de software (SDK) es una aplicación que proporciona a los desarrolladores un marco que puede acelerar significativamente el proceso de creación de aplicaciones al agilizar las tareas repetitivas. Un módulo SDK no verificado integrado en la aplicación aparentemente admitía la visualización de anuncios. Sin embargo, detrás de escena, proporcionó una serie de técnicas sofisticadas para comunicarse secretamente con servidores maliciosos. Las aplicaciones cargaban datos de usuario y descargaban código malicioso que podía ejecutarse y actualizarse en cualquier momento.
La familia de malware sigiloso utilizada en ambas campañas se conoce como Necro. Esta vez, algunas variantes utilizan técnicas como la esteganografía, una técnica de ofuscación rara vez vista en el malware móvil. Algunas variantes también emplean técnicas sofisticadas para generar código malicioso que puede ejecutarse con privilegios elevados del sistema. Una vez que un dispositivo está infectado con esta variante, se conecta a un servidor de comando y control controlado por un atacante y envía una solicitud web que contiene datos JSON cifrados que informan sobre cada dispositivo comprometido y la aplicación que aloja el módulo.
Luego, el servidor devuelve una respuesta JSON que contiene un enlace a la imagen PNG y los metadatos asociados, incluido el hash de la imagen. Una vez que un módulo malicioso instalado en el dispositivo infectado verifica que el hash es correcto, descarga la imagen.
El módulo SDK “utiliza un algoritmo de esteganografía muy simple”, explicaron los investigadores de Kaspersky en una publicación separada. “Si la verificación MD5 tiene éxito, se utilizan herramientas estándar de Android para extraer el contenido del archivo PNG (los valores de píxeles para los canales ARGB). Luego, el método getPixel extrae el valor cuyo byte menos significativo contiene el canal azul del imagen y el procesamiento comienza en su código.”
Los investigadores continuaron:
Considerando el canal azul de la imagen como una matriz de bytes de dimensión 1, los primeros 4 bytes de la imagen son el tamaño de la carga útil codificada en formato little endian (desde el byte menos significativo hasta el byte más significativo). Luego se registra una carga útil del tamaño especificado. Este es un archivo JAR codificado en Base64 que se carga después de decodificarlo con DexClassLoader. Coral SDK utiliza la biblioteca nativa libcoral.so para cargar la clase sdk.fkgh.mvp.SdkEntry en un archivo JAR. Esta biblioteca se ofusca utilizando la herramienta OLLVM. El punto de partida o punto de entrada para la ejecución dentro de una clase cargada es el método de ejecución.
Necrocódigo que implementa magnificación/esteganografía.
kaspersky
Las cargas útiles posteriores instaladas descargan complementos maliciosos que se pueden combinar para realizar diversas acciones en cada dispositivo infectado. Uno de los complementos le permite ejecutar código con privilegios elevados del sistema. De forma predeterminada, Android prohíbe que los procesos privilegiados utilicen WebView, una extensión del sistema operativo que permite que las aplicaciones muestren páginas web. Para eludir esta restricción de seguridad, Necro utiliza una técnica de piratería llamada ataque de reflexión para crear otra instancia de la fábrica WebView.
Este complemento también puede descargar y ejecutar otros ejecutables que reemplazan los enlaces representados en WebView. Cuando se ejecutan con privilegios elevados del sistema, estos ejecutables pueden modificar las URL para agregar códigos de verificación para suscripciones pagas o descargar y ejecutar código cargado en enlaces controlados por atacantes. Los investigadores enumeraron cinco cargas útiles distintas que encontraron en su análisis de Necro.
El diseño modular de Necro permite que el malware funcione de muchas maneras diferentes. Kaspersky proporcionó la siguiente imagen para brindarle una descripción general.
Diagrama de infección ampliado/necrotroyano.
kaspersie
Los investigadores descubrieron Necro en dos aplicaciones de Google Play. Una es Wuta Camera, que se ha descargado 10 millones de veces hasta la fecha. Las versiones 6.3.2.148 a 6.3.6.148 de Wuta Camera contenían un SDK malicioso que infecta aplicaciones. Desde entonces, la aplicación se actualizó para eliminar el componente malicioso. También resultó infectada otra aplicación (Max Browser), que se descargó aproximadamente 1 millón de veces. Esta aplicación ya no está disponible en Google Play.
Los investigadores también descubrieron que Necro infecta varias aplicaciones de Android disponibles en mercados alternativos. Estas aplicaciones normalmente se anuncian como versiones modificadas de aplicaciones legítimas como Spotify, Minecraft, WhatsApp, Stumble Guys, Car Parking Multiplayer y Melon Sandbox.
Cualquier persona preocupada de haber sido infectada con Necro debe revisar su dispositivo para detectar cualquiera de los indicadores de compromiso enumerados al final de este artículo.
https://arstechnica.com/security/2024/09/11-million-devices-infected-with-botnet-malware-hosted-in-google-play/