I ricercatori di Kaspersky hanno scoperto un nuovo malware per Android. La particolarità di SoumniBot è l'uso di una tecnica di offuscamento che sfrutta alcuni bug nella procedura di estrazione e analisi del manifesto delle app. Le funzionalità sono quelle di un trojan bancario, quindi l'obiettivo dei cybercriminali è raccogliere informazioni sul dispositivo e rubare dai sensibili, tra cui le credenziali di login ai conti correnti.
Tre tecniche di offuscamento
Ogni pacchetto APK è un archivio ZIP con il file AndroidManifest.xml
nella cartella root che contiene informazioni su componenti, permessi e dati dell'app. SoumniBot sfrutta tre tecniche per aggirare le misure di sicurezza. La prima usa un valore invalido di compressione per l'estrazione del manifesto dall'archivio, utilizzando la libreria libziparchive
. A causa di un bug, il parser Android accetta qualsiasi valore diverso da 8 e consente di scrivere dati non compressi, ovvero quelli del malware.
L'intestazione di AndroidManifest.xml
contiene la dimensione del file. A causa di un bug viene però indicata una dimensione più grande di quella reale. Ciò permette di aggiungere il codice del malware che non viene rilevato da Android. SoumniBot usa infine una lunga stringa di nomi di namespace XML nel file AndroidManifest.xml
. Il parser di Android ignora i namespace, quindi il malware non viene rilevato.
All'avvio dell'app infetta, il trojan bancario scarica alcuni parametri di configurazione dal server remoto. Inizia quindi a raccogliere informazioni sul dispositivo, tra cui numero di telefono e operatore. Successivamente esfiltra indirizzo IP, elenco dei contatti, SMS, MMS, foto, video, elenco delle app installate e certificati digitali delle banche.
Il malware è difficile da rimuovere perché l'icona dell'app infetta viene nascosta. Quasi certamente la distribuzione avviene tramite store di terze parti. Google ha infatti comunicato che nessuna app con SoumniBot è stata trovata sul Play Store.