Ogni sistema informatico, per quanto curato, contiene punti deboli.
Un software scritto in fretta, una configurazione lasciata ai valori predefiniti, un dispositivo mai aggiornato: sono tutte crepe attraverso cui un attaccante può passare. Queste crepe hanno un nome preciso, vulnerabilità informatiche, e capirle è il primo passo per difendersi, perché non si può proteggere ciò di cui si ignora l’esistenza.
In questo articolo vediamo cos’è una vulnerabilità informatica, da dove nasce, perché è pericolosa, quali sono le tipologie più diffuse nei sistemi e nelle applicazioni web, e in che modo un’azienda può tenerle sotto controllo. È una guida introduttiva al tema: per gli approfondimenti sulle singole vulnerabilità e sulle attività di analisi rimandiamo agli articoli dedicati lungo il testo.

Cos’è una vulnerabilità informatica
Una vulnerabilità informatica è una debolezza presente in un sistema che può essere sfruttata per comprometterne la sicurezza. Può trattarsi di un errore nel codice di un programma, di una configurazione sbagliata, di un componente obsoleto o di una falla in un protocollo di comunicazione. In tutti i casi, il risultato è lo stesso: un varco attraverso cui un attaccante può ottenere accesso non autorizzato, sottrarre dati o prendere il controllo di una risorsa.
Per capire il concetto, l’analogia con il sistema immunitario è utile. Un organismo con difese indebolite viene attaccato più facilmente da virus e batteri; allo stesso modo, un sistema informatico con vulnerabilità non corrette offre agli attaccanti i punti di ingresso di cui hanno bisogno. La differenza è che, mentre il corpo si difende da solo, un sistema informatico va difeso attivamente, individuando e correggendo le debolezze prima che qualcuno le sfrutti.
È importante distinguere tre concetti che vengono spesso confusi. La vulnerabilità è la debolezza in sé. L’exploit è il codice o la tecnica con cui quella debolezza viene effettivamente sfruttata. La minaccia è l’evento potenziale che ne deriva. Una vulnerabilità senza un exploit che la sfrutti resta un rischio teorico; quando compare l’exploit, il rischio diventa concreto e immediato.
Da dove nascono le vulnerabilità
Stabilire l’origine di ogni singola vulnerabilità è complesso, ma è possibile ricondurle a tre grandi categorie: software, configurazione e hardware. Conoscerle aiuta a capire dove cercarle.

Le vulnerabilità software, spesso chiamate anche bug, sono errori presenti nel codice di un programma. Possono annidarsi nella logica dell’applicazione, nella gestione della memoria, nel modo in cui il software riceve e tratta i dati che arrivano dall’esterno. Sono le più numerose, perché ogni riga di codice scritta è una potenziale fonte di errore, e crescono in proporzione alla complessità del software. Un caso particolarmente critico è quello delle vulnerabilità zero-day, falle non ancora note al produttore e quindi prive di correzione, per le quali non esiste ancora una difesa.
Le vulnerabilità di configurazione non dipendono da errori nel codice, ma dal modo in cui i sistemi vengono impostati e gestiti. Password deboli, servizi esposti che non dovrebbero esserlo, permessi di accesso troppo ampi, valori predefiniti mai modificati: sono debolezze introdotte non da chi ha scritto il software, ma da chi lo installa e lo amministra. Sono tra le più diffuse proprio perché dipendono da scelte umane, e quindi da disattenzioni umane. Le vulnerabilità hardware e di protocollo, infine, riguardano rispettivamente i difetti nei componenti fisici (si pensi alle falle nei processori come Spectre e Meltdown) e le debolezze nei sistemi di comunicazione tra dispositivi, come un protocollo di rete progettato senza adeguate garanzie di sicurezza.
Perché sono pericolose
C’è un punto controintuitivo da chiarire: non sono le vulnerabilità, di per sé, a causare il danno. Una vulnerabilità è il vettore, la via d’accesso, non l’attacco in sé. Il pericolo concreto inizia nel momento in cui qualcuno la scopre e costruisce un modo per sfruttarla.
Questo spiega perché il fattore tempo è decisivo. Tra il momento in cui una vulnerabilità viene scoperta e quello in cui viene corretta esiste una finestra di esposizione, ed è in quella finestra che si concentrano gli attacchi. Quando una vulnerabilità diventa pubblica, gli attaccanti si muovono in fretta per sfruttarla prima che le aziende applichino le correzioni: è una corsa contro il tempo, e chi tarda ad aggiornare i propri sistemi si trova esposto a falle ormai note a tutti.
Le conseguenze, una volta che una vulnerabilità viene sfruttata, sono sempre serie. Una falla può diventare il vettore attraverso cui si diffonde un malware, può esporre l’azienda al furto di dati sensibili con le relative conseguenze legali e reputazionali, può permettere a un attaccante di prendere il controllo di server e postazioni, fino a paralizzare l’operatività con un attacco ransomware. Un singolo punto debole non corretto può essere l’inizio di una catena che compromette l’intera infrastruttura.
Le vulnerabilità più diffuse nei sistemi
All’interno di un sistema informatico, alcune categorie di vulnerabilità ricorrono con una frequenza tale da essere responsabili della maggior parte degli attacchi. Conoscerle significa sapere dove concentrare l’attenzione.
Gli errori di configurazione sono probabilmente i più diffusi in assoluto. Rientrano qui le password deboli o riutilizzate, i privilegi di accesso concessi con troppa generosità, le porte di rete lasciate aperte senza motivo, i servizi esposti su internet che dovrebbero restare interni, gli accessi remoti configurati e poi dimenticati. Non richiedono che un attaccante “buchi” qualcosa: sfruttano semplicemente una porta che qualcuno ha lasciato aperta. Accanto a questi ci sono le vulnerabilità del software installato, che crescono con il numero e la complessità delle applicazioni in uso, e soprattutto le patch mancanti.
Il problema delle patch merita un’attenzione particolare, perché è insieme il più banale e il più sottovalutato. I produttori — Microsoft, Google, Apple e tutti gli altri — rilasciano di continuo aggiornamenti che correggono falle note. Un sistema non aggiornato è un sistema vulnerabile a debolezze per cui esiste già la cura: è come lasciare aperta una serratura difettosa di cui si conosce il difetto e per cui esiste già il ricambio. La maggior parte degli attacchi che colpiscono le aziende non sfrutta falle sofisticate e sconosciute, ma vulnerabilità note e da tempo corrette, su sistemi che semplicemente non sono stati aggiornati.
Le vulnerabilità più diffuse nelle applicazioni web
Le applicazioni web sono un bersaglio privilegiato, perché per definizione sono esposte su internet e raggiungibili da chiunque. Il riferimento riconosciuto a livello mondiale per le loro vulnerabilità è la OWASP Top 10, una classifica redatta dall’Open Worldwide Application Security Project che raccoglie le dieci categorie di rischio più critiche per la sicurezza delle applicazioni web, aggiornata periodicamente.
Nella sua edizione più recente, la OWASP Top 10 pone all’apice il Broken Access Control, ovvero i controlli di accesso difettosi che permettono a un utente di accedere a risorse o funzioni che non gli competono. Seguono i Cryptographic Failures (l’uso errato o l’assenza di cifratura sui dati sensibili) e l’Injection, la categoria che include la SQL injection e il Cross-Site Scripting (XSS), in cui input non validati permettono di iniettare comandi o codice malevolo.
Completano la classifica categorie come l’Insecure Design (debolezze introdotte fin dalla fase di progettazione), la Security Misconfiguration, l’uso di componenti vulnerabili e obsoleti, i difetti di identificazione e autenticazione, e le falle nel logging e monitoraggio che impediscono di accorgersi in tempo di un attacco in corso. La OWASP Top 10 non è un semplice elenco accademico: è lo strumento con cui chi sviluppa e chi verifica le applicazioni sa quali rischi affrontare per primi, ed è uno dei riferimenti su cui si basa l’analisi di sicurezza delle web application.
Come tenerle sotto controllo
Di fronte a una tale varietà di vulnerabilità, la domanda è inevitabile: come ci si difende? La risposta non è un singolo prodotto, ma un approccio sistematico fondato su un principio semplice, individuare le debolezze prima che lo facciano gli attaccanti.
Lo strumento principale per farlo è il Vulnerability Assessment, un’analisi che esamina sistematicamente i sistemi alla ricerca delle vulnerabilità presenti, le classifica per gravità e fornisce le indicazioni per correggerle in ordine di priorità. È l’equivalente, per il sistema informatico, di un check-up medico completo: non aspetta che si manifesti il sintomo, ma cerca attivamente i problemi mentre sono ancora gestibili. Per capire a fondo come funziona questa attività rimandiamo alla guida definitiva al Vulnerability Assessment.
Va sottolineato un punto: la gestione delle vulnerabilità non è un’attività una tantum, ma un processo continuo. I sistemi cambiano di continuo, nuove vulnerabilità emergono ogni giorno, e una fotografia scattata mesi fa perde rapidamente di validità. Per questo l’analisi va ripetuta con regolarità, affiancata da buone pratiche fondamentali: aggiornare tempestivamente software e sistemi, applicare le patch appena disponibili, usare password robuste e autenticazione a più fattori, ridurre al minimo i servizi esposti, e formare il personale a riconoscere i tentativi di attacco. La sicurezza informatica, in fondo, non è un traguardo da raggiungere una volta, ma una condizione da mantenere nel tempo.
Volete sapere quali vulnerabilità sono presenti nei vostri sistemi prima che vengano sfruttate? Il nostro servizio di Vulnerability Assessment, conforme agli standard ISO 27001, individua e classifica le debolezze della vostra infrastruttura e indica come correggerle. Contattateci ora.
