Grazie ad un attacco “drive-by” un aggressore può provocare l’installazione di un software dannoso sulla macchina dell’utente senza che questi abbia espressamente richiesto il prelievo di alcun file. Gli attacchi “drive-by” rappresentano una grave minaccia perché l’esecuzione del malware potrebbe verificarsi semplicemente navigando in Rete con un normale browser web.
Ad essere maggiormente esposti a questo tipo di attacchi sono gli utenti che non sono abituati ad aggiornare tempestivamente il browser e tutti i plugin utilizzati.
Sempre più frequentemente gli aggressori pubblicano sul web delle pagine che ospitano contenuti “maligni” capaci di far leva sulle vulnerabilità conosciute presenti nelle più vecchie versioni dei browser, dei plugin e dei software installati sul sistema.
Non basta quindi mantenere sempre aggiornato il browser (Internet Explorer, Chrome, Firefox, Opera, Safari,…) all’ultima versione installando patch ed aggiornamenti ma è indispensabile ricordarsi di verificare i plugin che si usano. Per ciascun plugin bisognerà accertarsi di utilizzare sempre la release più recente.
L’uso di versioni superate del browser e dei vari plugin è una prassi da evitare perché responsabile di una buona parte delle infezioni da malware. Tra i plugin maggiormente bersagliati vi sono Java, Flash Player, Adobe Reader ed Apple Quicktime: utilizzando, con il proprio browser web, una versione non aggiornata di tali componenti aggiuntivi, è altamente probabile che prima o poi, durante la navigazione in Rete, si possa incorrere in spiacevoli problemi.
Nell’articolo Navigazione sicura e protezione del browser: controllare, aggiornare e rimuovere i plugin abbiamo proposto tutta una serie di suggerimenti per controllare i plugin utilizzati e disattivare o disinstallare quelli obsoleti.
L’installazione degli aggiornamenti per ciascun software presente sul sistema assume importanza fondamentale soprattutto nel caso delle applicazioni che si usano per “comunicare” in Rete o che comunque integrano funzionalità per l’invio e la ricezione di dati online.
A volte, però, l’installazione degli ultimi aggiornamenti non basta. Gli autori di malware più esperti, infatti, riescono a sferrare anche attacchi “zero day“.
Con tale espressione vengono comunemente definiti gli attacchi informatici che hanno inizio “nel giorno zero” ossia dal momento in cui è scoperta una falla di sicurezza in un programma specifico. Questo tipo di aggressioni, se ben studiate, possono mietere molte vittime proprio poiché il produttore dell’applicazione vulnerabile non ha evidentemente ancora avuto il tempo di rilasciare una patch correttiva.
Secondo quanto trapelato alcuni mesi fa, alcune falle “zero day” presenti nel pacchetto Java sono state utilizzate per condurre attacchi mirati verso i sistemi di alcune società dai nomi altisonanti: Facebook, Twitter, Apple (oltre ad alcune testate giornalistiche statunitensi).
A tal proposito, suggeriamo la lettura dell’articolo Facebook conferma: una lacuna di Java dietro l’attacco e del successivo Aggredita anche Apple: si punta di nuovo il dito su Java.
Col termine “exploit“, invece, si definisce quel particolare codice che – sfruttando una vulnerabilità software irrisolta (perché non sistemata installando gli ultimi aggiornamenti o perché non ancora sanata dal produttore dell’applicazione) – permette di effettuare operazioni potenzialmente dannose all’insaputa dell’utente, acquisire privilegi più elevati oppure provocare attacchi DoS (Denial of Service).
Gli exploit che si concentrano su falle “zero day” sono quindi i più pericolosi perché prendono di mira falle di sicurezza che non sono immediatamente risolvibili (generalmente attraverso l’installazione delle patch) da parte degli utenti.
A partire dal rilascio di Windows XP Service Pack 2, Microsoft ha cominciato ad inserire, nel sistema operativo, una serie di strumenti che si prefiggono come obiettivo quello di bloccare sul nascere eventuali codici exploit. Con Windows Vista le varie tecnologie di protezione sono ulteriormente maturate per poi essere confermate nelle successive versioni del sistema operativo.
DEP (Data Execution Prevention) ed ASLR (Address Space Layout Randomisation) sono due tecnologie di difesa che Microsoft ha introdotto e che consentono di ridurre al minimo i rischi di esecuzione di codice nocivo.
L’obiettivo è quello di evitare che un aggressore possa sfruttare la presenza di una vulnerabilità in qualsiasi componente software, ad esempio, per caricare del codice nocivo.
DEP evita che codice malevolo venga eseguito da aree di memoria marcate come aree dati (attacchi buffer overflow) mentre ASLR fa in modo che i componenti di un’applicazione o del sistema operativo non possano essere caricati sempre nella stessa posizione scongiurando così gli attacchi basati sulla conoscenza delle specifiche celle di memoria nelle quali avviene il caricamento.
Le tecnologie DEP e ASLR, se utilizzate correttamente ed in modo simultaneo, sono in grado di proteggere il sistema dalla maggior parte degli attacchi exploit. Un aggressore può riuscire ad eseguire codice malevolo nel momento in cui riesca ad individuare una falla di sicurezza che riguardi proprio DEP e ASLR (scenario poco comune).
Molto spesso accade che alcuni programmi o librerie DLL da essi utilizzate non facciano uso di DEP e ASLR porgendo così il fianco agli attacchi. Una delle librerie che non sfrutta la protezione aggiuntiva offerta da DEP e ASLR è ad esempio msvcr71.dll
, file utilizzato da Java 6, pacchetto ancora molto diffuso sui personal computer degli utenti di mezzo mondo.
A livello preventivo agisce EMET (Enhanced Mitigation Experience Toolkit), software gratuito sviluppato da Microsoft e recentemente giunto alla versione 4.0 (vedere Ecco EMET 4, per proteggere le applicazioni più datate ed il precedente articolo Bloccare i malware abilitando la funzionalità SEHOP in Windows).
EMET è un software molto interessante che consente di proteggere le varie applicazioni presenti sul sistema rilevando quelle che non poggiano sulle tecnologie di protezione offerte dal sistema operativo.
L’ultima versione di EMET, già all’avvio consente di forzare le principali applicazioni ad utilizzare le funzionalità di protezione di Windows:
Come si vede, selezionando l’opzione Use recommended settings, EMET configura automaticamente anche programmi come Adobe Acrobat, Adobe Reader e Java in modo tale che utilizzino DEP, ASLR e le altre tecnologie di protezione offerte dal sistema operativo.
Cliccando sull’icona Apps della barra degli strumenti di EMET è possibile verificare quali applicazioni installate stanno usando od utilizzeranno, appena in esecuzione, le funzionalità di protezione di Windows:
Malwarebytes, società che sviluppa e distribuisce l’omonimo antimalware, ha invece di recente presentato Anti-Exploit, un programma che è frutto dell’acquisizione di una più piccola software house ZeroVulnerabilityLabs.
Malwarebytes Anti-Exploit utilizza un approccio “a posteriori”, nel senso che il software cerca di intercettare il codice exploit prima che esso vada in esecuzione. Anti-Exploit, precedentemente conosciuto col nome ZeroVulnerabilityLabs ExploitShield, monitora costantemente l’uso di shellcode, codice che rappresenta il payload ossia la parte fondamentale di una routine per lo sfruttamento di una vulnerabilità software.
Nei giorni scorsi si sono scritti, “sul web italiano”, fiumi di parole su ExploitShield o meglio su Malwarebytes Anti-Exploit, che ne raccoglie l’eredità.
È bene tenere presente che Anti-Exploit, per la sua stessa natura, non può essere un software di protezione “a tutto tondo”. Il programma è solido e l’acquisizione da parte di Malwarebytes, leader nelle soluzioni per il riconoscimento e la rimozione di minacce, ne è una chiara testimonianza.
Anti-Exploit può essere adottato in un’ottica di protezione a strati che non preveda l’eliminazione o la sostituzione di qualche elemento della “pila”. In altre parole, l’antivirus/antimalware non va messo nel dimenticatoio ed è necessario poggiare sulle funzionalità di protezione del sistema operativo (DEP e ASLR in primis) con le quali Anti-Exploit può andare a braccetto.
Software come Anti-Exploit, seppur validissimi, non possono fornire da soli una protezione completa. Inoltre, sebbene l’applicazione fornisca un’ottima protezione contro gran parte dei codici exploit in taluni casi un aggressore potrebbe comunque riuscire ad eseguire codice dannoso.
Anti-Exploit, come accennato, agisce infatti a posteriori: se il programma interviene nel momento in cui vengono eseguite determinate azioni (intercettazione di certe chiamate API), significa che si è precedentemente acconsentito all’effettuazione di tali operazioni. Sta quindi all’abilità di Anti-Exploit rilevare comportamenti e chiamate sospette.
Anti-Exploit è quindi un software capace di proteggere da molteplici exploit ma che dovrebbe essere comunque utilizzato in combinazione con le altre funzionalità di protezione del sistema (ad esempio, DEP e ASLR). Non si è dinanzi, quindi, ad un sostituto ma ad un’applicazione capace di integrare il livello di protezione fornito dal sistema operativo.
Di per sé il funzionamento di Anti-Exploit è semplicissimo: dopo aver installato il software sul sistema (per ovvi motivi necessita dei diritti amministrativi), è sufficiente eseguirlo per attivare immediatamente la sua protezione.
Al termine dell’installazione Anti-Exploit non visualizza alcun messaggio ma si mostra, in modo discreto, nella traybar di Windows:
Facendo doppio clic sullo scudetto evidenziato in figura, Anti-Exploit mostra il numero di applicazioni che vengono monitorate (Shielded applications):
Per sapere di quali applicazioni si tratta, è sufficiente fare clic sulla scheda Logs:
Per rendersi conto dei programmi che Anti-Exploit è in grado di mantenere sotto controllo, basta selezionare la scheda Shields:
Nessun intervento da effettuare: una volta in esecuzione, Anti-Exploit è in grado di fornire la sua protezione contro la maggior parte dei codici exploit.
Il nostro auspicio, comunque, è che Anti-Exploit venga integrato in una delle soluzioni per la sicurezza di Malwarebytes (ad esempio il celeberrimo Anti-Malware). È bene infine tenere presente che l’applicazione non è stata ancora rilasciata nella sua veste definitiva.