Lurk, il Trojan bancario fatto apposta per la Russia

Contenuti

Nei forum chiusi frequentati dai cybercriminali russi viene riportata, spesso, una singolare espressione, una sorta di frase-consiglio: “non lavorare in RU”. Si tratta, in pratica, di una vera e propria raccomandazione, fatta dai delinquenti più esperti alle nuove leve della criminalità informatica. Tale frase, opportunamente interpretata, di fatto significa “non rubare soldi ai cittadini della Federazione Russa, non infettare i loro computer, non utilizzare i connazionali per il riciclaggio del denaro”.

In primo luogo, “lavorare in RU” non rappresenta di certo un vantaggio, in termini di sicurezza, per i suddetti cybercriminali; per contro, è alquanto improbabile che gli utenti-vittima ubicati in altri paesi si rivolgano poi alla polizia russa. Inoltre, nella zona RU, l’Internet banking non risulta ancora così diffuso; ad ogni caso, entro i confini della Federazione Russa il banking online viene utilizzato in misura decisamente minore, rispetto a quanto avviene, attualmente, nei paesi occidentali. Di conseguenza, i potenziali profitti derivanti dall’attività cybercriminale condotta all’interno della zona RU sono di sicuro inferiori rispetto ai guadagni illeciti che si possono realizzare in altre regioni geografiche; i rischi che si corrono, invece, sono decisamente superiori. Proprio per tali motivi, quindi, è apparsa la regola-consiglio “non lavorare in RU”.

Come spesso avviene, però, anche questa “regola” ha le sue eccezioni. Il famigerato Trojan bancario del quale vi parliamo oggi, – Lurk – viene ad esempio attivamente utilizzato, già da alcuni anni a questa parte, proprio per sottrarre denaro agli utenti che risiedono sul territorio della Federazione Russa.

A dir la verità, avevamo già riferito, qualche anno fa, riguardo al Trojan-Banker in questione; tale malware, appena comparso sulla scena del cybercrimine, aveva subito attirato la nostra attenzione, per il fatto che esso utilizzava un meccanismo di diffusione “incorporeo”: in effetti, il codice dannoso non risultava “salvato” su disco, ma veniva eseguito direttamente dalla memoria. Una descrizione dettagliata di Lurk, tuttavia, non era stata sinora pubblicata.

Caratteristiche peculiari del Trojan

Il Trojan bancario Lurk costituisce davvero un caso a parte, nell’ambito del malware appositamente progettato e sviluppato per realizzare il furto delle risorse finanziarie possedute dai clienti delle banche:

  • Lurk esiste, e si sta attivamente sviluppando, ormai, da oltre 5 anni; esso, tuttavia, agisce in maniera selettiva, prendendo di mira esclusivamente i computer attraverso i quali è possibile compiere il furto di denaro. Nel corso della storia ultraquinquennale di questo Trojan-Banker sono stati complessivamente registrati, a livello di C&C, circa 60.000 bot; una quantità non particolarmente elevata.
  • Lurk è un Trojan bancario universale: esso è in grado di carpire il denaro non soltanto dal noto sistema “iBank 2”, utilizzato da numerosi istituti bancari russi, ma anche dai sistemi Internet unici dedicati ai servizi di remote banking offerti da alcune importanti banche della Federazione Russa.
  • Lurk contrasta fortemente il possibile rilevamento da parte delle soluzioni anti-malware: i suoi sviluppatori, in effetti, applicano costantemente notevoli sforzi per cercare di ridurre al minimo le probabilità che il Trojan in questione possa essere individuato; gli attacchi mirati, per di più, rendono particolarmente difficile poter ottenere nuovi sample dello stesso.
  • In base ai metodi utilizzati per gestire l’organizzazione interna del malware, al volume delle funzionalità possedute da Lurk e alla frequenza delle modifiche in esso introdotte, è possibile trarre la seguente conclusione: tale progetto malevolo vede di sicuro all’opera un’intera squadra di sviluppatori e tester professionisti.

Non possiamo ad ogni caso affermare che questo Trojan sia ben scritto: abbiamo difatti visto ed analizzato Trojan bancari caratterizzati da una qualità del proprio codice di sicuro molto più elevata. Le specifiche analisi condotte su Lurk hanno inoltre evidenziato come sul codice del Trojan abbiano lavorato vari programmatori, con diversi gradi di qualifica. A tratti, nel codice, si incontrano soluzioni francamente mal riuscite, che gli autori, peraltro, non correggono da anni (noi, ovviamente, non indicheremo agli autori del Trojan gli errori da loro commessi). Desideriamo sottolineare, ad ogni caso, che i virus writer sviluppano costantemente il loro prodotto; con il trascorrere del tempo è stato in effetti riscontrato, da parte nostra, un innalzamento del livello qualitativo del codice, ed un progressivo miglioramento delle soluzioni adottate dagli autori. Lurk, indubbiamente, si caratterizza per il fatto di essere molto selettivo, per quel che riguarda gli obiettivi presi di mira; i suoi autori, comunque, fanno di tutto per riuscire ad infettare il maggior numero possibile di vittime di loro interesse, senza attirare, allo stesso tempo, l’attenzione degli analisti e dei ricercatori. Gli incidenti informatici di cui siamo a conoscenza sembrano poter convincere riguardo al fatto che Lurk assolve con successo i compiti ai quali è preposto; periodicamente, in effetti, giungono segnalazioni di furti di denaro commessi a danno di sistemi di remote banking: le relative indagini forensi, condotte in seguito, evidenziano tracce del Trojan bancario Lurk sulle macchine compromesse.

Le vittime

I malintenzionati prendono di mira le seguenti tipologie di vittime:

  • società IT operanti nel settore delle telecomunicazioni;
  • mass media e aggregatori di notizie;
  • banche e organizzazioni finanziarie.

I computer compromessi in seno alle società IT e alle compagnie attive nel campo delle telecomunicazioni offrono ai “padroni” di Lurk la possibilità di creare nuovi server intermedi, attraverso i quali transita il traffico diretto ai server allestiti dai malfattori. I siti web riconducibili ai mass media e gli aggregatori di notizie – in particolar modo quelli abitualmente visitati dagli esperti di contabilità – vengono utilizzati per infettare un elevato numero di computer appartenenti al “target di riferimento” di Lurk. Banche ed organizzazioni finanziarie, infine, interessano ai cybercriminali per raggiungere l’obiettivo principale che questi ultimi si prefiggono: il furto di cospicue somme di denaro.

Non commenteremo, nella circostanza, l’intenzione, da parte degli autori del malware, di insediarsi ugualmente all’interno dei computer appartenenti a strutture di potere di vario genere, quali istituzioni militari, forze dell’ordine, agenzie ed enti governativi (nell’elenco dei target sottoposti ad attacco risultano di fatto presenti anche tali organizzazioni).

Fanno ovviamente parte dei bersagli presi di mira dal Trojan tutti i principali istituti bancari della Federazione Russa, tra cui le quattro banche russe in assoluto più importanti.

Modalità di diffusione

Per diffondere il Trojan bancario Lurk, i cybercriminali ricorrono all’utilizzo di una tecnica malevola ampiamente nota, il “drive-by-download”. Gli autori del malware, inoltre, distribuiscono il Trojan attraverso siti web violati, originariamente adibiti alla diffusione di software legittimi. Un’altra modalità di contagio è poi rappresentata dall’infettare direttamente i computer facenti parte del network informatico dell’organizzazione target; per ottenere tale scopo, i malintenzionati si avvalgono dell’utility psexec.

Infezione attraverso un noto kit di exploit

Lurk viene distribuito, prevalentemente, per mezzo del celebre exploit pack Angler (denominato XXX dai propri autori). Questo metodo di diffusione del malware, con il preciso intento di infettare il potenziale computer-vittima, non richiede il compimento di alcuna azione speciale da parte dell’utente.

Angler viene considerato, di diritto, il capofila di tutti gli exploit pack attualmente in circolazione: gli exploit destinati alle nuove vulnerabilità vengono quasi sempre implementati, inizialmente, in Angler; soltanto in seguito essi entrano a far parte della composizione degli altri kit di exploit (non è affatto escluso, tra l’altro, che possano essere semplicemente “presi in prestito”). Non sono poi rari i casi che vedono l’inserimento, all’interno di Angler, di exploit appositamente creati per colpire le vulnerabilità di tipo “zero-day”; questo, ovviamente, rende l’exploit kit in causa particolarmente pericoloso.

Ecco come avviene, abitualmente, la preparazione messa in atto dai malintenzionati allo scopo di realizzare il contagio di nuovi utenti-vittima tramite il Trojan Lurk:

  1. Si sceglie, innanzitutto, un sito web che possa risultare interessante per il “pubblico” target: un forum dedicato alle tematiche di contabilità, un portale di news, etc.

    L’infezione del sito viene realizzata inserendo furtivamente, all’interno della risorsa web, link destinati a condurre verso la landing page dell’exploit pack in questione. Se si rivela impossibile infettare direttamente il sito, il link malevolo viene allora collocato tra i materiali prodotti da un qualsiasi “programma di partenariato”, in seguito visualizzati dai visitatori del sito web preso di mira.

  2. Gli utenti che, durante la navigazione in Internet, giungono sul sito compromesso, vengono subdolamente rediretti verso la pagina di landing del kit di exploit. Angler, a questo punto, cerca di sfruttare eventuali vulnerabilità presenti nel software in uso presso l’utente; tale operazione, secondo le intenzioni dei malfattori, deve condurre all’esecuzione di “mini”, il modulo nocivo preposto al download di Lurk.

È stato da noi rilevato che il link preposto a dirigere la vittima verso la landing page dell’exploit pack viene posizionato per breve tempo all’interno del sito web violato; il link può addirittura comparire periodicamente, per poi scomparire di nuovo. Abbiamo ad esempio osservato ciò che è avvenuto nel processo di infezione realizzato attraverso un forum appartenente ad una nota rivista online dedicata agli esperti contabili; nella circostanza, il link maligno appariva all’interno del forum soltanto nei giorni feriali, per due ore, in corrispondenza della pausa pranzo. Da parte nostra, dopo aver rilevato l’attività anomala, abbiamo subito provveduto ad informare opportunamente i proprietari della risorsa web. Tuttavia, nel preciso istante in cui questi ultimi hanno letto il nostro messaggio, il sito risultava di nuovo “pulito”; l’infezione, quindi, non era sul momento visibile. Nel frattempo, però, gli autori di Lurk, mentre il link malevolo era presente nel forum, erano riusciti a realizzare l’infezione, tramite il malware dispiegato, di diversi nuovi computer.

Infezione tramite siti web compromessi

La seconda variante, per quel che riguarda le modalità di infezione, anch’essa attivamente utilizzata dai malintenzionati, è rappresentata dalla distribuzione del codice dannoso attraverso siti web legittimi. A quanto pare, con tale metodo di diffusione del malware, i file infetti vengono recapitati esclusivamente agli utenti ubicati entro i confini geografici della zona RU; gli altri utenti della Rete, invece, ricevono file “puliti”.

Infezione diretta dei computer presenti all’interno della rete informatica di cui dispone l’organizzazione sottoposta ad attacco

Si rivela infine particolarmente interessante, per i cybercriminali, lo schema malevolo che prevede, durante l’attacco iniziale, l’infezione di uno dei computer appartenenti all’organizzazione bersagliata. Anche se la macchina infetta non custodisce nulla che possa interessare ai malfattori, occorre pur sempre considerare che il computer preso di mira si trova all’interno di una rete informatica, nello stesso identico dominio riservato ad altri computer, che, invece, contengono informazioni di sicuro interesse per i proprietari del Trojan. In tal caso, per ottenere la propagazione del malware all’interno della rete, si ricorre all’impiego dell’utility psexec, creata da Mark Russinovich; per avviare la successiva esecuzione dei moduli principali del programma Trojan sugli altri computer che compongono il network, viene invece utilizzato l’apposito dropper denominato “mini”. Il metodo di infezione qui sopra descritto può generare conseguenze estremamente spiacevoli, visto che la sicurezza del computer che custodisce i dati a cui sono interessati i criminali informatici viene determinata, in pratica, dal livello di sicurezza IT del computer che presenta il grado di protezione più debole all’interno della rete sottoposta ad assalto.

Moduli principali

Il Trojan qui analizzato si compone di vari moduli, provvisti di un’ampia gamma di funzionalità. Lurk presenta i seguenti moduli principali:

  • modulo “mini”;
  • modulo “prescanner”;
  • modulo “core” (il nucleo vero e proprio del bot);
  • modulo “core_x64” (versione a 64 bit del core);
  • modulo “mini_x64” (versione a 64 bit del modulo “mini”).

Modulo “mini”

Nella prima fase dell’attacco, mediante l’utilizzo dell’exploit pack Angler, viene realizzato lo sfruttamento della vulnerabilità individuata nel software di cui dispone l’utente; questo genera il download ed il successivo avvio del modulo mini del banker Lurk. Come abbiamo riferito in precedenza, l’utente può scaricare il file nocivo da un sito web compromesso; l’infezione, tuttavia, può anche essere prodotta direttamente sulla rete locale.

Mini, in relazione agli standard che abitualmente presenta il malware Lurk, è un programma di dimensioni piuttosto contenute (100-400 Kb). Il compito primario svolto da tale modulo consiste nel generare il download e la successiva esecuzione degli altri due moduli principali di cui si compone il programma malware Lurk. L’indirizzo del server cui fa riferimento “mini” è hardcoded nel corpo stesso del programma. Il download dei moduli in questione viene eseguito attraverso normali richieste GET. I moduli scaricati da “mini” risultano codificati; i virus writer ricorrono, nella circostanza, a vari algoritmi di crittografia. Il modulo” prescanner”, ad esempio, viene cifrato per mezzo di un semplice “xor-next”. Gli altri moduli, invece, vengono criptati mediante l’utilizzo dell’algoritmo di cifratura BlowFish (ECB Mode); la pseudo-chiave ad esso relativa risulta incorporata direttamente all’interno del modulo “mini”. La chiave effettiva si ottiene poi dalla suddetta pseudo-chiave, mediante un apposito attacco brute-force.

Per evitare di dover scaricare i moduli aggiuntivi ogni volta che “mini” viene avviato, il Trojan salva i moduli in questione in un file a parte, anch’esso codificato. Questo file risulta collocato, di fatto, nella directory %APPDATA%. Il contenuto dello storage viene cifrato tramite l’algoritmo di crittografia Blowfish; allo stesso tempo, si ricorre all’utilizzo di una chiave, in base all’effettivo momento in cui viene creata la directory di Windows. Oltre al nome del plug-in e al corpo dello stesso, lo storage custodisce ugualmente l’elenco dei checksum relativi ai nomi dei processi nell’ambito dei quali dovrà essere eseguito il plug-in. Grazie a tali informazioni, “mini” determina in quale processo occorre iniettare il plug-in: per quel che riguarda il modulo preposto alle web injection, si tratta del processo del browser; per il modulo “ibank” si tratta, invece, di Java.exe, nel cui contesto opera il sistema di remote banking.

Modulo “prescanner”

Secondo lo schema di funzionamento di “mini”, la seconda fase dell’attacco è rappresentata dal caricamento del modulo prescanner. Questo modulo è, in sostanza, una libreria caricata dinamicamente, provvista di un’unica funzione esportata, Prescan.

“Prescanner” si rivela di particolare utilità, per i malintenzionati, visto che permette loro di rendere estremamente mirati gli attacchi informatici condotti. Se il computer preso di mira non risulta conforme alle speciali “regole” stabilite attraverso il modulo “prescanner”, e se in esso non vengono individuati sistemi di remote banking, il modulo provvede a comunicare a “mini” quanto rilevato; quest’ultimo, a sua volta, “decide” di non insediarsi in tale macchina. In tal modo, gli autori del Trojan cercano di evitare ulteriori attenzioni nei loro confronti da parte delle forze dell’ordine e degli sviluppatori dei prodotti anti-virus. A conferma di quanto indicato, specifichiamo il seguente elemento: ogni volta in cui nel C&C viene registrato un nuovo bot, al bot viene assegnato un proprio identificatore univoco – il numero del bot. Nel corso degli oltre cinque anni di storia di questo temibile Trojan bancario sono stati complessivamente registrati, nel C&C, circa 60.000 bot.

Il modulo “prescanner” esegue due attività principali:

  • raccolta di informazioni sul sistema infetto;
  • grabbing delle password relative ai client FTP, individuate sul computer dell’utente-vittima.

Dopo aver raccolto le informazioni sulla macchina sottoposta ad attacco, una volta verificata la relativa conformità con le “regole” stabilite, “prescanner” invia un report al proprio server di comando. Nei casi da noi esaminati, il C&C del modulo “prescanner” è risultato sempre coincidere con il C&C del downloader “mini”.

Se, in base ai risultati dell’analisi svolta, la macchina non viene ritenuta adatta al tipo di attacco portato da Lurk, “mini” e “prescanner” terminano il loro lavoro e si autoeliminano. Se, invece, il modulo “prescanner” decide di insediarsi nel computer preso di mira, esso comunica al downloader “mini” le proprie “intenzioni”; quest’ultimo, a sua volta, provvede subito a scaricare e lanciare il modulo “core”, il corpo principale del bot.

Modulo “core”

Core è il modulo centrale di Lurk. Le principali funzioni da esso svolte sono le seguenti:

  • interagire in rete con il C&C;
  • eseguire i comandi impartiti dai malintenzionati;
  • tenere un registro delle sequenze digitate dall’utente sulla propria tastiera (funzione di keylogger) e registrare il flusso video proveniente dallo schermo del sistema infetto;
  • assicurare il funzionamento dell’archivio codificato, contenente i dati e le impostazioni di Lurk;
  • download, installazione ed esecuzione dei moduli aggiuntivi del Trojan.

Il modulo “core” rappresenta una sorta di “canale di comunicazione” tra gli altri moduli del programma malware ed il centro di comando. I server C&C, per “mini” e “core”, risultano essere diversi. “Core” non contiene, da parte sua, l’indirizzo hardcoded del centro di comando e controllo; esso viene in effetti calcolato utilizzando l’apposito algoritmo per la generazione dei nomi di dominio (DGA – Domain Generation Algorithm). Gli autori del Trojan fanno uso, in qualità di parametri di ingresso principali per il DGA, anche dei dati relativi alle quotazioni di borsa, ottenuti da Yahoo Finance. Questo significa, in pratica, che nel momento in cui vengono generati gli indirizzi dei C&C si utilizzano dati che non possono essere in alcun modo già noti agli esperti di sicurezza IT. Di conseguenza, non è possibile prevedere quali saranno gli indirizzi generati da Lurk.

Una volta collegatosi con il server di controllo, il malware, ogni cinque minuti, trasmette al proprio C&C i dati da esso raccolti, così come i risultati riguardanti l’esecuzione dei comandi ricevuti; vengono inoltre richiesti aggiornamenti ed ulteriori comandi. Tutte le comunicazioni che intercorrono tra il modulo “core” ed il relativo C&C vengono cifrate; lo scambio dei dati tra “core” ed il centro di comando viene realizzato in formato JSON.

La funzione inerente all’intercettazione dei dati inseriti dall’utente attraverso la propria tastiera risulta implementata, nell’ambito del modulo “core”, soltanto sulle nuove versioni di Lurk (a partire, almeno, dalla release 8.9773). L’intercettazione viene effettuata esclusivamente nel contesto di finestre con determinate parole/frasi a livello di titolo; l’elenco delle stesse viene ricevuto dal C&C. Le informazioni intercettate vengono poi inviate al server di comando e controllo nel corso della successiva sessione di comunicazione (ogni 5 minuti).

La parte principale del “repository” del Trojan Lurk si trova nel registro; alcuni dati aggiuntivi relativi allo storage, tuttavia, possono essere presentati sotto forma di file, a livello di hard disk. In genere, viene custodito in veste di file un volume di dati piuttosto cospicuo, logicamente in forma singola; può trattarsi, ad esempio, di un video catturato dallo schermo, oppure del codice riguardante le web injection. Ad ogni caso, i link ed i file aggiuntivi risultano di sicuro presenti nella parte principale dell’archivio, custodita nel registro.

Moduli aggiuntivi

I moduli aggiuntivi (plug-in) del bot vengono caricati da “core” su quei computer che il programma malware identifica come i più appropriati per la conduzione dell’attacco; allo stesso tempo, su ogni macchina, vengono caricati proprio quei moduli che si rivelano necessari, sulla stessa, per poter realizzare il furto di risorse finanziarie.

I vari tipi di modulo – a noi attualmente noti – di cui è provvisto il Trojan Lurk, sono riportati nella tabella qui sotto inserita.

GUID plug-in Denominazione Funzione del plug-in
{5FBA6505-4075-485b-AEC4-75767D9054C9} module_Bifit

Insieme di file .class, utilizzato per apportare modifiche alle normali funzionalità dei sistemi “iBank 2”, allo scopo di sottrarre denaro.
{0F3E7AFA-1F2B-4b0e-99D6-3716A4C3D6DE} module_Bifit_admin Applet di amministrazione per i sistemi “iBank 2”, modificata dai malintenzionati (preposta a carpire le credenziali relative ai sistemi “iBank 2”, incluso i file chiave).
{04DB063E-1454-4a73-B2CC-4DB6D4BB6AA1} module_ibank Plug-in in grado di assicurare l’iniezione delle proprie applet nel sistema “iBank 2”. Proprio per mezzo di tali applet (ma non soltanto attraverso di esse) viene poi rubato il denaro agli utenti.
{AABA3126-14E2-443b-A11B-FB6C1F793103} module_w3bank Plug-in destinato alla realizzazione delle web injection nelle pagine dei sistemi di remote banking.
{5C345F77-B111-4a85-B6D6-EC8F27F993C4} module_w3bank_scripts Insieme di script compilati in JavaScript, per effettuare l’iniezione attraverso il modulo “w3bank”. Preposto al furto del denaro e dei dati custoditi nei sistemi di remote banking.
{50D13F6C-FC46-4fdf-A294-E149D36E54D4} module_spider Modulo ausiliario, il cui compito principale consiste nel garantire l’upload di altri moduli di Lurk nell’ambito dei processi “iexplore.exe”, “firefox.exe”, “chrome.exe”, “opera.exe”, “jp2launcher.exe”, “java.exe”, prima dell’effettiva esecuzione di tali processi.
{52F1F7D8-4BCC-4498-AC86-3562F81990F6} module_vnc Plug-in per ottenere l’accesso alla macchina infetta tramite protocollo VNC (allo scopo di controllare da remoto il computer compromesso).
{A06B5020-0DF3-11E5-BE38-AE5E4B860EDE} rdp-plugin-x86 Plug-in in grado di attivare il controllo RDP (remote desktop control) sulla macchina infetta.
{9F786E98-3D4C-4020-8819-B97D9D4DBCC0} highLauncher Loader dei plug-in del bot in high Integrity level (necessario per “rdp-plugin-x86” e “lsa-plugin-x86”).
{968A2A9A-7DF4-4E69-BF81-563AF8FFB7DC} launcher Loader di “mini”. Rimane in attesa del messaggio IPC denominato <LurkDll>, per poi effettuare l’upload di “mini” per mezzo di LoadLibrary(). Viene utilizzato nel processo di avvio di “mini” con innalzamento dei privilegi.
{5B3957F2-AAAF-4FF8-94B8-83C52AFCD2A9} lsa-plugin-x86 Plug-in per il grabbing degli account di amministratore e/o di dominio (si ricorre all’utilizzo del noto programma mimikatz).

Esamineremo qui di seguito, in maniera ancor più dettagliata, tre diversi moduli (plug-in) del bot: i moduli “w3bank” e “ibank.dll” rappresentano, a tutti gli effetti, due veri e propri “cavalli da tiro”, per il Trojan Lurk; essi prendono direttamente parte al furto del denaro. Il modulo “module_vnc” offre invece l’opportunità di poter controllare da remoto il sistema infetto, mediante l’utilizzo del protocollo VNC.

Modulo “w3bank”

Il modulo “w3bank” è preposto alla realizzazione degli attacchi nei confronti dei servizi online di remote banking. Il compito principale da esso svolto è costituito dalle injection eseguite sul browser dell’utente.

Modulo “ibank”

Il modulo “ibank” è stato appositamente progettato per compiere furti all’interno dei sistemi di remote banking denominati “iBank”.

Tale modulo opera nel contesto del processo della Java virtual machine. Al momento dell’esecuzione dell’applet Java viene effettuata una verifica di tale applet, per determinarne l’appartenenza al sistema “iBank 2”. In caso di avvio del sistema di remote banking in questione, al server di comando e controllo del programma malware viene inviata una richiesta, per bloccare o continuare l’esecuzione dell’applet. Assieme al comando per continuare l’esecuzione dell’applet, giunge, dal C&C, una serie di file delle classi Java, i quali sostituiscono le classi originali dell’applet “iBank”.

L’applet infetta consente ai cybercriminali di poter sostituire in maniera furtiva i dati inerenti agli ordini di pagamento, lasciando tuttavia, nelle relative stampe, le informazioni originali.

Modulo “module_vnc”

Il modulo denominato “module_vnc” offre l’opportunità di poter controllare da remoto il sistema infetto, mediante l’utilizzo del protocollo VNC. In tal modo, l’unità remota ottiene il pieno accesso al sistema: vede ciò che è presente sullo schermo; può trasmettere e ricevere qualsiasi file, nonché dati di ogni genere, incluso i dati provenienti dai dispositivi adibiti alla registrazione audio e video; è in grado di utilizzare i software presenti sulla macchina sottoposta ad attacco, così come di installarne di nuovi.

Questo modulo offre ugualmente la possibilità di eseguire i processi dei browser con i seguenti parametri:

Mozilla Firefox: -profile
Google Chrome: –user-data-dir=
Internet Explorer: -nomerge

Ad ogni avvio di Mozilla Firefox e Google Chrome viene creato un nuovo profilo utente del browser. Questo permette di nascondere all’utente legittimo le attività dannose compiute dal malware; l’utente-vittima, in effetti, non potrà vedere le stesse nella cronologia dei siti visitati. Inoltre, ciò consente di creare, per qualsiasi sito web, una sessione separata, parallelamente a quella già aperta. In particolare, questo rende possibile eseguire per la seconda volta la procedura di autenticazione sul sito con il quale sta operando l’utente legittimo, e di condurre, nella sessione parallela, attività che non andranno ad influenzare in alcun modo la sessione dell’utente.

Le varie fasi dell’attacco portato da Lurk

La sequenza di un tipico attacco eseguito mediante l’utilizzo del Trojan è quindi la seguente:

  1. Il computer dell’utente viene infettato attraverso lo sfruttamento di una vulnerabilità;
  2. Sulla macchina infetta viene eseguito il modulo “mini”;
  3. “mini” provvede al download del modulo “prescanner”, avviandone poi l’esecuzione;
  4. “prescanner” sottrae all’utente le credenziali FTP;
  5. Se la macchina infetta, in base ai risultati dell’analisi eseguita, viene riconosciuta inadatta per la conduzione dell’attacco, “mini” e “prescanner” abbandonano tranquillamente il campo, autoeliminandosi.
  6. Se per i malintenzionati la macchina infetta risulta invece interessante, l’attacco continua.
  7. Se l’attacco continua, “mini” effettua il download del modulo “core”, lanciandone poi l’esecuzione; quest’ultimo costituisce il corpo principale del bot.
  8. “core” si connette poi con il server di comando del bot, riceve ed esegue i comandi impartiti dai cybercriminali.
  9. “core” riceve dal C&C i plug-in aggiuntivi del bot.
  10. “core” spia l’utente: intercetta i dati inseriti attraverso la tastiera e registra il flusso video proveniente dallo schermo del sistema infetto. L’intercettazione viene effettuata esclusivamente nel contesto di finestre con determinate parole/frasi a livello di titolo; l’elenco delle stesse viene ricevuto dal C&C, ed è determinato, principalmente, dagli interessi finanziari dei proprietari di Lurk.
  11. Utilizzando i moduli aggiuntivi (“ibank”, “w3bank”), Lurk realizza il furto delle risorse finanziarie custodite nell’ambito del sistema di remote banking sottoposto ad attacco.

Esempio di attacco nei confronti di una banca

Nel quadro delle indagini svolte, abbiamo individuato un attacco condotto da Lurk nei confronti di una delle più importanti banche russe, mediante l’utilizzo del modulo “w3bank”, preposto alla realizzazione delle web injection. Nella circostanza, siamo riusciti ad ottenere lo script relativo a tali iniezioni.

I file riconducibili allo script delle injection presentano lo stesso identico nome per i vari sistemi di remote banking (content.min.js); essi evidenziano, tuttavia, GUID diversi l’uno dall’altro, visto che gli identificatori unici vengono generati in maniera casuale.

Tale script realizza l’intercettazione dei dati di autenticazione inseriti nel sistema di remote banking predisposto dall’istituto bancario. L’intercettazione del login e della password utilizzati dalla vittima si verifica nel preciso momento in cui viene effettuata la procedura di autenticazione dell’utente nell’ambito di tale sistema. Una volta eseguita con successo l’autenticazione, viene creata una sessione parallela, nascosta all’utente, nel corso della quale Lurk “esplora” le pagine web dedicate al sistema di banking online preso di mira, in cerca del nominativo del titolare della carta e del numero di telefono a quest’ultima associato. In pratica, lo script malevolo raccoglie tutte le informazioni necessarie per effettuare l’operazione di pagamento all’interno del sistema di remote banking in questione. In seguito, tali informazioni vengono trasmesse al server di comando e controllo, il cui indirizzo corrisponde all’indirizzo di rete del server che interagisce con il modulo “core”.

Il server C&C, in risposta, può inviare uno script, che sarà eseguito nel contesto del browser. Nel corso dell’indagine da noi condotta è ad ogni caso risultato impossibile ottenere tale script.

Il server di comando può ugualmente registrare il pagamento automatico che verrà eseguito dopo la successiva autenticazione dell’utente nel sistema di remote banking.

Conclusioni

Gli autori del Trojan hanno profuso notevoli sforzi per proteggere al meglio la propria “creatura” nei confronti delle ricerche e delle indagini condotte dagli analisti malware; i cybercriminali si sono preoccupati, in particolar modo, di difendere efficacemente Lurk nei confronti di possibili analisi svolte in maniera approfondita. O, perlomeno, hanno cercato di complicare notevolmente le eventuali analisi. Ad ogni caso, nonostante tutte le difficoltà che si possono incontrare nell’analizzare tale malware, Lurk viene oggi prontamente ed attivamente rilevato dalle attuali soluzioni anti-virus.

Non sono, tuttavia, soltanto le società produttrici di anti-virus a contrastare le attività dannose del Trojan Lurk. In effetti, anche lo sviluppatore dei sistemi “iBank 2” – la società russa BIFIT – sta applicando considerevoli sforzi nella lotta condotta contro i ripetuti attacchi informatici portati nei confronti del proprio prodotto. Tale società ha implementato, nel software “iBank 2”, vari metodi per contrastare i Trojan bancari, esaminandone poi l’efficacia. I risultati della ricerca condotta da BIFIT evidenziano come, tra tutti gli strumenti implementati in “iBank 2” allo scopo di proteggere il sistema di banking online nei confronti di Lurk, si sia rivelato efficace solo il controllo eseguito sul lato server della banca; le altre misure di sicurezza adottate per il sistema “iBank 2” sono state in effetti bypassate o neutralizzate dagli autori di Lurk, segno dell’elevato livello di “professionalità” posseduto da questi ultimi.

In generale, Lurk dà l’impressione di essere un sistema complesso e potente, appositamente progettato e sviluppato per perseguire lo scopo criminale che si prefiggono gli autori del prodotto: realizzare il furto delle risorse finanziarie degli utenti. La perseveranza e la notevole attenzione con cui i malintenzionati stanno lavorando sul Trojan da essi creato, testimoniano in maniera inequivocabile l’elevato grado di motivazione degli stessi.

Kaspersky Lab, per contrastare il Trojan in causa, utilizza metodologie di rilevamento euristico, proattivo e tramite firma. Un simile approccio consente persino di rilevare i nuovi sample di Lurk già prima che essi appaiano all’interno della nostra “collezione”. Il rilevamento del Trojan produce i seguenti verdetti: Trojan.Win32.Lurk, Trojan-Banker.Win32.Lurk, Trojan-Spy.Win32.Lurk.

Desideriamo fornire, in conclusione, un consiglio apparentemente banale, ma sempre valido ed efficace. La sicurezza del sistema di remote banking viene garantita attraverso tali parametri:

  • un’attenta progettazione ed una corretta amministrazione delle reti locali dell’organizzazione;
  • un’adeguata e costante formazione del personale relativamente alle regole e ai comportamenti da adottare in materia di sicurezza IT;
  • utilizzo di un moderno software di sicurezza, regolarmente aggiornato.

Siamo pienamente convinti del fatto che il rispetto di queste semplici regole possa assicurare un elevato livello di protezione IT nei confronti di Lurk e delle minacce informatiche ad esso simili.

IOC (indicatori di compromissione):

Chiavi di registro:

HKCU\Software\Classes\CLSID\{118BEDCC-A901-4203-B4F2-ADCB957D1887}
HKLM\Software\Classes\CLSID\{118BEDCC-A901-4203-B4F2-ADCB957D1887}
HKCU\Software\Classes\Drive\ShellEx\FolderExtensions\{118BEDCC-A901-4203-B4F2-ADCB957D1887}
HKLM\Software\Classes\Drive\ShellEx\FolderExtensions\{118BEDCC-A901-4203-B4F2-ADCB957D1887}

File:

Possibili denominazioni del modulo “mini”:

%APPDATA%\API32.DLL
%APPDATA%\dlg.dll
%APPDATA%\mm.dll
%APPDATA%\setup.dll
%APPDATA%\help.dll
%APPDATA%\mi.dll
%APPDATA%\http.dll
%APPDATA%\wapi.dll
%APPDATA%\ER32.DLL
%APPDATA%\core.dll
%APPDATA%\theme.dll
%APPDATA%\vw.dll
%APPDATA%\el32.dll
%APPDATA%\sta.dll
%APPDATA%\p10.dll
%APPDATA%\fc.dll
%APPDATA%\in_32.dll
%APPDATA%\pool.drv
%APPDATA%\env.dll
%APPDATA%\man.dll

Possibili denominazioni dello storage dei moduli:

%APPDATA%\ddd2.dat
%APPDATA%\pdk2.dat
%APPDATA%\km48.dat
%APPDATA%\9llq.dat
%APPDATA%\ddqq.dat
%APPDATA%\834r.dat
%APPDATA%\gi4q.dat
%APPDATA%\wu3w.dat
%APPDATA%\qq34.dat
%APPDATA%\dqd6.dat
%APPDATA%\w4ff.dat
%APPDATA%\ok4l.dat
%APPDATA%\kfii.dat
%APPDATA%\ie31.dat
%APPDATA%\4433.dat

Indicatori di rete:

Server di comando e controllo:

3d4vzfh68[.]com
43xkchcoljx[.]com
carlton69f[.]com
diameter40i[.]com
elijah69valery[.]com
embassy96k[.]com
evince76lambert[.]com
globe79stanhope[.]com
groom58queasy[.]com
hackle14strand[.]com
hotbed89internal[.]com
mechanic17a[.]com
paper17cried[.]com
plaguey42u[.]com
possum89hilarity[.]com
rhythmic81o[.]com
ri493hfkzrb[.]com
roomful44e[.]com
s8f40ocjv[.]com
scale57banana[.]com
wing97pyroxene[.]com
yf3zf90kz[.]com

Regole IDS:

alert tcp $HOME_NET any -> $EXTERNAL_NET $HTTP_PORTS (msg:”Bot.Lurk.HTTP.C&C”; flow:established,to_server; content:”POST”; pcre:”/\?hl=[a-z]+&source=[^\r\n&]+&q=[^\r\n&]+/msi”;)

MD5:

mini:

185C8FFA99BA1E9B06D1A5EFFAE7B842
2F3259F58A33176D938CBD9BC342FDDD
217DAB08B62B6F892A7D33E05E7F788C
3387E820F0F67FF00CF0C6D0F5EA2B75
36DB67CCADC59D27CD4ADF5F0944330D
6548D3304E5DA11ED2BED0551C3D6922
72D272A8198F1E5849207BC03024922D
85B66824A7F2787E87079903F0ADEBDF
B4FFAD760A52760FBD4CE25D7422A07B
C461706E084880A9F0409E3A6B1F1ECD
D0B4C0B43F539384BBDC103182E7FF42
E006469EA4B34C757FD1AA38E6BDAA72
E305B5D37B04A2D5D9AA8499BBF88940
E9CAB9097E7F847B388B1C27425D6E9A
E9DA19440FCA6F0747BDEE8C7985917F
F5022EAE8004458174C10CB80CCE5317

prescanner:

A802968403162F6979D72E04597B6D1F

core:

C15E18AFF4CDC76E99C7CB34D4782DDA
8643E70F8C639C6A9DB527285AA3BDF7

ibank.dll:

A6C032B192A8EDEF236B30F13BBFF204
4CB6CA447C130554FF16787A56A1E278
BFE73DE645C4D65D15228BD9A3EBA1B6
CC891B715C4D81143491164BFF23BF27

module_vnc:

601F0691D03CD81D94AD7BE13A10A4DB
6E5ADF6246C5F8A4D5F4F6BBFC5033B9
78EDD93CEA9BEDB90E55DE6D71CEA9C4

w3bank.dll:

1B84E30D4DF8675DC971CCB9BEE7FDF5
3A078D5D595B0F41AD74E1D5A05F7896

Post correlati

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *