In informatica gli exploit sono programmi specializzati che sfruttano una vulnerabilità presente in un software o in un dispositivo hardware per compiere attività e operazioni non autorizzate sulle macchine esposte.
Pertanto, può rappresentare un ulteriore strumento a disposizione dei criminali informatici che può essere implementato in diversi modi e può consentire loro di sfruttare per propri fini un problema di sicurezza.
È bene precisare che vulnerabilità ed exploit non sono la stessa cosa. Per vulnerabilità si intende qualsiasi punto debole in un’applicazione software o dispositivo hardware. Di contro, un exploit potrebbe utilizzare tale vulnerabilità per causare un determinato effetto nel sistema colpito, come ad esempio la distribuzione di malware, l’accesso o il controllo remoto non autorizzati.
Indice degli argomenti
Le fasi dell’exploitation
L’exploitation delle vulnerabilità può ritenersi, dunque, un altro modo diffuso di infiltrazione nei sistemi target. Di seguito, si riportano le fasi generalmente seguite per lo sfruttamento delle vulnerabilità:
- raccolta di informazioni sul sistema target. Questa operazione può essere eseguita in diversi modi, ad esempio mediante tecniche di sniffing e/o social engineering, per ottenere informazioni sul sistema operativo e un elenco dei servizi in esecuzione su di esso;
- ricerca delle vulnerabilità. Una volta conosciute le informazioni necessarie del target, l’attaccante cerca vulnerabilità note e specifiche;
- esecuzione. Individuata una vulnerabilità, l’autore dell’attacco cerca un exploit da utilizzare se già esistente oppure in caso contrario ne allestisce uno ad hoc.
Exploit: le diverse tipologie
Gli exploit possono essere suddivisi in due tipologie, a seconda che la vulnerabilità sfruttata sia già stata risolta o meno: noti e zero-day.
Qualsiasi exploit che prende di mira una vulnerabilità che ha già ricevuto la patch viene chiamato exploit noto, poiché tutti conoscono già il difetto corrispondente. Quando qualcuno scopre una vulnerabilità software, spesso avvisa lo sviluppatore, che potrà risolvere la vulnerabilità con una patch di sicurezza per riparare la falla prima che un attaccante ne possa trarre vantaggio con un exploit.
Questo è uno dei motivi per il quale installare gli aggiornamenti software una volta resi disponibili è sempre raccomandabile.
Quando, invece, un malintenzionato scopre una vulnerabilità e crea immediatamente un exploit, questo viene definito zero-day, in quanto vengono sfruttate delle vulnerabilità di sicurezza che sono già note all’attaccante, ma non al produttore del software attaccato (che ne viene a conoscenza solo a fatto compiuto).
Gli attacchi zero-day sono molto pericolosi perché nessuno dispone di una soluzione immediata e per rispondere all’attacco eventuale gli sviluppatori devono poter creare una patch il prima possibile. In questi casi, tutti gli utilizzatori del software interessato possono essere potenzialmente coinvolti.
Gli exploit, come detto, possono sfruttare anche difetti presenti nell’hardware e nei firmware dei dispositivi. Una vulnerabilità hardware è pertanto una falla sfruttabile per attaccare tramite l’accesso fisico o remoto l’hardware del sistema. Le vulnerabilità hardware Meltdown e Spectre ne sono un esempio. Coinvolgendo i processori di milioni di dispositivi, i produttori dei relativi chip hanno dovuto introdurre delle patch per mitigarne i rischi.
Morpheus, la CPU “mutante” a prova di cyber attacchi: come funziona e punti di forza
Classificazione degli exploit
Sulla base del tipo di attacco sferrato, gli exploit possono essere classificati in:
- eseguiti localmente ovvero che si attivano direttamente all’apertura di un file, di un’immagine, un testo apparentemente innocui, ma che tuttavia contengono codice che sfrutta la vulnerabilità;
- eseguiti in remoto che utilizzando una rete di comunicazione per contattare il sistema vittima. In tal caso l’attacco potrebbe prevedere l’utilizzo di un altro computer interno alla stessa rete locale oppure di un accesso da Internet;
- exploit di SQL Injection che utilizzano applicazioni che funzionano sulla base di DB SQL;
- exploit di negazione del servizio (DoS) che non servono a eseguire codice dannoso, ma piuttosto a sovraccaricare un’applicazione o un servizio a tal punto da impedirne l’esecuzione;
- exploit per l’esecuzione di comandi che permettono all’attaccante di controllare il codice di un programma malevolo, ottenendo così diritti amministrativi sul sistema colpito.
Cosa sono gli exploit kit
È ormai una tendenza consolidata quella di usufruire di un exploit kit ovvero di un toolkit pronto all’uso, basato sul modello di Business Software Service, con il quale ai criminali informatici viene fornito tutto il necessario per sferrare un attacco di exploit.
Un tipico exploit kit, solitamente, fornisce una console di gestione, una serie di vulnerabilità mirate a diverse applicazioni e diverse funzioni aggiuntive che rendono più semplice lanciare un attacco.
Ecco le fasi di una possibile infezione da exploit kit:
- Il contatto. L’attaccante per il contatto può impiegare e-mail spam e l’ingegneria sociale o il malvertising per indurre le persone a cliccare sul collegamento di un server di exploit kit.
- Il reindirizzamento. Il generatore di exploit kit controlla il suo obiettivo filtrando le vittime in base a determinati requisiti (ad esempio geolocalizzazione dell’IP).
- Lo sfruttamento. Le vittime vengono quindi indirizzate alla pagina di landing dell’exploit kit che determina quali vulnerabilità possono essere utilizzate successivamente.
- L’infezione. Dopo aver sfruttato con successo una vulnerabilità, l’attaccante può scaricare ed eseguire malware nell’ambiente della vittima.
Come difendersi da un exploit
In generale, possono essere messe in pratica delle azioni di sicurezza per proteggersi almeno da attacchi di exploit noti e ridurre l’eventualità di essere colpiti da un exploit zero-day:
- Tenere sempre aggiornato il proprio software. Un modo per assicurarsi di non perdere eventuali update consiste nell’utilizzare un programma di gestione che semplifichi la procedura di aggiornamento dei software o che, in alternativa, possa agire in automatico minimizzando, in tal modo, i tempi di esposizione.
- Utilizzare software di produttori affidabili. È più probabile che i relativi sviluppatori assicurino al bisogno una patch di sicurezza. Navigare solamente in siti noti, fidati o dotati di certificato SSL riduce le possibilità di sfruttamento di vulnerabilità del software lato client.
- Prestare attenzione a ogni forma di phishing. È sempre consigliato di non aprire allegati provenienti da indirizzi email sospetti e non scaricare file se consegnati da mittenti sconosciuti.