- Le vulnerabilità sono debolezze tecniche o umane che consentono attacchi alla riservatezza, all'integrità e alla disponibilità dei dati.
- Esistono diverse tipologie: software, rete, configurazione, fattore umano, cloud e catena di fornitura, oltre a guasti tecnici come injection, XSS o buffer overflow.
- La valutazione CVSS e il contesto aziendale sono fondamentali per stabilire le priorità nella risoluzione delle vulnerabilità.
- Una gestione efficace combina aggiornamenti continui, verifiche, formazione, controlli di accesso e risposte automatizzate.
Le vulnerabilità di sicurezza sono il punto di partenza della maggior parte degli incidenti di cybersecurity. Non rappresentano l'attacco in sé, bensì l'apertura che consente a una minaccia di penetrare, diffondersi e, in definitiva, causare danni reali a sistemi, reti e dati. Comprendere come vengono classificate, come si manifestano e come vengono gestite è fondamentale per qualsiasi azienda che voglia prendere sul serio la propria protezione digitale.
Nella vita di tutti i giorni, un singolo errore tecnico o umano può mandare in tilt un servizio critico in pochi minuti: da un server mal configurato a un dipendente che clicca su un link di phishing. Ecco perché si parla tanto di gestione delle vulnerabilità , patch, CVE, CVSS ed exploit. In questo articolo, organizzeremo tutti questi elementi: definizioni, tipologie di vulnerabilità, esempi concreti, tecniche di sfruttamento e come stabilire le priorità di intervento quando tutto sembra urgente.
Che cos'è una vulnerabilità di sicurezza e perché è così importante?

Quando parliamo di vulnerabilità, ci riferiamo a un difetto, un errore o una configurazione errata in un sistema informativo (server, applicazioni, reti, dispositivi, ecc.) che può essere sfruttato da un aggressore per compromettere la sicurezza. Tale compromissione può influire sulla riservatezza ( furto di dati), sull'integrità ( modifica non autorizzata) o sulla disponibilità (interruzione o disservizio del servizio).
Una vulnerabilità può derivare da difetti di progettazione, errori di implementazione, configurazioni non sicure o persino processi operativi carenti (ad esempio, la mancata revoca dell'accesso per i dipendenti che lasciano l'azienda). La minaccia è l'azione che sfrutta tale vulnerabilità: ransomware, un attacco denial-of-service, un furto massiccio di credenziali, ecc. Senza una vulnerabilità nota, sarebbe molto più difficile per un aggressore, quindi il suo obiettivo è trovarla prima che lo facciate voi.
Numerosi report sulla sicurezza, soprattutto in America Latina, dimostrano che le vulnerabilità risalenti a oltre un decennio fa continuano a essere sfruttate semplicemente perché non sono mai state corrette o sono state sottovalutate. Ciò rivela un problema fondamentale: la mancanza di aggiornamenti, lo scarso controllo della superficie di attacco e la scarsa consapevolezza a tutti i livelli dell'organizzazione.
Ecco perché il ruolo degli esperti di sicurezza informatica è così cruciale. Il loro compito è individuare queste vulnerabilità, misurarne l'impatto reale, stabilire le priorità, implementare misure di mitigazione e monitorarle per garantire che non si ripresentino. A tal fine, utilizzano scanner automatizzati , revisioni della configurazione, penetration test e analisi continua delle minacce.
Esistono due modi principali per scoprire una vulnerabilità: attraverso test di sicurezza proattivi (audit, penetration testing, scansioni) o attraverso il suo sfruttamento da parte degli aggressori . Se si verifica il secondo scenario, non si parla più solo di una vulnerabilità, ma di un incidente o di una violazione della sicurezza. Ecco perché l'individuazione precoce e i controlli preventivi sono così importanti.
Concetti chiave nel mondo delle vulnerabilità
Per orientarsi con facilità nella classificazione delle vulnerabilità di sicurezza , è utile padroneggiare una serie di termini che compaiono nei report tecnici, negli avvisi dei produttori e nelle notizie relative agli attacchi informatici.
Vulnerabilità : si tratta della debolezza in sé. Può essere un difetto di codice, una configurazione errata o una combinazione di entrambi. Di per sé, non costituisce un attacco, ma rappresenta un potenziale punto di ingresso per un criminale informatico.
Patch : Si tratta dell'aggiornamento o della correzione rilasciata dal fornitore per risolvere una specifica vulnerabilità . Può comportare la modifica delle librerie, l'adeguamento delle convalide degli input, il rafforzamento dei controlli di accesso, ecc. È la soluzione più diretta, ma anche quella che più spesso viene rimandata in molte organizzazioni.
Un exploit è il metodo pratico per sfruttare una vulnerabilità . Può trattarsi di uno script, un file creato appositamente, una stringa di comando o una serie di passaggi automatizzati. Trasforma la teoria (la vulnerabilità) in un attacco reale.
Payload : Si tratta del "codice dannoso utile" che viene eseguito dopo aver sfruttato la vulnerabilità. Può essere un ransomware, un programma per il furto di dati, una backdoor silenziosa o qualsiasi altro malware. L'exploit apre la porta; il payload entra e svolge il lavoro sporco.
Prova di concetto (POC) : si tratta di una prova di concetto che dimostra che una vulnerabilità è sfruttabile, solitamente a scopo di ricerca o di verifica . Non deve necessariamente essere malevola; viene utilizzata per convalidare l'esistenza del difetto e misurarne l'impatto senza causare danni alla produzione.
Zero-day : Si tratta di una vulnerabilità sconosciuta al produttore e per la quale non è disponibile alcuna patch . Se un malintenzionato la scopre prima di chiunque altro, può sfruttarla senza alcuna firma di rilevamento o soluzione specifica, rendendola uno degli scenari più pericolosi.
CVE (Common Vulnerabilities and Exposures) : si tratta dell'identificativo standard assegnato a ogni vulnerabilità disponibile pubblicamente. Un CVE come CVE-2026-6785 consente di identificare una vulnerabilità specifica tramite un codice univoco, facilitando il monitoraggio e il coordinamento tra produttori e team di sicurezza.
CWE (Common Weakness Enumeration) : anziché concentrarsi sui singoli casi, categorizza i modelli di vulnerabilità (buffer overflow, convalida insufficiente, errori di autenticazione, ecc.). Aiuta gli sviluppatori a capire quali tipi di errori evitare fin dalla fase di progettazione.
CVSS (Common Vulnerability Scoring System) : Questo è il sistema più utilizzato per valutare la gravità di una vulnerabilità, con un punteggio da 0 a 10. Prende in considerazione le modalità di sfruttamento, l'eventuale necessità di autenticazione, l'impatto su riservatezza, integrità e disponibilità, nonché fattori temporali e ambientali. Esempi come Log4Shell (CVE-2021-44228) raggiungono un punteggio di 10, indicando la massima criticità.
Classificazione generale delle vulnerabilità della sicurezza informatica
Un metodo pratico per organizzare le vulnerabilità consiste nell'analizzare dove si manifestano e cosa influenzano . In seguito, vengono solitamente raggruppate in diverse categorie generali che aiutano a stabilire le priorità e ad assegnare le responsabilità all'interno dell'organizzazione.
Vulnerabilità di rete : queste interessano l' infrastruttura di comunicazione : porte aperte non necessarie, regole firewall permissive, VPN scarsamente protette, mancanza di segmentazione della rete, traffico non crittografato, ecc. Negli ambienti ibridi e remoti, diventano ancora più critiche a causa dell'aumento della superficie di attacco.
Vulnerabilità di configurazione e di sistema : si tratta di difetti che si manifestano quando un sistema viene implementato con parametri non sicuri , credenziali predefinite, servizi che non dovrebbero essere attivi o senza adeguati controlli di accesso. Non dipendono dal codice in sé, ma piuttosto da come l'infrastruttura viene configurata e gestita.
Vulnerabilità umane : note anche come fattore umano . Derivano da comportamenti non sicuri: utilizzo di password deboli o riutilizzate, condivisione delle credenziali via e-mail, download di file da fonti dubbie, cadere vittima di truffe di phishing o vishing, ecc. Sono difficili da eliminare perché hanno più a che fare con la psicologia e la cultura che con la tecnologia.
Vulnerabilità del cloud : queste si verificano negli ambienti cloud a causa di configurazioni di archiviazione inadeguate (bucket pubblici), API non sicure, autorizzazioni eccessive sulle identità o mancanza di monitoraggio continuo. La velocità con cui i servizi cloud cambiano rende facile perdere visibilità sul proprio livello di sicurezza.
Vulnerabilità di terze parti e della catena di fornitura : queste derivano da strumenti, librerie, fornitori o partner che hanno accesso a sistemi o dati sensibili. Un guasto in uno di questi anelli può rappresentare la porta d'accesso per compromettere aziende molto più grandi, come dimostrato in incidenti di alto profilo.
Le tipologie di vulnerabilità tecniche più frequenti
Al di là delle categorie generali, è importante comprendere le tipologie tecniche di vulnerabilità che si riscontrano frequentemente negli audit e negli attacchi reali. Molte di queste sono incluse nella Top 10 di OWASP e sono comunemente presenti nei report globali.
Overflow del buffer : si verifica quando un'applicazione scrive più dati di quanti ne possano essere contenuti in un'area di memoria riservata. Quando questo spazio viene superato, altre aree di memoria vengono sovrascritte, il che può consentire l'esecuzione di codice arbitrario con i permessi del processo vulnerabile.
Condizione di gara (race condition ): si verifica quando l'esito di un'operazione dipende dall'ordine di esecuzione di più processi o thread che accedono a una risorsa condivisa. Se un utente malintenzionato manipola quest'ordine, può causare comportamenti imprevisti, come l'esecuzione di un'azione due volte o l'elusione dei controlli.
Bug delle stringhe di formato : si tratta di errori derivanti dall'accettazione di stringhe di formato non validate (ad esempio, in C, funzioni come printf). Un utente malintenzionato può iniettare specificatori di formato per leggere o scrivere in memoria senza autorizzazione.
Scarsa validazione degli input : quando i dati provenienti da utenti, moduli, intestazioni o parametri URL non vengono validati correttamente, si aprono le porte ad attacchi come SQL injection, LDAP injection, XPath, XSS o command injection . È una causa comune di molte vulnerabilità critiche.
Iniezione SQL : consiste nell'inserire codice SQL dannoso dove è previsto testo normale (ad esempio, in un modulo di accesso). Se l'applicazione concatena direttamente questo input in una query, l'attaccante può leggere, modificare o eliminare i dati e persino assumere il controllo del database.
CSRF (Cross-Site Request Forgery) : costringe un utente autenticato a compiere azioni indesiderate su un'applicazione legittima, in genere cliccando su un link o caricando una pagina con una richiesta nascosta. Sfrutta la fiducia che il sito ripone nella sessione dell'utente.
Attraversamento di directory : questa tecnica prevede la manipolazione dei percorsi dei file utilizzando sequenze come ../ per accedere a file al di fuori della directory consentita dall'applicazione (ad esempio, /etc/passwd in Linux). Senza un'adeguata convalida dei percorsi, è possibile leggere informazioni sensibili o persino eseguire codice se gli script vengono modificati.
Iniezione di comandi : si verifica quando un'applicazione esegue comandi del sistema operativo utilizzando dati forniti dall'utente senza previa sanificazione. L'attaccante può iniettare comandi aggiuntivi per eliminare file, esfiltrare informazioni o aprire canali remoti.
La deserializzazione non sicura si verifica quando un'applicazione accetta dati serializzati (oggetti, strutture) e li deserializza senza verificarne l'origine o il contenuto. Un oggetto manipolato può causare l'esecuzione di codice durante il processo di ricostruzione.
Credenziali hardcoded : credenziali, token o chiavi incorporate direttamente nel codice sorgente o nei file binari. Se un utente malintenzionato ottiene l'accesso al repository o decompila l'applicazione, può scoprire queste credenziali e utilizzarle per infiltrarsi in altri sistemi.
IDOR (Insecure Direct Object Reference) : si verifica quando un'applicazione consente l'accesso alle risorse semplicemente modificando un identificatore (ad esempio, un ID numerico nell'URL) senza verificare se l'utente dispone dell'autorizzazione. Questo è un caso tipico di visualizzazione dei dati di qualcun altro tramite la modifica del numero nell'URL.
Errori di gestione delle risorse : si tratta di situazioni in cui un'applicazione non riesce a gestire correttamente l'utilizzo di memoria, CPU, spazio di archiviazione o processi concorrenti. Ciò facilita l'esaurimento delle risorse e gli attacchi denial-of-service , ad esempio, tramite richieste illimitate a un'API senza limitazione della frequenza.
Gli errori di configurazione includono pannelli di amministrazione esposti senza un'adeguata autenticazione, bucket di cloud pubblici, servizi attivi non necessari, directory elencabili ed endpoint di debug accessibili da Internet. Un'infrastruttura ben progettata può diventare completamente insicura a causa di una singola impostazione errata.
I problemi di autorizzazione e controllo degli accessi , noti anche come controlli degli accessi non funzionanti, si verificano quando gli utenti possono eseguire azioni che non dovrebbero, a causa di ruoli definiti in modo inadeguato, convalida insufficiente da parte del backend o API che non verificano chi effettua la richiesta. Queste problematiche rappresentano una causa comune di escalation dei privilegi.
Fughe di informazioni : si verificano quando sistemi o applicazioni espongono dati sensibili in messaggi di errore, intestazioni, percorsi, log o risposte HTTP . A volte non si tratta di un attacco diretto, ma queste informazioni aiutano un malintenzionato a mappare il sistema, rilevare le versioni o trovare altre vulnerabilità.
Gestione inadeguata delle sessioni : ciò include token generati in modo errato, sessioni che non scadono, chiusura errata della sessione o archiviazione non sicura delle credenziali nei cookie. Questo tipo di problemi facilita agli aggressori il dirottamento delle sessioni e l'utilizzo di account legittimi.
Esempi concreti di vulnerabilità e software interessati
Il catalogo CVE si arricchisce ogni anno di decine di migliaia di nuove voci. Alcune vulnerabilità hanno acquisito notorietà per il loro impatto globale e contribuiscono a illustrare cosa può accadere quando un'organizzazione non applica le patch in tempo o sottovaluta un avviso di sicurezza.
Un esempio recente è CVE-2026-6785 , una vulnerabilità di sicurezza della memoria presente in diverse versioni di Firefox e Thunderbird. Sebbene i dettagli tecnici siano complessi, il concetto di base è chiaro: erano presenti bug che potevano portare al danneggiamento della memoria e all'esecuzione di codice arbitrario . La correzione è stata rilasciata nelle versioni successive (Firefox 150, versioni ESR aggiornate, ecc.), ma qualsiasi sistema non aggiornato tempestivamente rimane vulnerabile.
Altri casi ben noti includono vulnerabilità con un punteggio CVSS di 10 , come Heartbleed (OpenSSL), BlueKeep, Shellshock, EternalBlue e la già citata Log4Shell. Tutte queste consentivano l'esecuzione di codice in remoto o l'accesso a informazioni estremamente sensibili e sono state sfruttate in massicce campagne di malware e ransomware.
Tra i software più frequentemente attaccati figurano Adobe Flash (ormai obsoleto, ma storicamente afflitto da falle nell'esecuzione del codice), Microsoft Windows (con numerose vulnerabilità di privilegio e RCE nel corso degli anni), i server Apache , i database Oracle , Adobe Acrobat Reader , Java e PHP , tutti con una lunga storia di exploit, dai buffer overflow alle injection e al cross-site scripting.
Alcune vulnerabilità specifiche sono state collegate ad attacchi ben noti. Ad esempio, la CVE-2017-0199 , una falla di esecuzione di codice in remoto in Microsoft Office, è stata sfruttata da famiglie di ransomware come Ryuk, Emotet e Dridex, utilizzando documenti dannosi che a prima vista sembravano innocui.
Esistono anche casi in cui la fuga di notizie relative a strumenti di spionaggio informatico ha portato alla luce vulnerabilità precedentemente sconosciute. Nel 2016, il gruppo The Shadow Brokers ha pubblicato una serie di exploit presumibilmente rubati alla NSA, rivelando falle critiche nei sistemi operativi, nelle applicazioni e nei firewall. Questi strumenti sono stati successivamente riutilizzati in attacchi come il ransomware WannaCry, che ha sfruttato la vulnerabilità EternalBlue per diffondersi rapidamente.
Come vengono sfruttate le vulnerabilità: tecniche comuni
Una volta individuata una vulnerabilità, un attaccante ha bisogno di una tecnica per convertirla in accesso effettivo . Da lì, può distribuire malware, spostarsi lateralmente all'interno della rete o estrarre dati. Alcune delle tecniche di sfruttamento più rilevanti sono elencate di seguito.
Esecuzione di codice remoto (RCE) : questo è il "sacro Graal" per molti aggressori, poiché consente loro di eseguire codice remoto sul sistema della vittima senza accesso fisico. Molte catene di exploit sono specificamente progettate per raggiungere questa capacità, come nel caso di Log4Shell o di alcune vulnerabilità nei servizi esposti.
LFI/RFI (Inclusione di file locali/remoti) : nelle vulnerabilità di inclusione di file, un'applicazione vulnerabile può finire per caricare ed eseguire file locali o remoti controllati dall'attaccante . LFI accede ai file sul server stesso (ad esempio, log con codice iniettato), mentre RFI include contenuti ospitati su un server esterno, consentendo l'esecuzione diretta del codice.
Escalation dei privilegi : anche se l'accesso iniziale avviene con un account limitato, l'obiettivo usuale è quello di incrementare i privilegi (da utente ad amministratore, da utente normale a root, ecc.). Ciò può essere ottenuto tramite errori del sistema operativo, configurazioni errate dei servizi o vulnerabilità specifiche come PwnKit (CVE-2021-4034) sui sistemi Linux.
Heap spraying : una tecnica avanzata che consiste nel riempire la memoria dinamica (heap) con pattern contenenti il payload, in modo che quando un exploit reindirizza l'esecuzione a un'area di memoria non specificata, aumenti la probabilità che questa "cada" in un codice dannoso. È stata ampiamente utilizzata negli exploit che prendevano di mira i browser più vecchi.
Programmazione orientata al ritorno (ROP) : una strategia per aggirare protezioni come DEP/NX. Invece di iniettare nuovo codice, l'attaccante riutilizza piccoli frammenti di codice legittimo ("gadget") presenti in file binari o librerie, concatenandoli con istruzioni di ritorno per costruire una logica malevola. È una delle tecniche più robuste negli scenari in cui sono attive le moderne misure di mitigazione.
Valutazione e definizione delle priorità: come decidere quale vulnerabilità attaccare per prima
In uno scenario tipico, una scansione o un audit potrebbero produrre un report con decine o addirittura centinaia di vulnerabilità classificate come gravi, medie o basse. Questa classificazione generica è utile come prima approssimazione, ma risulta insufficiente per prendere decisioni aziendali, soprattutto quando le scadenze per il passaggio in produzione sono ravvicinate.
Per affinare questa prioritizzazione, vengono utilizzati il CVSS e le sue metriche . La parte "Base" del CVSS analizza elementi quali il vettore di accesso (locale, rete adiacente o remoto), la complessità dell'attacco, se è richiesta l'autenticazione e l'impatto su riservatezza, integrità e disponibilità. Più l'attacco è remoto e semplice, e maggiore è il suo impatto, più alto sarà il punteggio.
Le metriche temporali includono fattori quali l'esistenza di exploit pubblici, la disponibilità di patch e l'affidabilità delle informazioni sulle vulnerabilità. Le metriche ambientali , d'altro canto, considerano il contesto specifico di ciascuna organizzazione: il numero di sistemi interessati, i requisiti di sicurezza interni e i potenziali danni collaterali (finanziari, legali, reputazionali).
In pratica, una vulnerabilità con un punteggio elevato che causa solo un'interruzione del servizio in un sistema non critico può essere temporaneamente accettabile, mentre una vulnerabilità "media" che espone dati protetti da normative può essere inaccettabile. La chiave sta nel correlare il punteggio tecnico con la criticità della risorsa e il contesto normativo.
Oltre al CVSS, molte organizzazioni utilizzano framework di gestione del rischio che includono metriche come l'EPSS (probabilità di sfruttabilità), la criticità degli asset, se sono esposti a Internet o sono solo interni e se esistono controlli compensativi (WAF, segmentazione, monitoraggio, ecc.). L'obiettivo è semplice: avere un elenco chiaro di cosa correggere immediatamente, cosa mitigare con urgenza e cosa può essere pianificato a medio termine.
Le migliori pratiche per ridurre e gestire le vulnerabilità
Nessuna organizzazione può eliminare tutte le vulnerabilità, ma può ridurre drasticamente la propria esposizione implementando una serie di misure di base, combinate con processi di miglioramento continuo.
Innanzitutto, è essenziale un solido programma di gestione delle patch : un inventario completo delle risorse, il monitoraggio degli avvisi di sicurezza dei fornitori, test rapidi negli ambienti di pre-produzione e la distribuzione agile degli aggiornamenti in produzione. Questo contribuisce a ridurre al minimo il rischio di esposizione a vulnerabilità note.
È inoltre fondamentale condurre audit e valutazioni regolari , sia automatizzati (scanner di vulnerabilità) che manuali (penetration testing, revisioni della configurazione). Queste attività consentono di individuare difetti di progettazione, configurazioni obsolete, servizi esposti inutilmente ed errori umani che non emergerebbero da una semplice scansione.
La formazione e la sensibilizzazione del personale rappresentano un altro pilastro fondamentale. Il fattore umano rimane l'anello debole in molte catene di attacco. Programmi di formazione continua, esercitazioni di phishing, politiche di password chiare, autenticazione a più fattori e protocolli di segnalazione degli incidenti contribuiscono a ridurre questo rischio.
Dal punto di vista tecnico, è consigliabile rafforzare i controlli di accesso (principio del minimo privilegio, RBAC/ABAC, revisione periodica delle autorizzazioni), segmentare le reti per limitare i movimenti laterali, proteggere le interfacce di gestione con VPN o filtri IP e disabilitare servizi e ambienti di test in produzione.
Infine, strumenti e piattaforme avanzate per l'automazione della risposta alle vulnerabilità possono fare una differenza significativa nelle organizzazioni con grandi volumi di risorse. Soluzioni che unificano i risultati provenienti da diversi scanner, normalizzano i dati, li arricchiscono con informazioni sulle minacce e automatizzano i flussi di lavoro di applicazione delle patch o la generazione di ticket contribuiscono a ridurre il tempo medio di risoluzione e a impedire che le vulnerabilità critiche vengano trascurate tra centinaia di avvisi minori.
In definitiva, la gestione delle vulnerabilità va ben oltre la semplice esecuzione occasionale di una scansione. Richiede la comprensione di cosa sia una vulnerabilità, come venga classificata, dove si manifesti (codice, rete, cloud, persone, terze parti), quali tecniche di sfruttamento vengano utilizzate e come assegnare priorità in modo intelligente in base al rischio effettivo per l'azienda. Le organizzazioni che integrano tutto ciò nella propria cultura e nei processi quotidiani sono quelle che, in definitiva, resistono meglio a un panorama delle minacce sempre più complesso e in continua evoluzione.
