lunedì 2 luglio 2012

Analisi di una applicazione malware 'Fake Token' per Android (2 luglio)

In un recente post dal nome “ Phishing, malware, servers remoti e procedure altamente automatizzate, insieme per il furto da conti bancari accessibili dalla rete “  si descriveva quanto emerge da recenti analisi sul malware orientato al furto su conti bancari gestibili on-line.
Anche se il post riguardava essenzialmente azioni compiute ai danni di utenti connessi alla rete da PC desktop la stessa cosa e' evidentemente associabile all'uso di dispositivi mobili attraverso i quali e' possibile eseguire transazioni online.

La rapida e continua 'evoluzione' dei dispositivi mobili (telefoni e tablets) unita alla crescente  popolarita' di Android hanno portato alla comparsa di malware,  o meglio, di crimeware sempre piu' sofisticato  che tenta di bypassare le attuali 'protezioni' delle procedure di gestione dell' E-Banking.
Attualmente sono molto diffuse, in particolare,  procedure di autenticazione a due fattori (password + token) che vengono applicate per aumentare l'affidabilita' di transazioni online e che vedono l'impiego sia di dispositivi  OTP hardware ma anche, in alternativa, l'invio via sms del  token di attivazione della transazione.
Quando,come nel caso che vedremo in dettaglio, la doppia autenticazione e'  gestita tramite un dispositivo mobile evoluto (cellulare, tablet....)  e'  possibile, attraverso un software malevolo,  simulare un dispositivo OTP e quindi la gestione dei token di autenticazione allo scopo di bypassare l'accesso al conto on-line.
Alla base di tutto questo c'e' quasi sempre una iniziale azione di phishing o comunque di spam per   tentare di far downloadare ed eseguire un software con caratteristiche malware  anche se in altri casi potrebbe esserci semplicemente la proposta di software fatto passare per applicazione legittima (giochi o altro),  ma in realta' con contenuti malevoli orientati al furto di passwords...ecc....
In ogni caso, il malware, se viene installato sul dispositivo mobile, cerca di interporsi tra l'ignaro utente  e il suo conto bancario on-line creando una situazione definibile come “man-in-the-middle“ gia' peraltro vista diffusamente   in attacchi di phishing evoluto gestito da PC desktop.

Vediamo adesso un reale caso di codice  APK Android che e' stato ben documentato in rete a partire da marzo-aprile di quest'anno e che, anche se non e' piu' una novita', riassume le caratteristiche ed il comportamento di malware di gestione di fake token..
Inoltre avendo disponibile il source potremo analizzare con qualche dettaglio in piu' la struttura dello stesso.

C'e' anche da ricordare che essendo passati mesi dalla sua comparsa, almeno per la configurazione di 'default' al momento dell'installazione,  i servers che erano utilizzati per acquisire le credenziali dell'utente e/o aggiornare i contenuti del malware, non sono piu' attivi.
Inoltre non e' stato verificato, se ad esempio la banca presa di mira da questo malware, abbia modificato nel frattempo la procedura di autenticazione rendendo piu' difficile un login fraudolento per i phishers ma in ogni caso questo file APK rimane comunque un bell'esempio di codice malware 'fake token'.

Prima di analizzare il file  e' anche interessante leggere alcune delle FAQs che compaiono attualmente sul sito della banca colpita dove alla domanda  dei tempi di ricevimento del code Token SMS abbiamo una risposta che forse potrebbe essere  anche ingannevole.

Si legge infatti:

How quickly will I receive a Passcode via SMS?

"The code is sent immediately and should normally be received within a few seconds (in some exceptional circumstances it could take a couple of minutes depending on network coverage). The OTP code is only valid for the current transaction."

Che significa:
 Quanto velocemente ricevero' il Token di autenticazione via SMS ?
Con risposta che tradotta  “ …....l'intervallo di tempo tra la richiesta del codice OTP e l''arrivo dell'SMS potrebbe  richiedere  …...... in alcune circostanze eccezionali qualche minuto a seconda della copertura della rete.

In effetti se l'attesa dell'utente dell'SMS Token avesse un tempo limite di un paio di minuti, viene il dubbio che tale intervallo di tempo, relativamente lungo,  potrebbe essere piu' che sufficiente per  non insospettire il reale utente ma essere anche abbastanza per permettere, magari in automatico, una operazione fraudolenta sul conto.

Inoltre si legge '…..  The OTP code is only valid for the current transaction.... ' che sembrerebbe significare che il Token OTP  non scade ( o almeno non in tempi brevi) ma rimane valido un  tempo abbastanza lungo ed utile per i ladri informatici che ne  venissero in possesso.

In una demo sul funzionamento della procedura possiamo anche vedere come praticamente funzioni il sistema di autenticazione attraverso Token


(notate l'smsPrefix con la stinga identificativa della banca e che ritroveremo referenziato all'interno del programma APK allo scopo di filtrare gli SMS 'interessanti' per i phishers).

Notate anche l'INFO relativa ai tempi (tutto sommato abbastanza lunghi) di possibile attesa di ricevimento dell'SMS con TOKEN.
Indipendentemente dal metodo di tentativo di furto sul conto bancario utilizzato, un Token che puo' essere ricevuto con ritardo sino a 3 minuti, potrebbe lasciare ai phishers un margine di tempo che e' una “eternita'”  se paragonato ad  operazioni fraudolente sul conto bancario, che in maniera automatizzata possono essere svolte in frazioni di secondo.
E' evidente che un ritardo di ricezione del TOKEN sino a 3 minuti significa sia che lo stesso rimane valido per quel periodo di tempo, ma anche che l'utente potrebbe non insospettirsi per un ritardo cosi' lungo, mentre i phishers potrebbero aver acquisito il codice TOKEN.

Vediamo ora alcuni contenuti del  file APK.

Proviamo per prima cosa ad osservare come Virus Total ne evidenzi le caratteristiche di malware banker attraverso una attuale scansione:


Il report VT mostra come un buon numero di softwares AV rilevi i contenuti malevoli anche se ci sono alcune particolarita' interessanti.
Ad esempio da notare come nella scansione di test effettuata attualmente con Virus Total il software AV McAfee non rilevi il malware  anche se poi e' stato  proprio il blog McAfee che ha pubblicato tra i primi,  un report su questo codice APK.
Potrebbe comunque trattarsi di un 'problema' derivante dal fatto di eseguire la scansione con procedura ON-line ON-demand che sappiamo puo' avere alcuni limiti sul riconoscimento malware, oppure  semplicemente come il software APK non sia piu' considerato attivo  o non piu' diffuso al punto di giustificare un suo rilevamento nullo.
Sempre relativamente alle scansioni online da notare come VIRSCAN (altro noto sito di scansioni AV  online) non esegua la verifica in quanto rileva il file APK come un insieme  di files raccolti in file compresso (a cui si puo' paragonare un file APK) e in numero che supera i limiti di quello  max consentito per il file ZIP da scansionare.

Esistono comunque in rete siti dedicati alla specifica scansione on-line di files APK quale ad esempio 

e che avvisa dei contenuti malware del file.
Tornando al file APK  possiamo  dare una 'occhiata' all'applicazione 'Fake Token'  ricordando che si tratta comunque di contenuti abbastanza complessi che non e'  possibile analizzare in dettaglio in un semplice post.

Questa la struttura del file APK con tutte le risorse necessarie al funzionamento dell'applicazione:
 

icone comprese:



e dove notiamo il file .DEX che analizzato mostra


Al momento del run il software predispone il monitoraggio di alcuni specifici eventi di sistema come


Attraverso l'esecuzione del seguente codice 


viene invece proposta la 'fake' interfaccia della token application (notate come il nome del file html sia  anonimo consentendo l'uso di diversi layout di pagina html a seconda della banca da colpire)

 


e che aperto in browser su PC mostra.


In pratica  un codice html che vuole simulare un dispositivo OTP in esecuzione sul telefono, tablet ecc....

Una volta che l'utente ha immesso la prima password di autenticazione il software provvede a generare un TOKEN fake attraverso la creazione di un numero casuale 


e successivamente ad inviare i dati sottratti ad un numero telefonico ed inoltre  avvia in background l'ascolto di nuovi SMS in arrivo.

 

Periodicamente puo' anche connettersi a server remoti per aggiornare parti di codice, indirizzi dei server …scaricare altro software malevolo ....ecc...

L'ascolto degli SMS permette al software malevolo di 'filtrare' quelli che vengono inviti dalla banca,  e quindi di catturare il TOKEN legittimo relativo all'operazione in corso.

Nel file APK  troviamo, in un codice XML  dal nome ovvio, start.xml, gli indirizzi dei server remoti a cui inviare quanto sottratto (password s , tokens ecc..….) o  ricevere gli aggiornamenti (indirizzi web dei servers) ma anche ad esempio un smsPrefix con la stinga che parrebbe servire ad identificare l'SMS ricevuto come inviato dalla specifica banca presa di mira.
Ecco un dettaglio del file xml


Il contenuto del file puo' essere modificato attraverso una connessione a server remoto che  aggiornera' il file con nuovi indirizzi di servers , differente numero di telefono a cui inviare i dati sottratti, smsPrefix ecc.........
Il fatto di avere anche l'SMS prefix personalizzabile dimostra come il sorgente APK possa in realta' coprire diversi nomi di banche solo variando pochi parametri.

Riassumendo abbiamo.

Spam di phishing, links ad applicazioni compromesse ecc….. che vengono installate ingannando l'utente ed a cui segue:

1) Esecuzione dell'applicazione  'fake token' 

2) Prima password legittima  di autenticazione fornita da parte dell'utente

3) Il programma genera un falso token ed invia la password ad un numero di telefono ricavato dal file di configurazione xml (o da un suo contenuto aggiornato)

4) il programma malware si mette in background all'ascolto di eventuali SMS da parte della banca

5) all'arrivo di un SMS rilevato come proveniente dalla banca (vedi prefix SMS)  il software lo cattura e i suoi contenuti (token ed altro) sono inviati al server di supporto al malware od a un numero telefonico preimpostato dal malware.

A questo punto avendo sia la password che il TOKEN legittimo attivo al momento, i “ladri informatici” possono effettuare una transazione sul conto bancario al  posto del reale utente.

In definitiva, come descrive un post parecchio datato su http://www.zdnet.com  ma dai contenuti tuttora attuali:

  “Multiple-factor authentication simply cannot prevent fraudulent activity if the user is operating from a compromised environment in the first place. “ 

ossia l'attivita' fraudolenta di furto su conti bancari, anche se protetti da da una autenticazione multipla (password piu' il token), e' comunque possibile se si opera da un 'ambiente' (dispositivo mobile nel caso esaminato ora) compromesso da malware specificatamente creato allo scopo.

Edgar

Nessun commento: