Come si può neutralizzare un “buco nero”?

Contenuti

Lo “sfruttamento” delle vulnerabilità individuate all’interno di software del tutto legittimi rappresenta, al giorno d’oggi, uno dei metodi più diffusi, negli ambienti cybercriminali, per generare pericolose infezioni informatiche sui computer degli utenti. Le analisi e le valutazioni effettuate dai nostri esperti hanno evidenziato come, nella maggior parte dei casi, i computer vengano attaccati da exploit appositamente creati dai virus writer per sfruttare le vulnerabilità individuate in Oracle Java. Le attuali soluzioni di sicurezza IT sono ad ogni caso in grado di contrastare efficacemente gli attacchi di tipo “drive-by”, condotti dai malintenzionati attraverso l’utilizzo di appositi kit di exploit. Esamineremo in dettaglio, nel presente articolo, le varie fasi del processo di infezione del computer realizzato mediante il dispiegamento del famigerato kit di exploit BlackHole, descrivendo parallelamente i corrispondenti meccanismi di protezione utilizzati nell’ambito delle soluzioni anti-malware per contrastare efficacemente l’insidiosa attività maligna svolta dagli exploit.

I kit di exploit

In genere, i cybercriminali ricorrono all’utilizzo non di un singolo exploit, bensì di veri e propri set di exploit già pronti all’uso. Ciò consente di aumentare in maniera considerevole l’efficacia dell’azione di penetrazione del malware all’interno del sistema sottoposto ad attacco, in quanto nel corso dell’assalto informatico possono essere chiamati in causa, a seconda della necessità del momento, uno o più exploit, ognuno dei quali risulta specificamente rivolto ad una determinata vulnerabilità individuata nel software installato sul computer preso di mira.

Mentre in passato gli exploit – al pari dei programmi malware caricati sul computer-vittima a seguito dell’attività dannosa compiuta dagli exploit stessi – venivano in sostanza creati e sviluppati sempre dalle stesse identiche persone, attualmente, in questo particolare settore del mercato nero della cybercriminalità si è iniziato ad operare sulla base del cosiddetto modello SaaS (Software as a Service). Si è assistito, in pratica, ad una netta suddivisione delle attività malevole svolte dai malintenzionati della Rete, per cui ogni raggruppamento di criminali informatici sembra eseguire un compito ben distinto e specifico: vi sono quindi, tra i malfattori, coloro che si occupano della creazione e della relativa vendita dei pacchetti di exploit; altri malintenzionati, invece, si “preoccupano” di far giungere gli utenti sulla “landing page” dell’exploit kit precedentemente allestito (generando in tal modo una forma di traffico malevolo sul web); altri ancora si dedicano alla scrittura dei software nocivi che saranno poi distribuiti nel corso dell’attacco drive-by. Allo stato attuale, un malintenzionato che desideri infettare i computer degli utenti Internet per mezzo, ad esempio, di una delle varianti del trojan ZeuS, può semplicemente acquistare un kit di exploit pronto all’uso, configurarlo e cercare di convogliare il maggior numero possibile di potenziali vittime verso la landing page dell’exploit pack in questione.

Per indirizzare gli utenti verso la “pagina iniziale” dell’exploit, i cybercriminali sono soliti avvalersi di vari metodi e trucchi. Il metodo indubbiamente più pericoloso, per i navigatori del web, è rappresentato dalla violazione, da parte dei malintenzionati, di pagine web riconducibili a siti Internet del tutto legittimi; in sostanza, i malfattori “iniettano” nel codice sorgente di tali pagine appositi script nocivi, oppure insidiosi Iframe maligni. Nel caso specifico, sono gli utenti stessi ad “auto-danneggiarsi”, semplicemente visitando un sito web conosciuto, abitualmente frequentato durante la quotidiana navigazione in Rete; questo, tuttavia, è più che sufficiente per dare inizio all’attacco drive-by ordito dai cybercriminali, e per far sì che il kit di exploit subdolamente dispiegato da questi ultimi avvii il proprio “lavoro”, a totale insaputa delle ignare “vittime”. I malintenzionati possono ugualmente utilizzare risorse e sistemi pubblicitari perfettamente legittimi, disseminando sui banner – o all’interno degli annunci teaser – pericolosi link, destinati a condurre i malcapitati verso pagine web dannose. Un ulteriore metodo che gode attualmente di particolare popolarità presso le folte schiere dei criminali informatici è costituito dalla diffusione, all’interno dei flussi di spam, di link nocivi preposti a convogliare gli utenti verso la landing page degli exploit pack.

Come si può neutralizzare un "buco nero"?

Schema generale del processo di infezione del computer attraverso l’utilizzo del kit di exploit denominato BlackHole

Sul mercato del cybercrimine, al giorno d’oggi, risulta disponibile un elevato numero di pericolosi exploit kit, quali, ad esempio, Nuclear Pack, Styx Pack, BlackHole, Sakura ed altri ancora. Nonostante la diversità dei nomi assegnati, l’essenza di tali soluzioni maligne è sempre la stessa: ognuna di esse, in pratica, è una vera e propria “raccolta” di vari exploit, integrata da un apposito pannello di amministrazione. Occorre inoltre aggiungere che tutti i kit di exploit attualmente esistenti sul torbido panorama del malware funzionano, in pratica, secondo un medesimo identico schema.

Uno degli exploit pack più noti e diffusi sul mercato della criminalità informatica mondiale è, indubbiamente, il famigerato kit “battezzato” con il nome di BlackHole. Di esso fanno abitualmente parte vari exploit appositamente sviluppati dagli autori di malware per sfruttare determinate vulnerabilità individuate in Adobe Reader, Adobe Flash Player ed Oracle Java. Allo scopo di massimizzare l’efficacia di BlackHole, i cybercriminali provvedono in maniera costante a modificare la composizione del pacchetto maligno in questione. All’inizio del 2013, gli esperti di Kaspersky Lab hanno condotto dettagliate analisi relativamente a tre degli exploit abitualmente inseriti dai malintenzionati all’interno del suddetto kit, exploit specificamente “dedicati” alla piattaforma Oracle Java; nel presente articolo, per illustrare i principi di funzionamento degli exploit pack, faremo pertanto riferimento proprio al kit BlackHole.

All’interno del “buco nero”

Desideriamo innanzitutto precisare che tutte le informazioni riguardanti gli exploit da noi esaminati e lo specifico contenuto delle pagine di landing, così come le ulteriori informazioni da noi ricavate (inerenti, in particolar modo, alla denominazione dei metodi e delle classi, e ai valori delle costanti) sono ovviamente relative al preciso momento in cui sono state effettuate le analisi. Il fatto è che, come abbiamo sottolineato in precedenza, i cybercriminali continuano imperterriti a “lavorare” attivamente sull’intero pacchetto BlackHole: in particolare, per cercare di complicare al massimo il rilevamento del malware in causa da parte delle soluzioni antivirus, i malfattori sono soliti apportare, di frequente, varie modifiche al codice di questo o quell’altro exploit da essi dispiegato. Ad esempio, i malintenzionati provvedono a cambiare spesso l’algoritmo di decodifica utilizzato.

La “pagina iniziale” dell’exploit pack

I cybercriminali si avvalgono della landing page del kit di exploit sia per definire i parametri di ingresso, sia per mettere in atto ogni decisione presa riguardo alle successive attività che dovrà svolgere il famigerato pacchetto maligno. I parametri d’ingresso includono la versione del sistema operativo in uso presso l’utente-vittima, la versione del browser impiegato da quest’ultimo per la navigazione in Rete, i plugin del browser installati sul computer sottoposto ad attacco, la lingua del sistema operativo ed ulteriori dati. Ogni volta, a seconda dei parametri di ingresso rilevati, vengono selezionati gli exploit più appropriati per sferrare l’attacco al sistema informatico preso di mira. Se sul computer-vittima non risulta installato il software che, nel caso specifico, occorre all’exploit kit per poter lanciare l’offensiva, l’attacco semplicemente non avviene. L’assalto può ugualmente non aver luogo in quei casi in cui i cybercriminali cercano in tutti i modi di impedire che il contenuto dell’exploit pack possa cadere nelle mani degli esperti di sicurezza IT che operano presso le società produttrici di soluzioni antivirus, oppure di altri analisti e ricercatori. I criminali informatici possono, ad esempio, inserire nelle proprie “blacklist” gli indirizzi IP relativi alle società che effettuano specifiche indagini in materia (crawler, robot, proxy server), oppure possono bloccare l’esecuzione degli exploit all’interno delle virtual machine, e così via.

Lo screenshot esemplificativo qui sotto riportato mostra un interessante esempio del codice contenuto nella landing page di BlackHole.

Come si può neutralizzare un "buco nero"?

Screenshot relativo al codice maligno contenuto nella pagina di landing dell’exploit pack BlackHole

Persino gettando un rapido sguardo allo screenshot in questione appare subito evidente come il codice JavaScript risulti ampiamente offuscato, mentre le informazioni fornite si presentano, per la maggior parte, in forma codificata.

In sostanza, connettendosi alla landing page, si verificherà immediatamente l’esecuzione di codice originariamente criptato. Per cercare di complicare al massimo il rilevamento del malware, i cybercriminali ricorrono all’utilizzo di tecniche specifiche (evidenziate sullo screenshot per mezzo di segni ovali di colore giallo).

Oltre a ciò, i malintenzionati provvedono spesso ad apportare una moltitudine di piccole modifiche al codice, nell’evidente tentativo di ostacolare il rilevamento del malware tramite le consuete firme. Sebbene all’interno del nostro motore antivirus operi un apposito emulatore di script, sebbene le semplici modifiche introdotte a livello di costanti e di operazioni non pregiudichino, di fatto, l’esito del processo di rilevamento del codice maligno – i metodi sopra descritti possono comunque rendere la vita piuttosto difficile all’emulatore in questione.

Una volta effettuato il decriptaggio, nella Random Access Memory (RAM) comparirà il relativo codice, che, nella circostanza, chiameremo “script decodificato”. Esso si compone di due parti ben distinte.

La prima parte è costituita dal modulo PluginDetect, nota libreria JavaScript disponibile in forma gratuita, che permette di identificare sia la versione e le caratteristiche della maggior parte dei browser attualmente in circolazione, sia i relativi plugin installati. E’ stato appurato che i malintenzionati, di solito, ricorrono all’utilizzo di varie librerie; il suddetto modulo, tuttavia, rappresenta uno degli elementi chiave per qualsiasi kit di exploit. BlackHole, ad esempio, si avvale di PluginDetect per determinare, a seconda del software installato sul computer sottoposto ad attacco, gli exploit più appropriati per l’esecuzione delle operazioni di download del malware. Il termine “appropriati” definisce, nella fattispecie, quegli exploit che hanno le maggiori probabilità di svolgere con successo il proprio “lavoro”, generando in tal modo l’esecuzione del programma maligno sul computer-vittima.

La seconda parte dello script decodificato è rappresentata dal codice preposto all’elaborazione dei risultati derivanti dall’esecuzione delle funzioni insite nel modulo PluginDetect, così come al download e al successivo avvio degli exploit selezionati.

Nel mese di marzo 2013, BlackHole utilizzava exploit specificamente rivolti alle seguenti vulnerabilità:

  1. Java: versioni dalla 1.7 alla 1.7.х.8 – CVE-2012-5076;
  2. Java: versioni inferiori alla 1.6, o versioni dalla 1.6 alla 1.6.х.32 – CVE-2012-0507;
  3. Java: versioni dalla 1.7.х.8 alla 1.7.х.10 – CVE-2013-0422;
  4. Adobe Reader: versioni inferiori alla 8 – CVE-2008-2992;
  5. Adobe Reader: versione 8, o versioni dalla 9 alla 9.3 – CVE-2010-0188;
  6. Adobe Flash: versioni dalla 10 alla 10.2.158 – CVE-2011-0559;
  7. Adobe Flash: versioni dalla 10.3.181.0 alla 10.3.181.23 e versioni inferiori alla 10.3.181 – CVE-2011-2110.

Esamineremo, nel successivo capitolo, gli exploit volti a sfruttare le vulnerabilità individuate in Java (per un’analisi tecnica ancor più dettagliata, si prega di consultare la versione in lingua inglese del presente articolo).

Tre in uno

Il meccanismo di funzionamento dei tre exploit Java sopra menzionati risulta essere, in sostanza, del tutto identico: essi ottengono innanzitutto i privilegi del sistema, per poi lanciare il payload, che provvede al caricamento e al successivo avvio, all’interno del computer-vittima, del vero e proprio file nocivo prescelto dai malintenzionati. Allo stesso modo, risulta identico anche il file .class di Java generato da ognuno dei tre exploit. Ciò è indice inequivocabile del fatto che la creazione e lo sviluppo dei suddetti exploit sono da imputare ad un unico gruppo di malintenzionati, oppure, addirittura, ad una sola persona. L’unico elemento di diversità è rappresentato dalla modalità di ottenimento dei privilegi illimitati per il file class.

Il file .class in questione è in grado di generare il download e l’esecuzione di ulteriori file, mediante apposito decriptaggio dei parametri trasmessi attraverso lo script decodificato. Allo scopo di complicare il processo di rilevamento da parte delle soluzioni antivirus, il file dannoso sottoposto a download si presenta, in genere, in forma codificata e, pertanto, non inizia con l’abituale header PE. Il file scaricato viene di solito decodificato in memoria, mediante l’algoritmo XOR.

La trasmissione dei parametri tramite l’utilizzo di uno script decodificato rappresenta indubbiamente un metodo alquanto conveniente per poter modificare rapidamente i link attraverso i quali verrà scaricato il payload; in effetti, per far ciò, occorrerà soltanto modificare i dati presenti sulla landing page dell’exploit pack, senza dover necessariamente ricompilare l’applet Java maligno.

Le tre vulnerabilità qui esaminate sono riconducibili al cosiddetto “logical flaw”, ovvero ad errori rilevati a livello di logica. La chiamata degli exploit destinati a sfruttare tali vulnerabilità non può essere quindi controllata mediante strumenti automatici, preposti a verificare l’integrità della memoria o l’eventuale generazione di eccezioni. E’ per tale motivo che le tecnologie DEP (Data Execution Prevention) e ALSR (Address Space Layout Randomisation) introdotte da Microsoft, al pari di analoghi strumenti automatici, di fatto non risultano di aiuto per l’individuazione dei suddetti exploit Java. Esistono, ad ogni caso, specifiche funzionalità di protezione appositamente sviluppate per far fronte a tale flagello informatico, quali, in particolare modo, la tecnologia Automatic Exploit
Prevention (AEP), elaborata da Kaspersky Lab.

La protezione IT nei confronti degli exploit Java

Malgrado tutti gli sforzi prodotti dai malintenzionati, le soluzioni di sicurezza IT attualmente esistenti sono in grado di contrastare efficacemente gli attacchi di tipo drive-by, realizzati mediante l’impiego degli exploit pack. Generalmente, per garantire un efficace livello di protezione nei confronti dei famigerati exploit, le società produttrici di antivirus fanno ricorso ad un complesso insieme di sofisticate tecnologie, le quali consentono di respingere con successo tale genere di attacchi informatici, nelle varie fasi in cui questi ultimi vengono portati.

Abbiamo in precedenza analizzato il principio di funzionamento del kit di exploit BlackHole. I successivi capitoli del presente articolo illustreranno invece le modalità con cui viene messa in atto la protezione del computer in ogni fase degli attacchi eseguiti da BlackHole attraverso l’utilizzo degli exploit specificamente rivolti alla piattaforma Java; nella circostanza, l’attenzione sarà ovviamente focalizzata sulle soluzioni di sicurezza appositamente sviluppate da Kaspersky Lab.

Come si può neutralizzare un "buco nero"?

Schema inerente alla protezione IT messa gradualmente in atto nei confronti degli attacchi informatici di tipo drive-by

Vedremo pertanto, qui di seguito, quali sono i componenti della protezione IT preposti ad interagire con il codice nocivo; verranno altresì analizzati modalità e tempi di azione degli stessi.

Prima fase: blocco dell’accesso alla landing page

L’attacco ha inizio non appena l’utente, durante la navigazione in Rete, giunge sulla pagina di landing del kit di exploit. Tuttavia, la specifica funzione di protezione esercitata dal componente Anti-Virus Web è in grado di prevenire l’assalto informatico prima che quest’ultimo venga di fatto lanciato, ovvero prima che possa essere eseguito lo script maligno che conduce alla landing page. Il componente di sicurezza in questione effettua, in sostanza, un debito controllo dell’indirizzo relativo alla pagina web sulla quale l’utente dovrebbe giungere. Si tratta di una semplice verifica riguardo all’eventuale presenza di tale URL nel database dei link nocivi; essa permette, ad ogni caso, di bloccare l’accesso da parte dell’utente alla “home page” dell’exploit pack, qualora l’indirizzo in causa risulti già noto come dannoso.

In questo preciso contesto, il compito che spetta alle società produttrici di soluzioni antivirus è quello di aggiungere il più rapidamente possibile i link malevoli al suddetto database, il quale può essere situato sia sul computer dell’utente, sia nella “nuvola telematica” (ovvero su un server remoto). In quest’ultimo caso, le sofisticate tecnologie in-the-cloud consentono di ridurre ai minimi termini l’intervallo di tempo entro il quale il software di sicurezza entra in azione, bloccando i nuovi link maligni individuati. Diminuisce così il “tempo di reazione”, poiché la soluzione anti-malware installata sul potenziale computer-vittima riceve informazioni riguardo alla nuova minaccia IT immediatamente dopo la comparsa del corrispondente record nel database degli URL nocivi. Non occorrerà pertanto attendere il successivo aggiornamento del database antivirus.

I criminali informatici, a loro volta, cercano di sostituire rapidamente i domini sui quali vengono collocate le landing page dei kit di exploit, allo scopo di eludere il possibile blocco dell’accesso a tali pagine da parte del software adibito alla protezione IT. In ultima analisi, ciò riduce considerevolmente la redditività del “business” cybercriminale in causa.

Seconda fase: il rilevamento da parte dell’Anti-Virus File

Se, nonostante tutto, l’utente giunge ugualmente sulla “pagina iniziale” dell’exploit pack, entrano allora in gioco gli specifici componenti del modulo Anti-Virus File, ovverosia il rilevamento statico e l’analizzatore euristico. Essi verificano la presenza di codice nocivo sulla landing page del kit di exploit. Esamineremo, qui di seguito, il principio di funzionamento, i vantaggi e gli svantaggi che ognuno dei suddetti componenti presenta.

  • Per individuare il codice maligno, il rilevamento statico si avvale, per l’appunto, delle cosiddette firme statiche. Tali firme operano rigorosamente su determinati frammenti di codice, in pratica su specifiche sequenze di byte. Questo metodo di rilevamento delle minacce IT è stato utilizzato già nei primi prodotti antivirus; i vantaggi che esso offre sono noti: velocità di azione ed un’agevole gestione delle firme. Affinché tale componente possa emettere il “verdetto” finale, è sufficiente effettuare un semplice confronto tra la checksum ottenuta nel corso dell’analisi – o la sequenza di byte relativa al codice esaminato – e le corrispondenti firme precedentemente inserite dagli esperti di sicurezza IT all’interno del database antivirus. In termini di dimensioni, le firme utilizzate occupano, di fatto, solo poche decine di byte e, tra l’altro, possono essere facilmente compresse; per tale motivo, la loro gestione risulta in ogni circostanza particolarmente agevole. Il principale punto debole del rilevamento del malware eseguito tramite firme statiche è indubbiamente rappresentato dalla relativa semplicità con cui tali firme possono essere “bypassate”. E’ difatti sufficiente, per i malintenzionati, sostituire anche uno solo dei byte sottoposti ad analisi statica per far sì che l’oggetto maligno non possa più essere individuato. Tale svantaggio ne comporta, a sua volta, un secondo: per “coprire” un elevato numero di file occorre, naturalmente, un’altrettanto elevata quantità di firme. Ciò produce, conseguentemente, un significativo aumento delle dimensioni del database antivirus.
  • Anche l’analizzatore euristico fa uso delle firme, ma il suo principio di funzionamento risulta del tutto diverso. Esso si basa, difatti, su una dettagliata analisi dell’oggetto “in arrivo”: raccolta ed elaborazione intelligente di tutte le informazioni relative all’oggetto in causa, verifica della “conformità” di quest’ultimo, esecuzione di calcoli statistici, etc. Se i dati ottenuti attraverso la conduzione dell’analisi sopra descritta soddisfano le specifiche condizioni poste dalla firma euristica, l’oggetto esaminato viene classificato come nocivo. Il principale vantaggio offerto dalla firma di tipo euristico consiste nel poter immediatamente individuare un’elevata quantità di oggetti riconducibili ad una stessa tipologia, ma leggermente diversi l’uno dall’altro. Rispetto al “trattamento” classico, eseguito mediante le firme statiche, l’utilizzo dell’analizzatore euristico presenta tuttavia un evidente svantaggio, determinato dal fatto che la firma euristica può a volte “lavorare” con maggiore lentezza e rallentare, in tal modo, l’intero sistema. Di fatto, se la firma in questione risulta elaborata in maniera scarsamente efficace – con conseguente effettuazione di un elevato numero di operazioni, necessarie per eseguire l’algoritmo di verifica – si avranno, di riflesso, ripercussioni non troppo positive sul sistema informatico all’interno del quale opera la soluzione antivirus.

Per evitare il rilevamento dell’oggetto malevolo tramite firma statica, i cybercriminali debbono necessariamente introdurre, il più frequente possibile, modifiche minimali nel codice dell’oggetto (script, programma eseguibile, file). Questo processo può essere in qualche misura automatizzato.

Per cercare di eludere il rilevamento euristico, il virus writer deve invece eseguire una ricerca ben specifica, nel tentativo di comprendere cos’è – effettivamente – che determina l’individuazione dell’oggetto nocivo. Quando l’algoritmo sarà stato identificato, in maniera parziale o totale, dovranno essere apportati dei cambiamenti sostanziali al codice dell’oggetto maligno, modifiche in grado di contrastare l’azione svolta dalla firma euristica.

Ovviamente, il tentativo di bypassare la firma euristica richiederà al malintenzionato di turno un impiego di tempo nettamente superiore rispetto a quello generalmente richiesto per cercare di neutralizzare la firma statica. Ciò si traduce, evidentemente, in una maggior durata del “ciclo di vita” delle firme euristiche. Dall’altro lato, una volta che gli autori di malware – allo scopo di eludere l’attività dell’analizzatore euristico – avranno introdotto i suddetti cambiamenti al codice dell’oggetto sottoposto al processo di rilevamento, anche i vendor di prodotti antivirus dovranno necessariamente, a loro volta, dedicare un po’ del loro tempo alla creazione di un’altra firma.

Per condurre l’azione di verifica del contenuto della landing page, le soluzioni anti-malware utilizzano quindi vari insiemi di firme. Da parte loro, i virus writer apportano frequenti modifiche agli oggetti ospitati nella “pagina iniziale” dell’exploit pack, con il preciso intento di bypassare entrambe le tipologie di rilevamento del malware tramite firma. Se per eludere l’azione svolta dalle firme statiche i malfattori apportano in genere semplici modifiche alle stringhe del codice nocivo – ad esempio suddividendo queste ultime, oppure inserendo od eliminando certi caratteri – per cercare di evitare il rilevamento euristico i cybercriminali dovranno invece obbligatoriamente ricorrere a varie “sottigliezze” del linguaggio JavaScript, quali funzioni insolite, comparazioni, espressioni logiche ed altro ancora. Come abbiamo visto, un interessante esempio di offuscamento del codice è stato illustrato nella prima sezione del presente articolo. Durante la fase descritta in questo capitolo (seconda fase), il rilevamento avviene spesso in ragione dell’eccessivo offuscamento applicato al codice nocivo da parte dei cybercriminali; tale elemento può essere difatti ritenuto un segno plausibile della presenza di un oggetto malevolo.

Oltre ai database custoditi su disco rigido, esistono ugualmente le firme situate “in-the-cloud”. Si tratta, in genere, di firme particolarmente semplici, ma il tempo di reazione estremamente ridotto nei confronti delle nuove minacce IT che via via si affacciano sulla scena del malware (dalla creazione della firma alla comparsa della stessa nella “nuvola” intercorrono non più di 5 minuti) garantisce un elevato livello di protezione del computer dell’utente.

Terza fase: rilevamento degli exploit tramite firma

Qualora la soluzione di sicurezza non sia riuscita nel compito di identificare la landing page del kit di exploit, quest’ultimo inizierà a svolgere la propria attività nociva all’interno della macchina sottoposta a contagio informatico. Innanzitutto, esso verificherà quali sono i plugin effettivamente installati nel browser (Adobe Flash Player, Adobe Reader, Oracle Java, etc.) e “deciderà” di effettuare il download di determinati exploit, avviandone poi l’esecuzione. Allo stesso tempo, la soluzione anti-malware implementata nel potenziale computer-vittima eseguirà un apposito controllo su ogni exploit scaricato – verificando ugualmente il contenuto della pagina di landing – mediante l’impiego del componente Anti-Virus File e delle firme residenti nel cloud. Da parte loro, i cybercriminali cercheranno di mettere in atto specifici metodi volti ad evitare il rilevamento delle loro “creature”, metodi del tutto analoghi a quelli descritti in precedenza.

Quarta fase: il rilevamento proattivo degli exploit

Nel caso in cui nessuno dei componenti del sistema di protezione IT basato sulla reattività delle firme abbia individuato qualcosa di sospetto nel corso delle operazioni di controllo condotte sul contenuto dell’exploit pack, ed un exploit sia quindi stato eseguito, saranno i moduli di difesa proattiva a prendersi cura del “caso” specifico. Questi ultimi monitoreranno difatti, in tempo reale, il comportamento delle varie applicazioni all’interno del sistema informatico preso di mira, identificando, in tal modo, lo svolgimento di eventuali attività dannose.

Ogni applicazione, in base all’analisi euristica eseguita, ai contenuti presenti nel cloud, e ad altri criteri e “sintomi”, può essere classificata come “Trusted”, “Low Restrictions”, “High Restrictions”, oppure “Untrusted”. La funzionalità “Controllo Applicazioni” è in grado di introdurre specifiche limitazioni alle attività svolte dalle varie applicazioni, a seconda della categoria alla quale una determinata applicazione viene assegnata. Alla categoria “Trusted”, ad esempio, è permesso ogni genere di attività; alla classe “Low Restrictions”, invece, viene impedito l’accesso alle password memorizzate nel sistema; alle applicazioni classificate all’interno della categoria “High Restrictions”, infine, risulta del tutto vietata l’introduzione di modifiche a livello di directory di sistema, e via dicendo. Tutte le applicazioni di cui è stata avviata l’esecuzione, e sul momento funzionanti, vengono pertanto analizzate mediante un modulo di protezione ben specifico, che nell’ambito dei prodotti Kaspersky Lab assume, appunto, la denominazione di “Controllo Applicazioni” (Application Control). Tale componente, grazie all’utilizzo di intercettazioni di basso livello, effettua opportuni controlli sull’esecuzione dei programmi lanciati all’interno del sistema.

Oltre a ciò, al fine di rilevare l’eventuale comportamento dannoso di un certo programma, si fa ricorso all’utilizzo di speciali firme “comportamentali”, preposte a descrivere le attività nocive in corso. Tali firme, appositamente elaborate dagli analisti di virus, vengono debitamente confrontate con il comportamento manifestato dall’applicazione in esecuzione. Questo consente ai moduli di difesa proattiva di poter individuare nuove versioni di malware che, nello specifico, non rientrano nella categoria “Untrusted” o “High Restrictions”. Occorre sottolineare come tale tipologia di rilevamento delle minacce IT risulti essere la più efficace in assoluto, in quanto vengono analizzati, sul momento, dati riguardanti la reale attività del programma in esecuzione; si tratta quindi di un ulteriore step rispetto al modello di analisi di tipo statico od euristico. Ne consegue che metodi quali l’offuscamento e il criptaggio del codice nocivo divengono del tutto inefficaci, in quanto essi, di fatto, non influenzano in alcun modo il comportamento del programma malevolo.

Per esercitare un controllo ancor più accurato su quelle applicazioni che possono risultare vulnerabili, ed essere quindi sfruttate dagli exploit, Kaspersky Lab si avvale della tecnologia “Automatic Exploit Prevention”. Il componente AEP effettua uno specifico controllo relativamente ad ogni processo in esecuzione sul sistema. Più precisamente, tale sofisticata funzionalità di protezione agisce sullo stack delle chiamate per verificare la presenza di eventuali anomalie, controlla il codice che innesca l’esecuzione del processo ed esegue, al contempo, ulteriori attività. Viene difatti ugualmente effettuato, mediante l’applicazione di criteri selettivi, un apposito controllo sulle librerie dinamiche caricate durante l’esecuzione del processo.

Tutte le attività sopra elencate consentono di prevenire l’avvio di processi dannosi all’interno del sistema, lanciati a seguito dello sfruttamento di determinate vulnerabilità da parte degli exploit. Si tratta, in sostanza, dell’ultima linea di difesa disponibile, in grado di garantire un’adeguata protezione nei confronti dei famigerati exploit, nel caso in cui l’utilizzo degli altri componenti di sicurezza non abbia prodotto i risultati previsti. Se una determinata applicazione, quale, ad esempio, Oracle Java o Adobe Reader, manifesta un comportamento sospetto, dovuto all’exploit in esecuzione, tale applicazione, perfettamente legittima ma vulnerabile, verrà bloccata dall’antivirus e ciò ovviamente impedirà, a sua volta, l’esecuzione dell’exploit.

Dal momento che in questa fase viene effettuata la verifica del comportamento del programma, nel tentativo di contrastare il sistema di difesa proattiva implementato nel computer sottoposto ad attacco, i malintenzionati dovranno necessariamente far ricorso a metodi piuttosto complessi e laboriosi.

Quinta fase: rilevamento dei programmi malware scaricati (payload nocivo)

Se, nonostante tutto, l’exploit non è stato ancora individuato, esso cercherà di generare il download e la successiva esecuzione sul computer-vittima del payload nocivo.

Come abbiamo già riferito nella parte iniziale del presente articolo, al fine di complicare le procedure di rilevamento, il file dannoso caricato dall’exploit sulla macchina infetta si presenta abitualmente in forma codificata e, conseguentemente, non inizia con il consueto header PE. Il file in questione viene di solito decodificato in memoria, generalmente per mezzo dell’algoritmo XOR. Successivamente, il file malevolo potrà essere avviato direttamente dalla memoria (si tratta, abitualmente, di una libreria dinamica), oppure sarà “iniettato” sul disco rigido, per essere poi lanciato attraverso quest’ultimo.

Lo stratagemma che prevede il download di un file PE criptato consente, in qualche modo, di “far perdere la tramontana” all’antivirus, in quanto per quest’ultimo tale download si presenta come un normale flusso di dati. E’ tuttavia di importanza decisiva il fatto che, sul computer dell’utente, l’exploit inneschi, in seguito, l’esecuzione di un file eseguibile già decodificato. In tal modo, l’antivirus scandaglierà il file in causa mediante l’impiego di tutte le possibili tecnologie di protezione, da noi precedentemente descritte.

Conclusioni

I kit di exploit costituiscono indubbiamente un complesso sistema di penetrazione del malware all’interno del computer-vittima. I cybercriminali producono in genere notevoli sforzi per assicurare un sufficiente livello di efficacia agli exploit pack, nel tentativo di eludere il rilevamento da parte dei software di sicurezza IT. Da parte loro, le società produttrici di soluzioni antivirus cercano costantemente di perfezionare i sistemi di protezione elaborati. Al momento attuale, i vendor di prodotti antivirus possono contare su un sofisticato insieme di tecnologie che permettono di bloccare efficacemente gli attacchi drive-by, in tutte le varie fasi degli stessi, incluso il preciso momento in cui gli exploit vengono “chiamati” ad aggredire le vulnerabilità individuate.

Post correlati

Lascia un commento

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