wmtech logo

Nuevo troyano para Android ‘SoumniBot’ evita la detección con trucos inteligentes

Luis Quiles
Luis Quiles
trojan
Seguridad Movil, Malware

Se ha detectado un nuevo troyano para Android llamado SoumniBot en la naturaleza, dirigido a usuarios en Corea del Sur aprovechando debilidades en el procedimiento de extracción y análisis del manifiesto.

El malware es «notable por un enfoque poco convencional para evadir el análisis y la detección, específicamente la ofuscación del manifiesto de Android», dijo el investigador de Kaspersky Dmitry Kalinin en un análisis técnico.

Cada aplicación de Android viene con un archivo XML de manifiesto («AndroidManifest.xml») que se encuentra en el directorio raíz y declara los diversos componentes de la aplicación, así como los permisos y las características de hardware y software que requiere.

Sabiendo que los cazadores de amenazas típicamente inician su análisis inspeccionando el archivo de manifiesto de la aplicación para determinar su comportamiento, se ha descubierto que los actores de amenazas detrás del malware aprovechan tres técnicas diferentes para hacer que el proceso sea mucho más desafiante.

El primer método implica el uso de un valor de método de compresión inválido al desempaquetar el archivo de manifiesto del APK utilizando la biblioteca libziparchive, que trata cualquier valor que no sea 0x0000 o 0x0008 como no comprimido.

«Esto permite a los desarrolladores de aplicaciones poner cualquier valor excepto 8 en el método de compresión y escribir datos no comprimidos», explicó Kalinin.

«Aunque cualquier desempaquetador que implemente correctamente la validación del método de compresión consideraría inválido un manifiesto como ese, el analizador de APK de Android lo reconoce correctamente y permite instalar la aplicación».

Vale la pena señalar aquí que el método ha sido adoptado por actores de amenazas asociados con varios troyanos bancarios para Android desde abril de 2023.

En segundo lugar, SoumniBot falsifica el tamaño del archivo de manifiesto archivado, proporcionando un valor que excede la cifra real, como resultado de lo cual el archivo «descomprimido» se copia directamente, con el analizador de manifiestos ignorando el resto de los datos de «superposición» que ocupan el resto del espacio disponible.

«Los analizadores de manifiestos más estrictos no podrían leer un archivo como ese, mientras que el analizador de Android maneja el manifiesto inválido sin errores», dijo Kalinin.

La técnica final tiene que ver con el uso de nombres de espacio XML largos en el archivo de manifiesto, lo que dificulta que las herramientas de análisis asignen suficiente memoria para procesarlos. Dicho esto, el analizador de manifiestos está diseñado para ignorar los espacios de nombres y, como resultado, no se generan errores al manejar el archivo.

SoumniBot, una vez lanzado, solicita su información de configuración desde una dirección de servidor codificada en el código para obtener los servidores utilizados para enviar los datos recopilados y recibir comandos utilizando el protocolo de mensajería MQTT, respectivamente.

Está diseñado para lanzar un servicio malicioso que se reinicia cada 16 minutos si se termina por alguna razón, y carga la información cada 15 segundos. Esto incluye metadatos del dispositivo, listas de contactos, mensajes SMS, fotos, videos y una lista de aplicaciones instaladas.

El malware también es capaz de agregar y eliminar contactos, enviar mensajes SMS, cambiar al modo silencioso y habilitar el modo de depuración de Android, sin mencionar ocultar el icono de la aplicación para hacer que sea más difícil desinstalarla del dispositivo.

server

Una característica destacada de SoumniBot es su capacidad para buscar en los medios de almacenamiento externo archivos .key y .der que contienen rutas a «/NPKI/yessign», que se refiere al servicio de certificado de firma digital ofrecido por Corea del Sur para gobiernos (GPKI), bancos y bolsas de valores en línea (NPKI).

«Estos archivos son certificados digitales emitidos por bancos coreanos a sus clientes y se utilizan para iniciar sesión en servicios bancarios en línea o confirmar transacciones bancarias», dijo Kalinin. «Esta técnica es bastante inusual para el malware bancario de Android».

A principios de este año, la empresa de ciberseguridad S2W reveló detalles de una campaña de malware emprendida por el grupo Kimusuky, vinculado a Corea del Norte, que utilizaba un roba información basado en Golang llamado Troll Stealer para extraer certificados GPKI de sistemas Windows.

«Los creadores de malware buscan maximizar el número de dispositivos que infectan sin ser detectados», concluyó Kalinin. «Esto los motiva a buscar nuevas formas de complicar la detección. Los desarrolladores de SoumniBot lamentablemente tuvieron éxito debido a validaciones insuficientemente estrictas en el código del analizador de manifiestos de Android».

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Descubre los últimos artículos del blog sobre seguridad cibernética.