# Exploit

Un exploit ("/ɪkˈsplɔɪt/", tradotto dall'inglese "sfruttare") è un termine usato in informatica per identificare una tipologia di script, virus, worm, porzione di dati o binario che sfrutta un bug o una vulnerabilità per creare comportamenti non previsti in software, hardware, o in sistemi elettronici (solitamente computerizzati), ad es. ottenere l'accesso a sistemi informatici, permettere l'acquisizione dei privilegi amministrativi, o attacchi Denial of service (DoS o il correlato DDoS).
Il termine non si riferisce tuttavia solamente al software; infatti, nella dinamica di un classico attacco di ingegneria sociale, anche l'inganno o il discorso stesso utilizzato per raggirare la vittima è considerato un exploit data la potenza che questo ha nel catturare informazioni relative al sistema target.

## Descrizione
### Vulnerabilità software

Il sistema operativo stesso, così come i software applicativi quali il browser Web, lettore di PDF, lettore multimediale, plug-in, prevedono architetture complesse implementate in milioni di righe di codice. È dunque inevitabile che tale codice contenga errori che possono originare vulnerabilità che se scoperte e usate da utenti malintenzionati possono essere sfruttate mediante exploit o altro malware.
Un altro aspetto importante degli exploit sta nel fatto che in fase di sviluppo si sfrutta spesso la capacità del software di interagire con gli altri programmi sia locali che remoti così da poter ambire ad attaccare anche i sistemi informatici che cooperano con la macchina target infettata.
Particolarmente pericolosi e potenzialmente molto dannosi sono gli exploit progettati per attaccare l'ambiente firmware di una macchina (Uefi), ovvero tutto ciò che c'è dall'istante di accensione del dispositivo a quello di avvio del caricamento del sistema operativo (o, meglio, del boot manager).
Gli exploit più sfruttati sono generalmente scritti in Perl, C e PHP.

### Diffusione del virus

Gli exploit vengono spesso distribuiti attraverso una rete di computer connessi a Internet. In particolare, il diffusore dell'exploit inserisce il codice in un server con l'unico scopo di distribuire l'exploit nel modo più rapido possibile. Per facilitare questa operazione, viene creata una rete di distributori degli exploit i quali, a loro volta, consentono i download drive-by camuffando l'azione con una pagina Web dall'aspetto innocente. Spesso questi malware vengono quindi iniettati inconsapevolmente nei pc domestici, così infettati, mediante download drive-by da parte degli utenti stessi.

### Exploitation

Nella fase iniziale, quando un utente scopre un rischio di sicurezza in un programma, può segnalarlo all'azienda produttrice del software, che rilascia una patch per correggere tale difetto. Tuttavia, talvolta, gli hacker vengono a conoscenza del difetto prima che tali correzioni diventino disponibili, creando un exploit che sfrutta la specifica vulnerabilità; se la notizia relativa l'esistenza di tale bug nel software venisse diffusa, il fornitore provvederebbe ad eliminarla rilasciando una patch o una nuova versione del software stesso, l'exploit sviluppato diventerebbe dunque inutilizzabile, rendendo cioè vano il tentativo di accesso remoto non autorizzato ai dispositivi aggiornati. Proprio per questo motivo, spesso i blackhat hacker non divulgano le vulnerabilità trovate, ma le tengono segrete per creare gli zero day exploit, così chiamati in quanto, sfruttando una vulnerabilità nel giorno dell'annuncio della stessa, lo sviluppatore del software ha zero giorni per riparare la falla nel programma e il risultato del malware è garantito. Gli 0-day sono tra le minacce più temute nel web in quanto, essendo noti solo a una ristretta cerchia di persone, possono causare numerosi danni prima di essere scoperti.

### Il business degli exploit

Gli exploit spesso sono rappresentati da crime-ware, un tipo di malware relativamente nuovo il cui scopo primario è quello di estorcere denaro o dati sensibili dai computer degli utenti a beneficio di una terza parte. Nel Dark web, il valore di questi è alto nel periodo di rischio, ovvero quello che va dall'annuncio di una vulnerabilità alla fornitura di una correzione da parte del produttore. La distribuzione continua tuttavia anche in seguito alla data di rilascio della patch in quanto non sempre vengono installate in tutti i computer in tempo rapido. Essendo il tempo medio di rischio pari a 56 giorni, è facile prevedere che alcuni computer rimangano vulnerabili per mesi, se non anni.
Negli ultimi due anni si è notato un aumento significativo del numero di exploit zero-day utilizzati per effettuare attacchi Internet. Si ipotizza che questo incremento possa essere dovuto al crescente livello di cooperazione tra attaccanti e professionisti del settore IT, entrambi desiderosi di sfruttare queste vulnerabilità per profitto.

## Classificazione

Gli exploit possono essere classificati con un punteggio assegnato in base al CVSS: tale sistema consente di classificare la gravità di una vulnerabilità in base a una selezione dettagliata di indicatori.
ll più comune metodo di classificazione degli exploit si basa sul metodo che questi utilizzano per interfacciarsi al software applicativo target affetto da vulnerabilità:

### Exploit remoto

Utilizza una rete di comunicazione per contattare il sistema vittima. L'attacco viene sferrato utilizzando un altro computer appartenente alla stessa rete locale (LAN ) del computer vittima, oppure mediante accesso Internet (GAN ).

### Exploit locale

Per eseguire l'exploit è necessario avere prima l'accesso al sistema vulnerabile. Possono essere utilizzati anche in remoto se l'hacker ha già ottenuto l'accesso alla macchina locale utilizzando appunto un exploit remoto.

### Exploit lato client

Questi permettono di sfruttare le vulnerabilità nelle applicazioni che vengono tipicamente installate nelle workstation. Esempi tipici di tali software sono applicazioni da ufficio (ad es. Microsoft Office, OpenOffice), lettori PDF (ad es. Adobe Acrobat Reader), i browser (ad es. Internet Explorer, Firefox, Chrome, Safari ), lettori multimediali (es. Windows media Player, Winamp, iTunes).
L'exploit viene inserito all'interno di un file con un'estensione intellegibile dall'applicazione vulnerabile, raggiungendo il computer della vittima in diversi modi come ad esempio e-mail o pendrive. Il file viene aperto dal programma e se non identificato come malevolo dunque fermato da un Firewall o da un antivirus, viene avviato sfruttando la vulnerabilità di sicurezza.
Le peculiarità di questo tipo di attacco sono:
* L'intervento da parte dell'utente sul client, l'exploit necessita infatti che l'utente ignaro della minaccia apra un file o clicchi su un link.
* L'attacco è asincrono in quanto l'exploit non viene eseguito nel momento in cui entra in contatto con il sistema bersaglio, bisogna infatti aspettare l'azione da parte dell'utente che ne scatenerà l'esecuzione.
* L'exploit si lancia alla cieca, ovvero viene diffuso su ogni sistema informatico bersaglio possibile senza sapere a priori se questo presenta o meno la vulnerabilità che il codice malevolo è in grado di sfruttare.
Gli exploit possono anche essere classificati a seconda del tipo di vulnerabilità che sfruttano:
buffer overflow, Heap Overflow, format string attacks, race condition, double free, Integer overflow, SQL injection, cross-site scripting, cross-site request forgery, Remote File Inclusion e Local File Inclusion.

## Exploit Kit

Un exploit kit è una suite di software progettata per girare su server web con lo scopo di identificare le vulnerabilità dei programmi installati nei client che comunicano con esso, così da poter caricare ed eseguire codice malevolo ad hoc sul pc della vittima. I kit più famosi sono:

### Angler

Questo riesce a individuare la presenza di antivirus e macchine virtuali, utilizza inoltre file dropper criptati. È un kit che permette di generare velocemente nuove vulnerabilità zero-day con malware che si avviano direttamente dalla Ram, senza dover essere salvati sull'hard disk delle vittime

### Neutrino

Kit proveniente dalla Russia che prevede exploit scritti in linguaggio Java

### Blackhole Kit

Una delle minacce più temute nel 2012, sfrutta le vulnerabilità delle vecchie versioni di browser come Firefox, Chrome, Internet Explorer e Safari e dei popolari plugin tipo Adobe Flash, Adobe Acrobat e Java. L'utente dopo esser stato ingannato viene reindirizzato in una nuova pagina permettendo al kit di caricare sul client tutti gli exploit per il quale è vulnerabile.

### Nuclear Pack

Questo permette di colpire i client con una serie di exploit Java e Adobe PDF

## Misure di sicurezza

Gli utenti e le organizzazioni a rischio di attacco possono utilizzare mezzi di rilevamento malware, reti locali provviste di firewall e VPN che consentono di proteggere i dati trasmessi, access point Wi-Fi sicuri per proteggersi dagli attacchi wireless. Si possono inoltre ridurre i rischi mantenendo aggiornato il software utilizzato e navigando solamente in siti Web con certificato SSL (Security Socket Layer), che consente lo scambio sicuro di informazioni tra l'utente e il sito visitato.
I malware sono tanti e diversi, ma la maggior parte ha delle matrici comportamentali simili permettendo agli antivirus, che devono effettuare analisi del comportamento del codice, di poterli identificare e bloccare.