Analisi tecnica · banking trojan

Il banking trojan travestito da app per autisti

Ci è stato sottoposto come sospetto spyware un file che porta il nome di una vera applicazione per autisti VTC. Non è quella applicazione. È un repackage trojanizzato che ne ruba nome e identificativo per travestirsi: firma falsa, si mostra come «System» con l'icona nascosta, 65 permessi e un servizio di accessibilità camuffato da componente di sistema — il corredo completo di un banking trojan con presa di controllo del dispositivo.

Riccardo Bacci — Mythos Sentinel, Terni · 5 settembre 2026

Prima di tutto, per chi cerca

Su Google Play questo file non c'è

Va detto subito, perché è la domanda che si fa chi legge: di questo campione non c'è traccia sullo store. Non è distribuito da Google Play e non lo si incontra cercando lì. È arrivato come file, per installazione manuale — la via classica di questa famiglia.

Sullo store esistono però applicazioni somiglianti e legittime, ed è proprio questo il punto delicato: cercando il nome si trovano app reali, pulite, di editori veri, che possono far credere di avere a che fare con la stessa cosa. Non lo sono. Abbiamo analizzato le app reali con quel nome, prese dalle fonti ufficiali, e sono risultate pulite: firma dell'editore reale, permessi coerenti, nessun comportamento anomalo. Nessuna accusa le riguarda.

C'è anche una trappola a monte, nella ricerca stessa: cercando il nome dell'app per autisti, diversi siti che rivendono pacchetti Android ne propongono un'altra, con nome simile e circa 115 MB di peso, che non è quella cercata. L'app vera pesa poco più di 9 MB. Il peso, da solo, smaschera lo scambio.

La lezione di metodo

Il nome non è il file

All'inizio avevamo soltanto il nome del pacchetto. Un identificativo, da solo, non identifica un'applicazione: lo stesso nome può appartenere all'app vera e a un travestimento. Se avessimo giudicato il nome avremmo accusato un'app legittima — l'errore più grave che uno strumento di sicurezza possa commettere.

Abbiamo quindi analizzato prima le applicazioni reali con quel nome: entrambe pulite. Solo quando è stato analizzato il file vero — impronta diversa da entrambe — l'esito è cambiato. È la regola che ci portiamo dietro da questo caso: si giudica il file, cioè la sua impronta e la sua firma. Mai il nome.

Il confronto che decide

Stesso nome, file diverso

L'app legittima

Impronta SHA-256 e12d8173…8165c, 9,2 MB, firmata dall'editore reale (O=Chauffeur-privé, L=Paris), circa 19 permessi, nome e icona normali. Pulita.

Il campione trojanizzato

Impronta SHA-256 eca4c420…3badb, 15,4 MB — sei megabyte di codice in più — firma CN=Linda Smith, OU=Support, O=DataXcel, L=Fort Worth, ST=California. Certificato falso, e persino incoerente: Fort Worth sta in Texas, non in California.

Come si presenta

Si dichiara «System» e nasconde la propria icona dal menu delle app, usando un alias con un'etichetta fatta di caratteri invisibili. Chi ha il telefono in mano non ha nulla da toccare per accorgersene.

Dove si infila

Usa il namespace android.system.telephony.* e si registra come servizio di telefonia per fingersi componente di sistema. Compare inoltre nei menu di condivisione accanto alle app di posta e documenti.

Cosa può fare

65 permessi, e uno che conta più di tutti

L'app legittima ne chiede una ventina. Questo campione ne dichiara 65, e l'insieme non è casuale: è esattamente il corredo di un banking trojan con presa di controllo del dispositivo.

  • Servizio di accessibilità camuffato (BIND_ACCESSIBILITY_SERVICE, con una classe che si spaccia per componente di telefonia di sistema). È la chiave di tutto: chi ottiene l'accessibilità può leggere ciò che appare sullo schermo e toccare al posto dell'utente — cioè comandare il telefono da remoto.
  • Finestre sovrapposte (SYSTEM_ALERT_WINDOW): la tecnica con cui si disegna una falsa schermata di banca sopra quella vera.
  • Intercettazione degli SMS (RECEIVE_SMS): i codici usa-e-getta di conferma.
  • Rubrica, registro chiamate, microfono.
  • Elenco di tutte le app installate (QUERY_ALL_PACKAGES): serve a scegliere quali schermate bancarie imitare.
  • Installazione di altri pacchetti (REQUEST_INSTALL_PACKAGES): può portarne dentro altri.

All'avvio — osservato senza concedergli l'accessibilità — mostra una schermata quasi nera etichettata «System», tenta di contattare il proprio server e fallisce. È anche questo un guscio remoto: senza il suo server non fa nulla, e senza il suo server la richiesta di accessibilità non parte nemmeno.

Le due difese

Come hanno reagito

Play Protect, la protezione di Google presente sul telefono, ne blocca l'installazione come file dannoso. È il comportamento corretto, e va detto: su questo campione la difesa di sistema ha funzionato. Per poter osservare la reazione del nostro strumento l'abbiamo disattivata temporaneamente, solo per il test, e poi riattivata.

Mythos Sentinel lo rileva e lo nomina — «nuova app sospetta: System, installata fuori dallo store, chiede accessibilità» — e porta il punteggio a 49 su 100 con l'app installata e mai aperta, a 62 su 100 con l'app in esecuzione. Il punteggio sale sulle capacità e sul comportamento, non sul nome: sulla stessa app per autisti legittima resta a 16.

Un limite nostro, che scriviamo perché è servito a correggere il prodotto: il messaggio «hai installato tu questa app?» — che in un caso precedente era comparso — qui non è scattato. Il travestimento da «System» unito all'installazione manuale lo fa passare sotto quel controllo. Il rilevamento è comunque avvenuto per altra via, ma il difetto era reale ed è stato corretto.

Il limite, dichiarato

Cosa non siamo riusciti a estrarre

L'indirizzo del server di comando non lo abbiamo. Le stringhe, quell'indirizzo compreso, sono cifrate con AES-GCM e RC4, con chiave costruita solo durante l'esecuzione, dentro classi offuscate; la decompilazione conferma che nessun endpoint è leggibile in chiaro. Estrarlo richiederebbe agganciarsi all'applicazione mentre gira, cosa che non abbiamo fatto — e il server è comunque risultato spento.

Lo scriviamo perché è un dato, non una lacuna da nascondere: quell'anti-analisi è essa stessa una caratteristica riconosciuta di questa famiglia. E soprattutto il verdetto non dipende dall'indirizzo del server: firma falsa, occultamento da componente di sistema, accessibilità camuffata e permessi da presa di controllo sono già tutti nel file.

Se ti è arrivato un file così

Cosa portarsi a casa

  • Un'app che si chiama «System» e non ha icona è già un reperto. Nessun componente di sistema legittimo arriva installandolo a mano.
  • L'accessibilità è la chiave del regno. Concederla a un'app significa lasciarle leggere lo schermo e toccare al posto tuo. Controlla ogni tanto chi ce l'ha, e toglila a chi non ti serve.
  • Non installare pacchetti presi da siti che rivendono app. È da lì che arriva questa famiglia, ed è lì che ti rifilano un'app al posto di un'altra.
  • Se Play Protect blocca un file, non aggirarlo. In questo caso aveva perfettamente ragione.

Mythos Sentinel — cercare spyware e stalkerware su Android